From a490e81d571b06e8bca5c2a9d74994740b63811b Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 26 Aug 2017 06:24:25 +0000 Subject: [PATCH] [X86] Qualify the RMW INC/DEC patterns with NotSlowIncDec. We were suppressing most uses of INC/DEC, but this one seems to have been missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311828 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrArithmetic.td | 4 ++-- test/DebugInfo/COFF/register-variables.ll | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Target/X86/X86InstrArithmetic.td b/lib/Target/X86/X86InstrArithmetic.td index e38bbc9b3d3..2bf6351d045 100644 --- a/lib/Target/X86/X86InstrArithmetic.td +++ b/lib/Target/X86/X86InstrArithmetic.td @@ -481,7 +481,7 @@ def INC32r_alt : I<0x40, AddRegFrm, (outs GR32:$dst), (ins GR32:$src1), } // CodeSize = 1, hasSideEffects = 0 } // Constraints = "$src1 = $dst", SchedRW -let CodeSize = 2, SchedRW = [WriteALULd, WriteRMW] in { +let CodeSize = 2, SchedRW = [WriteALULd, WriteRMW], Predicates = [NotSlowIncDec] in { def INC8m : I<0xFE, MRM0m, (outs), (ins i8mem :$dst), "inc{b}\t$dst", [(store (add (loadi8 addr:$dst), 1), addr:$dst), (implicit EFLAGS)], IIC_UNARY_MEM>; @@ -528,7 +528,7 @@ def DEC32r_alt : I<0x48, AddRegFrm, (outs GR32:$dst), (ins GR32:$src1), } // Constraints = "$src1 = $dst", SchedRW -let CodeSize = 2, SchedRW = [WriteALULd, WriteRMW] in { +let CodeSize = 2, SchedRW = [WriteALULd, WriteRMW], Predicates = [NotSlowIncDec] in { def DEC8m : I<0xFE, MRM1m, (outs), (ins i8mem :$dst), "dec{b}\t$dst", [(store (add (loadi8 addr:$dst), -1), addr:$dst), (implicit EFLAGS)], IIC_UNARY_MEM>; diff --git a/test/DebugInfo/COFF/register-variables.ll b/test/DebugInfo/COFF/register-variables.ll index 02ddd42f616..a6fdcd66bf2 100644 --- a/test/DebugInfo/COFF/register-variables.ll +++ b/test/DebugInfo/COFF/register-variables.ll @@ -46,7 +46,7 @@ ; ASM: [[after_inc_eax:\.Ltmp.*]]: ; ASM: #DEBUG_VALUE: inlineinc:b <- %EAX ; ASM: #DEBUG_VALUE: b <- %EAX -; ASM: incl x(%rip) +; ASM: addl $1, x(%rip) ; ASM: [[after_if:\.Ltmp.*]]: ; ASM: .LBB0_2: # %if.else ; ASM: #DEBUG_VALUE: f:p <- %ESI @@ -104,7 +104,7 @@ ; OBJ: LocalVariableAddrRange { ; OBJ: OffsetStart: .text+0x7 ; OBJ: ISectStart: 0x0 -; OBJ: Range: 0x19 +; OBJ: Range: 0x1A ; OBJ: } ; OBJ: } ; OBJ: LocalSym { @@ -146,7 +146,7 @@ ; OBJ: MayHaveNoName: 0 ; OBJ: OffsetStart: .text+0x13 ; OBJ: ISectStart: 0x0 -; OBJ: Range: 0x6 +; OBJ: Range: 0x7 ; OBJ: } ; OBJ: } ; OBJ: InlineSiteSym { @@ -180,7 +180,7 @@ ; OBJ: LocalVariableAddrRange { ; OBJ: OffsetStart: .text+0x13 ; OBJ: ISectStart: 0x0 -; OBJ: Range: 0x6 +; OBJ: Range: 0x7 ; OBJ: } ; OBJ: } ; OBJ: InlineSiteEnd { -- 2.50.1