summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2017-01-20 08:42:19 +0000
committerChandler Carruth <chandlerc@gmail.com>2017-01-20 08:42:19 +0000
commite9b18e3d34f3dbea1649c6633b11d99eda798ec2 (patch)
treedb288feed81512f73fd98c6895231625ac1b4524 /clang/lib/CodeGen/CodeGenFunction.cpp
parent1725c8c3157fab096e7e821d2bb10b9b1fd0d773 (diff)
downloadbcm5719-llvm-e9b18e3d34f3dbea1649c6633b11d99eda798ec2.tar.gz
bcm5719-llvm-e9b18e3d34f3dbea1649c6633b11d99eda798ec2.zip
[PM] Port LoopSink to the new pass manager.
Like several other loop passes (the vectorizer, etc) this pass doesn't really fit the model of a loop pass. The critical distinction is that it isn't intended to be pipelined together with other loop passes. I plan to add some documentation to the loop pass manager to make this more clear on that side. LoopSink is also different because it doesn't really need a lot of the infrastructure of our loop passes. For example, if there aren't loop invariant instructions causing a preheader to exist, there is no need to form a preheader. It also doesn't need LCSSA because this pass is only involved in sinking invariant instructions from a preheader into the loop, not reasoning about live-outs. This allows some nice simplifications to the pass in the new PM where we can directly walk the loops once without restructuring them. Differential Revision: https://reviews.llvm.org/D28921 llvm-svn: 292589
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud