Try to eliminate the use of the 'unwind' instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139046 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2011-09-02 22:41:11 +00:00
parent 4136d23c48
commit 47e208bbea
11 changed files with 23 additions and 11 deletions

View File

@ -11,7 +11,7 @@ entry:
cleanup144: ; preds = %entry
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
cleanup
unwind
resume { i8*, i32 } %exn
}
declare i32 @__gxx_personality_v0(...)

View File

@ -11,6 +11,6 @@ invoke_catch.0: ; No predecessors!
br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock
UnifiedUnwindBlock: ; preds = %invoke_catch.0
unwind
unreachable
}

View File

@ -21,7 +21,7 @@ invoke_catch.0: ; preds = %entry
to label %tmp.1.i.i183.noexc unwind label %terminate
tmp.1.i.i183.noexc: ; preds = %invoke_catch.0
unwind
ret void
then.0: ; preds = %tmp.3.i.noexc
invoke void @_ZN10QByteArray6resizeEi( )

View File

@ -10,7 +10,7 @@ entry:
r:
ret i32 0
u:
unwind
unreachable
}
define i32 @caller() {

View File

@ -110,12 +110,18 @@ bb106: ; preds = %invcont105, %bb61
to label %.noexc unwind label %lpad119 ; <i8*> [#uses=1]
lpad: ; preds = %_ZN7cObjectnwEj.exit
%exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
cleanup
br label %Unwind
lpad119: ; preds = %bb106, %invcont104, %invcont103, %bb102, %bb49, %bb34, %bb12, %invcont10, %invcont9, %bb8
%exn119 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
cleanup
unreachable
lpad123: ; preds = %.noexc
%exn123 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
cleanup
%tmp5 = icmp eq i8* %tmp4, null ; <i1> [#uses=1]
br i1 %tmp5, label %Unwind, label %bb.i2
@ -126,6 +132,8 @@ Unwind: ; preds = %bb.i2, %lpad123, %lpad
unreachable
}
declare i32 @__gxx_personality_v0(...)
declare void @_ZN8EtherBus8tokenizeEPKcRSt6vectorIdSaIdEE(i8* nocapture, i8*, i8*)
declare i8* @_Znaj(i32)

View File

@ -461,7 +461,7 @@ cleanup329: ; preds = %cond_true319, %cond_true302, %cond_next293, %cond_true27
%val = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
cleanup
call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
unwind
resume { i8*, i32 } %val
}
declare void @_ZN6QSizeFC1Edd(%struct.QPointF*, double, double)

View File

@ -15,7 +15,7 @@ bb2:
ret i32 42
bb6:
unwind
ret i32 927
}
define i32 @test2(i32 %tmp21, i32 %tmp24, i1 %tmp34) {
@ -26,6 +26,6 @@ bb5: ; preds = %bb4
bb6:
ret i32 42
bb7:
unwind
ret i32 927
}

View File

@ -463,7 +463,7 @@ cleanup329: ; preds = %cond_true319, %cond_true302, %cond_next293, %cond_true27
%val329 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
cleanup
call void @_ZN8QPainterD1Ev( %struct.QPainter* %p )
unwind
resume { i8*, i32 } %val329
}
declare void @_ZN6QSizeFC1Edd(%struct.QPointF*, double, double)

View File

@ -14,5 +14,9 @@ r: ; preds = %entry
ret void
u: ; preds = %entry
unwind
%val = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0
cleanup
resume { i8*, i32 } %val
}
declare i32 @__gxx_personality_v0(...)

View File

@ -10,6 +10,6 @@ B: ; preds = %0
call void @test( i1 %C )
br label %X
X: ; preds = %B, %A
unwind
ret void
}

View File

@ -16,7 +16,7 @@ entry:
br i1 %tmp2, label %if, label %else
if: ; preds = %entry
unwind
ret i32 37
else: ; preds = %entry
%tmp7 = add i32 %start_arg, 1 ; <i32> [#uses=1]