summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-08-03 23:50:25 +0000
committerAndrew Trick <atrick@apple.com>2011-08-03 23:50:25 +0000
commit468eadbbb2ef1046d30a5f71684ac95c754fd042 (patch)
tree472c60672367c35203f914e934a20c43387ae712 /llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
parentf898cbde5e4ba24a74ca0920ab4a02fb540cf617 (diff)
downloadbcm5719-llvm-468eadbbb2ef1046d30a5f71684ac95c754fd042.tar.gz
bcm5719-llvm-468eadbbb2ef1046d30a5f71684ac95c754fd042.zip
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: 136844
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud