Update to the new EH scheme.

llvm-svn: 138606
This commit is contained in:
Bill Wendling 2011-08-25 23:48:37 +00:00
parent 8ac2041a19
commit 62fe9e9aa6
9 changed files with 47 additions and 12 deletions

View File

@ -1,9 +1,13 @@
; RUN: llvm-as < %s | llvm-dis
define void @test() {
invoke void @test( )
to label %Next unwind label %Next
invoke void @test( )
to label %Next unwind label %Next
Next: ; preds = %0, %0
ret void
%lpad = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
ret void
}
declare i32 @__gxx_personality_v0(...)

View File

@ -12,6 +12,9 @@ cont: ; preds = %0
ret i32 1
EH: ; preds = %0
ret i32 0
%lpad = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
ret i32 0
}
declare i32 @__gxx_personality_v0(...)

View File

@ -8,5 +8,9 @@ define i32 @test2() {
invcont:
ret i32 %A
blat:
ret i32 0
%lpad = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
ret i32 0
}
declare i32 @__gxx_personality_v0(...)

View File

@ -45,7 +45,9 @@ cond_next1328: ; preds = %cond_true235, %cond_true
ret void
cond_true1402: ; preds = %invcont282, %cond_false280, %cond_true235, %cond_true
ret void
%lpad = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
ret void
}
declare void @_ZNSs14_M_replace_auxEjjjc()
@ -57,3 +59,5 @@ declare void @_ZNSs6assignEPKcj()
declare void @_ZNSs7reserveEj()
declare void @_ZNSs6appendEPKcj()
declare i32 @__gxx_personality_v0(...)

View File

@ -2,12 +2,16 @@
define fastcc void @bc__support__high_resolution_time__initialize_clock_rate() {
entry:
invoke void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null )
to label %.noexc unwind label %cleanup144
invoke void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null )
to label %.noexc unwind label %cleanup144
.noexc: ; preds = %entry
ret void
ret void
cleanup144: ; preds = %entry
unwind
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
cleanup
unwind
}
declare i32 @__gxx_personality_v0(...)

View File

@ -14,11 +14,14 @@ bb14: ; preds = %lpad
unreachable
lpad: ; preds = %entry
%lpad1 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
catch i8* null
invoke void @__cxa_end_catch( )
to label %bb14 unwind label %lpad17
lpad17: ; preds = %lpad
%eh_select20 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* null, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null ) ; <i32> [#uses=0]
%lpad2 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
catch i8* null
unreachable
UnifiedUnreachableBlock: ; preds = %entry

View File

@ -11,5 +11,9 @@ dummy:
invoke i32 @b() to label %reg unwind label %reg
reg:
%lpad = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
catch i8* null
ret void
}
declare i32 @__gxx_personality_v0(...)

View File

@ -64,10 +64,16 @@ invcont38: ; preds = %invcont25, %bb1.i,
lpad: ; preds = %bb.i93, %invcont24, %bb1.i, %invcont8
%__extracted.1 = phi i32 [ 0, %invcont8 ], [ %2, %bb1.i ], [ undef, %bb.i93 ], [ undef, %invcont24 ] ; <i32> [#uses=0]
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=1]
%lpad1 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
catch i8* null
%eh_ptr = extractvalue { i8*, i32 } %lpad1, 0
%6 = call i8* @__cxa_begin_catch(i8* %eh_ptr) nounwind ; <i8*> [#uses=0]
unreachable
lpad74: ; preds = %entry
%lpad2 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
unreachable
}
declare i32 @__gxx_personality_v0(...)

View File

@ -13,6 +13,9 @@ normal:
ret void
handler:
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
catch i8* null
ret void
}
declare i32 @__gxx_personality_v0(...)