From: Bill Wendling Date: Fri, 26 Aug 2011 20:40:15 +0000 (+0000) Subject: Don't sink landingpad instructions during ind-var simplification. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2b18881185b123e5f163eb7b32b3452fc3f339d8;p=oota-llvm.git Don't sink landingpad instructions during ind-var simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138651 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 4433657bf9c..b12a76acf85 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -1724,6 +1724,10 @@ void IndVarSimplify::SinkUnusedInvariants(Loop *L) { if (isa(I)) continue; + // Skip landingpad instructions. + if (isa(I)) + continue; + // Don't sink static AllocaInsts out of the entry block, which would // turn them into dynamic allocas! if (AllocaInst *AI = dyn_cast(I)) diff --git a/test/Transforms/IndVarSimplify/crash.ll b/test/Transforms/IndVarSimplify/crash.ll index 516fd8084d9..949997884a5 100644 --- a/test/Transforms/IndVarSimplify/crash.ll +++ b/test/Transforms/IndVarSimplify/crash.ll @@ -53,3 +53,35 @@ bb30: ; preds = %bb29 %2 = add nsw i32 %r.0, 1 ; [#uses=1] br label %bb24 } + +; PR10770 + +declare void @__go_panic() noreturn + +declare void @__go_undefer() + +declare i32 @__gccgo_personality_v0(i32, i64, i8*, i8*) + +define void @main.main() uwtable { +entry: + invoke void @__go_panic() noreturn + to label %0 unwind label %"5.i" + +;