Add a new pass on machine instructions to optimize away PHI cycles that
authorBob Wilson <bob.wilson@apple.com>
Fri, 12 Feb 2010 01:30:21 +0000 (01:30 +0000)
committerBob Wilson <bob.wilson@apple.com>
Fri, 12 Feb 2010 01:30:21 +0000 (01:30 +0000)
commitfe61fb1e1082c81653ed78efd6d471592a2e57ad
treedf0bb339b5cb79a8d22e66430b920e47fae100a5
parentccfa1db5380fd3089fc68f3ed9ccfe6a41d7a309
Add a new pass on machine instructions to optimize away PHI cycles that
reduce down to a single value.  InstCombine already does this transformation
but DAG legalization may introduce new opportunities.  This has turned out to
be important for ARM where 64-bit values are split up during type legalization:
InstCombine is not able to remove the PHI cycles on the 64-bit values but
the separate 32-bit values can be optimized.  I measured the compile time
impact of this (running llc on 176.gcc) and it was not significant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/Passes.h
lib/CodeGen/CMakeLists.txt
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/OptimizePHIs.cpp [new file with mode: 0644]
test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll [new file with mode: 0644]