OSDN Git Service

ARM: peephole optimization to remove cmp instruction
authorManman Ren <mren@apple.com>
Fri, 11 May 2012 01:30:47 +0000 (01:30 +0000)
committerManman Ren <mren@apple.com>
Fri, 11 May 2012 01:30:47 +0000 (01:30 +0000)
commit247c5ab07c1c136f37f5ad8ade9a1ee086ca452e
tree4fe950876dc2d1f1b6faf9002432103026a2f00c
parentd4347e1af9141ec9f8e3e527367bfd16c0cc4ffb
ARM: peephole optimization to remove cmp instruction

This patch will optimize the following cases:
  sub r1, r3 | sub r1, imm
  cmp r3, r1 or cmp r1, r3 | cmp r1, imm
  bge L1

TO
  subs r1, r3
  bge  L1 or ble L1

If the branch instruction can use flag from "sub", then we can replace
"sub" with "subs" and eliminate the "cmp" instruction.

rdar: 10734411

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156599 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/PeepholeOptimizer.cpp
lib/Target/ARM/ARMBaseInstrInfo.cpp
test/CodeGen/ARM/sub-cmp-peephole.ll [new file with mode: 0644]