From: Simon Pilgrim Date: Wed, 3 Oct 2018 18:05:01 +0000 (+0000) Subject: [X86] Move Atomic CMPXCHG to WriteCMPXCHGRMW schedule class X-Git-Tag: llvmorg-8.0.0-rc1~7314 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a400612aede3472849a506b9fd371eef6973c7b7;p=platform%2Fupstream%2Fllvm.git [X86] Move Atomic CMPXCHG to WriteCMPXCHGRMW schedule class llvm-svn: 343700 --- diff --git a/llvm/lib/Target/X86/X86InstrCompiler.td b/llvm/lib/Target/X86/X86InstrCompiler.td index ca354fa..3033029 100644 --- a/llvm/lib/Target/X86/X86InstrCompiler.td +++ b/llvm/lib/Target/X86/X86InstrCompiler.td @@ -789,7 +789,7 @@ let isCodeGenOnly = 1, usesCustomInserter = 1 in { multiclass LCMPXCHG_BinOp Opc8, bits<8> Opc, Format Form, string mnemonic, SDPatternOperator frag> { -let isCodeGenOnly = 1, SchedRW = [WriteALULd, WriteRMW] in { +let isCodeGenOnly = 1, SchedRW = [WriteCMPXCHGRMW] in { let Defs = [AL, EFLAGS], Uses = [AL] in def NAME#8 : I; } @@ -834,7 +834,7 @@ defm LCMPXCHG8B : LCMPXCHG_UnOp<0xC7, MRM1m, "cmpxchg8b", X86cas8, i64mem>; // the instruction and we are sure we will have a valid register to restore // the value of RBX. let Defs = [EAX, EDX, EBX, EFLAGS], Uses = [EAX, ECX, EDX], - SchedRW = [WriteALULd, WriteRMW], isCodeGenOnly = 1, isPseudo = 1, + SchedRW = [WriteCMPXCHGRMW], isCodeGenOnly = 1, isPseudo = 1, Constraints = "$ebx_save = $dst", usesCustomInserter = 1 in { def LCMPXCHG8B_SAVE_EBX : I<0, Pseudo, (outs GR32:$dst), @@ -846,14 +846,14 @@ def LCMPXCHG8B_SAVE_EBX : let Defs = [RAX, RDX, EFLAGS], Uses = [RAX, RBX, RCX, RDX], - Predicates = [HasCmpxchg16b], SchedRW = [WriteALULd, WriteRMW] in { + Predicates = [HasCmpxchg16b], SchedRW = [WriteCMPXCHGRMW] in { defm LCMPXCHG16B : LCMPXCHG_UnOp<0xC7, MRM1m, "cmpxchg16b", X86cas16, i128mem>, REX_W; } // Same as LCMPXCHG8B_SAVE_RBX but for the 16 Bytes variant. let Defs = [RAX, RDX, RBX, EFLAGS], Uses = [RAX, RCX, RDX], - Predicates = [HasCmpxchg16b], SchedRW = [WriteALULd, WriteRMW], + Predicates = [HasCmpxchg16b], SchedRW = [WriteCMPXCHGRMW], isCodeGenOnly = 1, isPseudo = 1, Constraints = "$rbx_save = $dst", usesCustomInserter = 1 in { def LCMPXCHG16B_SAVE_RBX :