diff options
author | Andrew Trick <atrick@apple.com> | 2011-08-03 23:50:25 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2011-08-03 23:50:25 +0000 |
commit | 762797d1af1b9308c79982aedd9bd2f585f46171 (patch) | |
tree | 917a9631c984910d0d49c1cb1c757f8e7e9c65ac /lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | 882bcc662d389211cdfc7e2c108a60b7a03128d1 (diff) |
An algorithm for incrementally updating LoopInfo within a
LoopPassManager. The incremental update should be extremely cheap in
most cases and can be used in places where it's not feasible to
regenerate the entire loop forest.
- "Unloop" is a node in the loop tree whose last backedge has been removed.
- Perform reverse dataflow on the block inside Unloop to propagate the
nearest loop from the block's successors.
- For reducible CFG, each block in unloop is visited exactly
once. This is because unloop no longer has a backedge and blocks
within subloops don't change parents.
- Immediate subloops are summarized by the nearest loop reachable from
their exits or exits within nested subloops.
- At completion the unloop blocks each have a new parent loop, and
each immediate subloop has a new parent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136844 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions