summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2015-12-16 00:01:02 +0000
committerJustin Bogner <mail@justinbogner.com>2015-12-16 00:01:02 +0000
commit6e9810c8ef3f9ef300a1c9129b2fe0565cee2b85 (patch)
tree629ec2505c910056f8fbac88040d6d872124bb11 /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
parent54e120910c799f2882576ba0cdb2d02b1ee5191a (diff)
downloadbcm5719-llvm-6e9810c8ef3f9ef300a1c9129b2fe0565cee2b85.tar.gz
bcm5719-llvm-6e9810c8ef3f9ef300a1c9129b2fe0565cee2b85.zip
LPM: Simplify how passes mark loops for deletion. NFC
When a pass removes a loop it currently has to reach up into the LPPassManager's internals to update the state of the iteration over loops. This reverse dependency results in a pretty awkward interplay of the LPPassManager and its Passes. Here, we change this to instead keep track of when a loop has become "unlooped" in the Loop objects themselves, then the LPPassManager can check this and manipulate its own state directly. This opens the door to allow most of the loop passes to work without a backreference to the LPPassManager. I've kept passes calling the LPPassManager::deleteLoopFromQueue API now so I could put an assert in to prove that this is NFC, but a later pass will update passes just to preserve the LoopInfo directly and stop referencing the LPPassManager completely. llvm-svn: 255720
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FastISel.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud