diff options
author | Andrew Trick <atrick@apple.com> | 2011-08-10 23:22:57 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2011-08-10 23:22:57 +0000 |
commit | d3530b91170e08d180ad710f80206f42d313d6fc (patch) | |
tree | 3be445633b54fab94c55f14da49927d3a0357cc3 /lldb/scripts/Python | |
parent | 119fd6c03bc0918299d5008049bf1262c650f7e4 (diff) | |
download | llvm-d3530b91170e08d180ad710f80206f42d313d6fc.zip llvm-d3530b91170e08d180ad710f80206f42d313d6fc.tar.gz llvm-d3530b91170e08d180ad710f80206f42d313d6fc.tar.bz2 |
Reapplying r136844.
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.
llvm-svn: 137276
Diffstat (limited to 'lldb/scripts/Python')
0 files changed, 0 insertions, 0 deletions