summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2017-01-04 17:50:15 +0000
committerTobias Grosser <tobias@grosser.es>2017-01-04 17:50:15 +0000
commit8ab80ba3a2ad60dd5812b680760cc404a183f76b (patch)
treeca860372461aeff53434603dca9f0cc87c6dac4e
parent5bf0416f459cb957fa6098f4ec148e8ae26c2704 (diff)
downloadbcm5719-llvm-8ab80ba3a2ad60dd5812b680760cc404a183f76b.tar.gz
bcm5719-llvm-8ab80ba3a2ad60dd5812b680760cc404a183f76b.zip
RegionInfo: add new test case
This test case has been reduced from test/Analysis/RegionInfo/mix_1.ll and provides us with a minimal example of a test case which caused problems while working on an improved version of the RegionInfo analysis. We upstream this test case, as it certainly can be helpful in future debugging and optimization tests. Test case reduced by Pratik Bhatu <cs12b1010@iith.ac.in> llvm-svn: 290974
-rw-r--r--llvm/test/Analysis/RegionInfo/bad_node_traversal.ll42
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/test/Analysis/RegionInfo/bad_node_traversal.ll b/llvm/test/Analysis/RegionInfo/bad_node_traversal.ll
new file mode 100644
index 00000000000..e35c29b8ca1
--- /dev/null
+++ b/llvm/test/Analysis/RegionInfo/bad_node_traversal.ll
@@ -0,0 +1,42 @@
+; REQUIRES: asserts
+; RUN: opt -regions -analyze < %s | FileCheck %s
+
+; While working on improvements to the region info analysis, this test
+; case caused an incorrect region 3 => 8 to be detected.
+
+define internal i8 @wibble() {
+bb:
+ br i1 true, label %bb1, label %bb8
+
+bb1: ; preds = %bb
+ switch i32 0, label %bb2 [
+ i32 0, label %bb3
+ i32 1, label %bb7
+ ]
+
+bb2: ; preds = %bb1
+ br label %bb4
+
+bb3: ; preds = %bb1
+ br label %bb5
+
+bb4: ; preds = %bb2
+ br label %bb6
+
+bb5: ; preds = %bb3
+ br label %bb6
+
+bb6: ; preds = %bb5, %bb4
+ br label %bb7
+
+bb7: ; preds = %bb6, %bb1
+ br label %bb8
+
+bb8: ; preds = %bb7, %bb
+ ret i8 1
+}
+
+; CHECK: [0] bb => <Function Return>
+; CHECK-NEXT: [1] bb => bb8
+; CHECK-NEXT: [2] bb1 => bb7
+
OpenPOWER on IntegriCloud