[RegionInfo] Add three tests that include infinite loops
authorTobias Grosser <tobias@grosser.es>
Thu, 10 Nov 2016 13:56:19 +0000 (13:56 +0000)
committerTobias Grosser <tobias@grosser.es>
Thu, 10 Nov 2016 13:56:19 +0000 (13:56 +0000)
These examples are variations that were inspired from a small subgraph taken
from paper.ll which are interesting as they show certain issues with infinite
loops.

llvm-svn: 286450

llvm/test/Analysis/RegionInfo/infinite_loop_5_a.ll [new file with mode: 0644]
llvm/test/Analysis/RegionInfo/infinite_loop_5_b.ll [new file with mode: 0644]
llvm/test/Analysis/RegionInfo/infinite_loop_5_c.ll [new file with mode: 0644]

diff --git a/llvm/test/Analysis/RegionInfo/infinite_loop_5_a.ll b/llvm/test/Analysis/RegionInfo/infinite_loop_5_a.ll
new file mode 100644 (file)
index 0000000..b0e5286
--- /dev/null
@@ -0,0 +1,24 @@
+; RUN: opt -regions -analyze < %s | FileCheck %s
+
+define void @normal_condition() nounwind {
+0:
+    br label %"7"
+7:
+    br i1 1, label %"1", label %"8"
+1:
+    br i1 1, label %"6", label %"3"
+6:
+    br label %"8"
+8:
+    br label %"8"
+3:
+    br label %"4"
+4:
+    ret void
+}
+
+; CHECK:      Region tree:
+; CHECK-NEXT: [0] 0 => <Function Return>
+; CHECK-NEXT:   [1] 7 => 3
+; CHECK-NEXT: End region tree
+
diff --git a/llvm/test/Analysis/RegionInfo/infinite_loop_5_b.ll b/llvm/test/Analysis/RegionInfo/infinite_loop_5_b.ll
new file mode 100644 (file)
index 0000000..49580c9
--- /dev/null
@@ -0,0 +1,25 @@
+; RUN: opt -regions -analyze < %s | FileCheck %s
+
+define void @normal_condition() nounwind {
+0:
+    br label %"7"
+7:
+    br i1 1, label %"1", label %"9"
+9:
+    br label %"8"
+1:
+    br i1 1, label %"6", label %"3"
+6:
+    br label %"9"
+8:
+    br label %"8"
+3:
+    br label %"4"
+4:
+    ret void
+}
+
+; CHECK:      Region tree:
+; CHECK-NEXT: [0] 0 => <Function Return>
+; CHECK-NEXT:   [1] 7 => 3
+; CHECK-NEXT: End region tree
diff --git a/llvm/test/Analysis/RegionInfo/infinite_loop_5_c.ll b/llvm/test/Analysis/RegionInfo/infinite_loop_5_c.ll
new file mode 100644 (file)
index 0000000..51b48c9
--- /dev/null
@@ -0,0 +1,22 @@
+; RUN: opt -regions -analyze < %s | FileCheck %s
+
+define void @normal_condition() nounwind {
+0:
+    br label %"7"
+7:
+    br i1 1, label %"1", label %"8"
+1:
+    br i1 1, label %"6", label %"3"
+6:
+    br label %"8"
+8:
+    br i1 1, label %"8", label %"7"
+3:
+    br label %"4"
+4:
+    ret void
+}
+
+; CHECK:      [0] 0 => <Function Return>
+; CHECK-NEXT:   [1] 7 => 3
+; CHECK-NEXT:     [2] 8 => 7