summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCContext.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-02-01 13:35:14 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-02-01 13:35:14 +0000
commit1665152cce9c95fcf79c8738d7a331bd80d63b82 (patch)
tree296d4b7b57b338bc453e3b3e33a0a9736759766a /llvm/lib/MC/MCContext.cpp
parentfc49d1983410f3345fd92b71a9e3ca05fd7ad8d6 (diff)
downloadbcm5719-llvm-1665152cce9c95fcf79c8738d7a331bd80d63b82.tar.gz
bcm5719-llvm-1665152cce9c95fcf79c8738d7a331bd80d63b82.zip
[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. llvm-svn: 200612
Diffstat (limited to 'llvm/lib/MC/MCContext.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud