Replace more uses of 'unwind' in the tests with calls to landingpad and

resume. Note that some of these tests were basically dead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140076 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2011-09-19 22:11:35 +00:00
parent 17569fe05b
commit 803c9d33be
5 changed files with 29 additions and 27 deletions

View File

@ -5,7 +5,7 @@
; exists. ; exists.
define internal void @Callee1() { define internal void @Callee1() {
unwind unreachable
} }
define void @Callee2() { define void @Callee2() {

View File

@ -1,7 +1,7 @@
; RUN: opt < %s -inline -disable-output ; RUN: opt < %s -inline -disable-output
define i32 @test() { define i32 @test() {
unwind unreachable
} }
define i32 @caller() { define i32 @caller() {

View File

@ -114,7 +114,7 @@ entry:
define fastcc void @_ZSt19__throw_ios_failurePKc() { define fastcc void @_ZSt19__throw_ios_failurePKc() {
entry: entry:
call fastcc void @_ZNSsC1EPKcRKSaIcE( ) call fastcc void @_ZNSsC1EPKcRKSaIcE( )
unwind unreachable
} }
define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() { define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() {
@ -133,10 +133,12 @@ entry:
to label %try_exit.0 unwind label %try_catch.0 to label %try_exit.0 unwind label %try_catch.0
try_catch.0: ; preds = %entry try_catch.0: ; preds = %entry
unreachable %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
resume { i8*, i32 } %exn
try_exit.0: ; preds = %entry try_exit.0: ; preds = %entry
unwind unreachable
} }
define fastcc void @_ZNSt11logic_errorC1ERKSs() { define fastcc void @_ZNSt11logic_errorC1ERKSs() {
@ -153,7 +155,7 @@ entry:
define fastcc void @_ZSt20__throw_length_errorPKc() { define fastcc void @_ZSt20__throw_length_errorPKc() {
entry: entry:
call fastcc void @_ZNSt12length_errorC1ERKSs( ) call fastcc void @_ZNSt12length_errorC1ERKSs( )
unwind unreachable
} }
define fastcc void @_ZNSt12length_errorC1ERKSs() { define fastcc void @_ZNSt12length_errorC1ERKSs() {
@ -162,7 +164,9 @@ entry:
to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
invoke_catch.i: ; preds = %entry invoke_catch.i: ; preds = %entry
unwind %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
resume { i8*, i32 } %exn
_ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry _ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry
ret void ret void
@ -199,8 +203,10 @@ entry:
to label %invoke_cont.1 unwind label %invoke_catch.1 to label %invoke_cont.1 unwind label %invoke_catch.1
invoke_catch.1: ; preds = %entry invoke_catch.1: ; preds = %entry
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
call fastcc void @_ZNSaIcED1Ev( ) call fastcc void @_ZNSaIcED1Ev( )
unwind resume { i8*, i32 } %exn
invoke_cont.1: ; preds = %entry invoke_cont.1: ; preds = %entry
call fastcc void @_ZNSaIcEC2ERKS_( ) call fastcc void @_ZNSaIcEC2ERKS_( )
@ -243,3 +249,5 @@ define fastcc void @_ZN9__gnu_cxx12__pool_allocILb1ELi0EE9_S_refillEj() {
entry: entry:
unreachable unreachable
} }
declare i32 @__gxx_personality_v0(...)

View File

@ -155,7 +155,7 @@ endif.0: ; preds = %entry
define fastcc void @_ZSt20__throw_length_errorPKc() { define fastcc void @_ZSt20__throw_length_errorPKc() {
entry: entry:
call fastcc void @_ZNSt12length_errorC1ERKSs( ) call fastcc void @_ZNSt12length_errorC1ERKSs( )
unwind ret void
} }
define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() { define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
@ -178,8 +178,10 @@ entry:
to label %invoke_cont.1 unwind label %invoke_catch.1 to label %invoke_cont.1 unwind label %invoke_catch.1
invoke_catch.1: ; preds = %entry invoke_catch.1: ; preds = %entry
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
call fastcc void @_ZNSaIcED1Ev( ) call fastcc void @_ZNSaIcED1Ev( )
unwind resume { i8*, i32 } %exn
invoke_cont.1: ; preds = %entry invoke_cont.1: ; preds = %entry
call fastcc void @_ZNSaIcEC2ERKS_( ) call fastcc void @_ZNSaIcEC2ERKS_( )
@ -306,7 +308,9 @@ entry:
to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
invoke_catch.i: ; preds = %entry invoke_catch.i: ; preds = %entry
unwind %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
resume { i8*, i32 } %exn
_ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry _ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry
ret void ret void
@ -336,3 +340,5 @@ define fastcc void @_ZNSt5ctypeIcEC1EPKtbj() {
entry: entry:
ret void ret void
} }
declare i32 @__gxx_personality_v0(...)

View File

@ -12,21 +12,9 @@ define i32 @test1() {
to label %1 unwind label %Rethrow to label %1 unwind label %Rethrow
ret i32 0 ret i32 0
Rethrow: Rethrow:
unwind %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
resume { i8*, i32 } %exn
} }
declare i32 @__gxx_personality_v0(...)
; Verify that simplifycfg isn't duplicating 'unwind' instructions. Doing this
; is bad because it discourages commoning.
define i32 @test2(i1 %c) {
; CHECK: @test2
; CHECK: T:
; CHECK-NEXT: call void @bar()
; CHECK-NEXT: br label %F
br i1 %c, label %T, label %F
T:
call void @bar()
br label %F
F:
unwind
}