aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrArithmetic.td
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-06-01 19:49:33 +0000
committerManman Ren <mren@apple.com>2012-06-01 19:49:33 +0000
commit73c2f7f5ed767a6fc062fd198551be902b7b7d5b (patch)
tree0e7ddc57a166cd5f076eac14c404412061d88d0f /lib/Target/X86/X86InstrArithmetic.td
parent68f25571e759c1fcf2da206109647259f49f7416 (diff)
downloadexternal_llvm-73c2f7f5ed767a6fc062fd198551be902b7b7d5b.zip
external_llvm-73c2f7f5ed767a6fc062fd198551be902b7b7d5b.tar.gz
external_llvm-73c2f7f5ed767a6fc062fd198551be902b7b7d5b.tar.bz2
X86: peephole optimization to remove cmp instruction
This patch will optimize the following: sub r1, r3 cmp r3, r1 or cmp r1, r3 bge L1 TO sub r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can eliminate the "cmp" instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157831 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrArithmetic.td')
-rw-r--r--lib/Target/X86/X86InstrArithmetic.td2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrArithmetic.td b/lib/Target/X86/X86InstrArithmetic.td
index 0eee083..c2b59b4 100644
--- a/lib/Target/X86/X86InstrArithmetic.td
+++ b/lib/Target/X86/X86InstrArithmetic.td
@@ -1143,7 +1143,9 @@ let Uses = [EFLAGS] in {
0, 0>;
}
+let isCompare = 1 in {
defm CMP : ArithBinOp_F<0x38, 0x3A, 0x3C, "cmp", MRM7r, MRM7m, X86cmp, 0, 0>;
+}
//===----------------------------------------------------------------------===//