summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopRotate/catchret.ll
diff options
context:
space:
mode:
authorAndrew Kaylor <andrew.kaylor@intel.com>2017-06-22 23:27:16 +0000
committerAndrew Kaylor <andrew.kaylor@intel.com>2017-06-22 23:27:16 +0000
commitd49711996f94cc73908d03d51938ffaaa40c3da9 (patch)
tree746c8477aa8c0030daf60acf094072faa3ba77d7 /llvm/test/Transforms/LoopRotate/catchret.ll
parent08b20356c3f3aa3a7442bd4c2a0d7f3bd294ad8f (diff)
downloadbcm5719-llvm-d49711996f94cc73908d03d51938ffaaa40c3da9.tar.gz
bcm5719-llvm-d49711996f94cc73908d03d51938ffaaa40c3da9.zip
Restrict the definition of loop preheader to avoid EH blocks
Differential Revision: https://reviews.llvm.org/D34487 llvm-svn: 306070
Diffstat (limited to 'llvm/test/Transforms/LoopRotate/catchret.ll')
-rwxr-xr-xllvm/test/Transforms/LoopRotate/catchret.ll41
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopRotate/catchret.ll b/llvm/test/Transforms/LoopRotate/catchret.ll
new file mode 100755
index 00000000000..c035e49d79c
--- /dev/null
+++ b/llvm/test/Transforms/LoopRotate/catchret.ll
@@ -0,0 +1,41 @@
+; RUN: opt < %s -loop-rotate -S | FileCheck %s
+
+target triple = "x86_64-pc-windows-msvc"
+
+declare void @always_throws()
+
+define i32 @test() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+entry:
+ invoke void @always_throws()
+ to label %continue unwind label %catch.dispatch
+
+continue:
+ unreachable
+
+catch.dispatch:
+ %t0 = catchswitch within none [label %catch] unwind to caller
+
+catch:
+ %t1 = catchpad within %t0 [i8* null, i32 64, i8* null]
+ catchret from %t1 to label %for.cond
+
+for.cond:
+ %sum = phi i32 [ %add, %for.body ], [ 0, %catch ]
+ %i = phi i32 [ %inc, %for.body ], [ 0, %catch ]
+ %cmp = icmp slt i32 %i, 1
+ br i1 %cmp, label %for.body, label %return
+
+for.body:
+ %add = add nsw i32 1, %sum
+ %inc = add nsw i32 %i, 1
+ br label %for.cond
+
+return:
+ ret i32 0
+}
+
+; CHECK: catch:
+; CHECK-NEXT: catchpad
+; CHECK-NEXT: catchret
+
+declare i32 @__CxxFrameHandler3(...)
OpenPOWER on IntegriCloud