diff options
Diffstat (limited to 'llvm/test/Transforms/HotColdSplit/eh-pads.ll')
-rw-r--r-- | llvm/test/Transforms/HotColdSplit/eh-pads.ll | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/llvm/test/Transforms/HotColdSplit/eh-pads.ll b/llvm/test/Transforms/HotColdSplit/eh-pads.ll deleted file mode 100644 index 80a566c6cf1..00000000000 --- a/llvm/test/Transforms/HotColdSplit/eh-pads.ll +++ /dev/null @@ -1,99 +0,0 @@ -; RUN: opt -S -hotcoldsplit -hotcoldsplit-threshold=0 < %s | FileCheck %s - -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.14.0" - -; CHECK-LABEL: define {{.*}}@foo( -; CHECK: landingpad -; CHECK: sideeffect(i32 2) -define void @foo(i32 %cond) personality i8 0 { -entry: - invoke void @llvm.donothing() to label %normal unwind label %exception - -exception: - ; Note: EH pads are not candidates for region entry points. - %cleanup = landingpad i8 cleanup - br label %continue_exception - -continue_exception: - call void @sideeffect(i32 0) - call void @sink() - ret void - -normal: - call void @sideeffect(i32 2) - ret void -} - -; See llvm.org/PR39917. It's currently not safe to outline landingpad -; instructions. -; -; CHECK-LABEL: define {{.*}}@bar( -; CHECK: landingpad -define void @bar(i32 %cond) personality i8 0 { -entry: - br i1 undef, label %exit, label %continue - -exit: - ret void - -continue: - invoke void @sink() to label %normal unwind label %exception - -exception: - ; Note: EH pads are not candidates for region entry points. - %cleanup = landingpad i8 cleanup - br label %trivial-eh-handler - -trivial-eh-handler: - call void @sideeffect(i32 1) - br label %normal - -normal: - call void @sideeffect(i32 0) - ret void -} - -define void @baz() personality i8 0 { -entry: - br i1 undef, label %exit, label %cold1 - -exit: - ret void - -cold1: - ; The predecessor of a cold invoke may still be extracted (see baz.cold.2). - call void @sideeffect(i32 0) - br label %cold2 - -cold2: - invoke void @sink() to label %cold3 unwind label %cold4 - -cold3: - ; The successor of a cold invoke may still be extracted (see baz.cold.1). - call void @sideeffect(i32 1) - ret void - -cold4: - landingpad i8 cleanup - ret void -} - -; CHECK-LABEL: define {{.*}}@foo.cold.1( -; CHECK: sideeffect(i32 0) -; CHECK: sink - -; CHECK-LABEL: define {{.*}}@bar.cold.1( -; CHECK: sideeffect(i32 1) - -; CHECK-LABEL: define {{.*}}@baz.cold.1( -; CHECK: sideeffect(i32 1) - -; CHECK-LABEL: define {{.*}}@baz.cold.2( -; CHECK: sideeffect(i32 0) - -declare void @sideeffect(i32) - -declare void @sink() cold - -declare void @llvm.donothing() nounwind readnone |