Add new RegionInfo pass.
authorTobias Grosser <grosser@fim.uni-passau.de>
Thu, 22 Jul 2010 07:46:31 +0000 (07:46 +0000)
committerTobias Grosser <grosser@fim.uni-passau.de>
Thu, 22 Jul 2010 07:46:31 +0000 (07:46 +0000)
commitf96b0063674e6bf72da5429bd49097e33c2325c7
tree6122b17b693e49a1fb9de1cabf099bb67d82414a
parent8a89a6ae9c3fb524cda60768e094ba481ac17be1
Add new RegionInfo pass.

The RegionInfo pass detects single entry single exit regions in a function,
where a region is defined as any subgraph that is connected to the remaining
graph at only two spots.
Furthermore an hierarchical region tree is built.
Use it by calling "opt -regions analyze" or "opt -view-regions".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109089 91177308-0d34-0410-b5e6-96231b3b80d8
32 files changed:
docs/Passes.html
include/llvm/Analysis/Passes.h
include/llvm/Analysis/RegionInfo.h [new file with mode: 0644]
include/llvm/Analysis/RegionIterator.h [new file with mode: 0644]
include/llvm/Analysis/RegionPrinter.h [new file with mode: 0644]
include/llvm/LinkAllPasses.h
include/llvm/Support/GraphWriter.h
lib/Analysis/CMakeLists.txt
lib/Analysis/RegionInfo.cpp [new file with mode: 0644]
lib/Analysis/RegionPrinter.cpp [new file with mode: 0644]
test/Analysis/RegionInfo/block_sort.ll [new file with mode: 0644]
test/Analysis/RegionInfo/cond_loop.ll [new file with mode: 0644]
test/Analysis/RegionInfo/condition_complicated.ll [new file with mode: 0644]
test/Analysis/RegionInfo/condition_complicated_2.ll [new file with mode: 0644]
test/Analysis/RegionInfo/condition_forward_edge.ll [new file with mode: 0644]
test/Analysis/RegionInfo/condition_same_exit.ll [new file with mode: 0644]
test/Analysis/RegionInfo/condition_simple.ll [new file with mode: 0644]
test/Analysis/RegionInfo/dg.exp [new file with mode: 0644]
test/Analysis/RegionInfo/exit_in_condition.ll [new file with mode: 0644]
test/Analysis/RegionInfo/infinite_loop.ll [new file with mode: 0644]
test/Analysis/RegionInfo/infinite_loop_2.ll [new file with mode: 0644]
test/Analysis/RegionInfo/infinite_loop_3.ll [new file with mode: 0644]
test/Analysis/RegionInfo/infinite_loop_4.ll [new file with mode: 0644]
test/Analysis/RegionInfo/loop_with_condition.ll [new file with mode: 0644]
test/Analysis/RegionInfo/loops_1.ll [new file with mode: 0644]
test/Analysis/RegionInfo/loops_2.ll [new file with mode: 0644]
test/Analysis/RegionInfo/mix_1.ll [new file with mode: 0644]
test/Analysis/RegionInfo/multiple_exiting_edge.ll [new file with mode: 0644]
test/Analysis/RegionInfo/nested_loops.ll [new file with mode: 0644]
test/Analysis/RegionInfo/next.ll [new file with mode: 0644]
test/Analysis/RegionInfo/paper.ll [new file with mode: 0644]
test/Analysis/RegionInfo/two_loops_same_header.ll [new file with mode: 0644]