summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-10-21 04:09:17 +0000
committerBill Wendling <isanbard@gmail.com>2013-10-21 04:09:17 +0000
commit90dd90afcb0fa05a3abc1c5db0be234fd0dbaf42 (patch)
tree48b2dcdb5d9f41848e31ee40292465b0d612af5b /llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll
parentf8c68da7a9df5bc3316d8f412b83d90327dc89ca (diff)
downloadbcm5719-llvm-90dd90afcb0fa05a3abc1c5db0be234fd0dbaf42.tar.gz
bcm5719-llvm-90dd90afcb0fa05a3abc1c5db0be234fd0dbaf42.zip
Don't eliminate a partially redundant load if it's in a landing pad.
A landing pad can be jumped to only by the unwind edge of an invoke instruction. If we eliminate a partially redundant load in a landing pad, it will create a basic block that violates this constraint. It then leads to other problems down the line if it tries to merge that basic block with the landing pad. Avoid this by not eliminating the load in a landing pad. PR17621 llvm-svn: 193064
Diffstat (limited to 'llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll')
-rw-r--r--llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll43
1 files changed, 0 insertions, 43 deletions
diff --git a/llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll b/llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll
deleted file mode 100644
index 1ac0209270b..00000000000
--- a/llvm/test/Transforms/JumpThreading/landing-pad-splicing.ll
+++ /dev/null
@@ -1,43 +0,0 @@
-; RUN: opt -S -jump-threading < %s -disable-output
-; PR17621
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.8.0"
-
-declare void @_ZN1F7doApplyEv() unnamed_addr readnone align 2
-
-define void @_Z3fn1v() uwtable {
-entry:
- store i32 0, i32* undef, align 4
- invoke void @_ZN1F7doApplyEv()
- to label %_ZN1D5applyEv.exit unwind label %lpad1
-
-_ZN1D5applyEv.exit:
- invoke void @_ZN1F10insertTextEv()
- to label %invoke.cont7 unwind label %lpad1
-
-invoke.cont7:
- ret void
-
-lpad1:
- %tmp1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
- cleanup
- %tmp2 = load i32* undef, align 4
- %tobool.i.i.i = icmp eq i32 %tmp2, 0
- br i1 %tobool.i.i.i, label %_ZN1BI1FED1Ev.exit, label %if.then.i.i.i
-
-if.then.i.i.i:
- br i1 undef, label %_ZN1BI1FED1Ev.exit, label %delete.notnull.i.i.i
-
-delete.notnull.i.i.i:
- unreachable
-
-_ZN1BI1FED1Ev.exit:
- br label %eh.resume
-
-eh.resume:
- resume { i8*, i32 } undef
-}
-
-declare i32 @__gxx_personality_v0(...)
-
-declare void @_ZN1F10insertTextEv()
OpenPOWER on IntegriCloud