Add the PPCCTRLoops pass: a PPC machine-code-level optimization pass to form CTR...
authorHal Finkel <hfinkel@anl.gov>
Fri, 8 Jun 2012 15:38:21 +0000 (15:38 +0000)
committerHal Finkel <hfinkel@anl.gov>
Fri, 8 Jun 2012 15:38:21 +0000 (15:38 +0000)
commit99f823f94374917174f96a7689955b8463db6816
treeb9e21d1fb7674ec9e130e22ece338dccfc24ddd2
parent69938a85bdbeef1c5b60aa778e361586bec36fb7
Add the PPCCTRLoops pass: a PPC machine-code-level optimization pass to form CTR-based loop branching code.

This pass is derived from the Hexagon HardwareLoops pass. The only significant enhancement over the Hexagon
pass is that PPCCTRLoops will also attempt to delete the replaced add and compare operations if they are
no longer otherwise used. Also, invalid preheader DebugLoc is not used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158204 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/CMakeLists.txt
lib/Target/PowerPC/PPC.h
lib/Target/PowerPC/PPCBranchSelector.cpp
lib/Target/PowerPC/PPCCTRLoops.cpp [new file with mode: 0644]
lib/Target/PowerPC/PPCInstr64Bit.td
lib/Target/PowerPC/PPCInstrFormats.td
lib/Target/PowerPC/PPCInstrInfo.cpp
lib/Target/PowerPC/PPCInstrInfo.td
lib/Target/PowerPC/PPCTargetMachine.cpp
test/CodeGen/PowerPC/ctrloops.ll [new file with mode: 0644]