Add the Optimize Compares pass (disabled by default).
authorBill Wendling <isanbard@gmail.com>
Fri, 6 Aug 2010 01:32:48 +0000 (01:32 +0000)
committerBill Wendling <isanbard@gmail.com>
Fri, 6 Aug 2010 01:32:48 +0000 (01:32 +0000)
commite4ddbdfd3cf031034020671d03626f0373fbd5ca
tree6f2a410521d3378fe204476415e5ba036c7ed9dc
parent5759b9b8be05293e848308f01c6eeff70d2ce15d
Add the Optimize Compares pass (disabled by default).

This pass tries to remove comparison instructions when possible. For instance,
if you have this code:

   sub r1, 1
   cmp r1, 0
   bz  L1

and "sub" either sets the same flag as the "cmp" instruction or could be
converted to set the same flag, then we can eliminate the "cmp" instruction all
together. This is a important for ARM where the ALU instructions could set the
CPSR flag, but need a special suffix ('s') to do so.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/Passes.h
include/llvm/Target/TargetInstrInfo.h
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/OptimizeCmps.cpp [new file with mode: 0644]
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMBaseInstrInfo.h