summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-02-11 12:52:27 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-02-11 12:52:27 +0000
commitfc25854b094f47e38d3f8595bbd713867cd06271 (patch)
treef4f0379bb32eecb7b0f9d625d311ec7d00d1d1d4 /llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
parent2f1209f851f3fddd2f39e55712cd9d60dbabe19d (diff)
downloadbcm5719-llvm-fc25854b094f47e38d3f8595bbd713867cd06271.tar.gz
bcm5719-llvm-fc25854b094f47e38d3f8595bbd713867cd06271.zip
[LPM] Switch LICM to actively use LCSSA in addition to preserving it.
Fixes PR18753 and PR18782. This is necessary for LICM to preserve LCSSA correctly and efficiently. There is still some active discussion about whether we should be using LCSSA, but we can't just immediately stop using it and we *need* LICM to preserve it while we are using it. We can restore the old SSAUpdater driven code if and when there is a serious effort to remove the reliance on LCSSA from all of the loop passes. However, this also serves as a great example of why LCSSA is very nice to have. This change significantly simplifies the process of sinking instructions for LICM, and makes it quite a bit less expensive. It wouldn't even be as complex as it is except that I had to start the process of removing the big recursive LCSSA formation hammer in order to switch even this much of the re-forming code to asserting that LCSSA was preserved. I'll fully remove that next just to tidy things up until the LCSSA debate settles one way or the other. llvm-svn: 201148
Diffstat (limited to 'llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud