llvm-6502/lib/Transforms
Chandler Carruth 115fd30b24 [LPM] Apply a really big hammer to fix PR18688 by recursively reforming
LCSSA when we promote to SSA registers inside of LICM.

Currently, this is actually necessary. The promotion logic in LICM uses
SSAUpdater which doesn't understand how to place LCSSA PHI nodes.
Teaching it to do so would be a very significant undertaking. It may be
worthwhile and I've left a FIXME about this in the code as well as
starting a thread on llvmdev to try to figure out the right long-term
solution.

For now, the PR needs to be fixed. Short of using the promition
SSAUpdater to place both the LCSSA PHI nodes and the promoted PHI nodes,
I don't see a cleaner or cheaper way of achieving this. Fortunately,
LCSSA is relatively lazy and sparse -- it should only update
instructions which need it. We can also skip the recursive variant when
we don't promote to SSA values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200612 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-01 13:35:14 +00:00
..
Hello Set LLVM_EXPORTED_SYMBOL_FILE in CMakeLists whose corresponding Makefiles do so. 2013-12-29 23:06:49 +00:00
InstCombine Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
Instrumentation Fix a bug in gcov instrumentation introduced by r195513. <rdar://15930350> 2014-01-31 05:24:01 +00:00
IPO Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
ObjCARC Update optimization passes to handle inalloca arguments 2014-01-28 02:38:36 +00:00
Scalar [LPM] Apply a really big hammer to fix PR18688 by recursively reforming 2014-02-01 13:35:14 +00:00
Utils Remove some unused #includes 2014-02-01 13:12:54 +00:00
Vectorize Revert "[SLPV] Recognize vectorizable intrinsics during SLP vectorization ..." 2014-02-01 01:37:30 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00