summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/PostDominators/infinite-loop.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Analysis/PostDominators/infinite-loop.ll')
-rw-r--r--llvm/test/Analysis/PostDominators/infinite-loop.ll30
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/Analysis/PostDominators/infinite-loop.ll b/llvm/test/Analysis/PostDominators/infinite-loop.ll
new file mode 100644
index 00000000000..5796b8614db
--- /dev/null
+++ b/llvm/test/Analysis/PostDominators/infinite-loop.ll
@@ -0,0 +1,30 @@
+; RUN: opt < %s -postdomtree -analyze | FileCheck %s
+; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck %s
+
+@a = external global i32, align 4
+
+define void @fn1() {
+entry:
+ store i32 5, i32* @a, align 4
+ %call = call i32 (...) @foo()
+ %tobool = icmp ne i32 %call, 0
+ br i1 %tobool, label %if.then, label %if.end
+
+if.then: ; preds = %entry
+ br label %loop
+
+loop: ; preds = %loop, %if.then
+ br label %loop
+
+if.end: ; preds = %entry
+ store i32 6, i32* @a, align 4
+ ret void
+}
+
+declare i32 @foo(...)
+
+; CHECK: Inorder PostDominator Tree:
+; CHECK-NEXT: [1] <<exit node>>
+; CHECK: [2] %loop
+; CHECK-NEXT: [3] %if.then
+; CHECK: Roots: %if.end %loop
OpenPOWER on IntegriCloud