[opaque pointer type] Add textual IR support for explicit type parameter to the invoke instruction

Same as r235145 for the call instruction - the justification, tradeoffs,
etc are all the same. The conversion script worked the same without any
false negatives (after replacing 'call' with 'invoke').

llvm-svn: 235755
This commit is contained in:
David Blaikie 2015-04-24 19:32:54 +00:00
parent 17d5168fea
commit 2fcc0180e4
17 changed files with 69 additions and 78 deletions

View File

@ -4741,10 +4741,8 @@ bool LLParser::ParseInvoke(Instruction *&Inst, PerFunctionState &PFS) {
// If RetType is a non-function pointer type, then this is the short syntax
// for the call, which means that RetType is just the return type. Infer the
// rest of the function argument types from the arguments that are present.
PointerType *PFTy = nullptr;
FunctionType *Ty = nullptr;
if (!(PFTy = dyn_cast<PointerType>(RetType)) ||
!(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
FunctionType *Ty = dyn_cast<FunctionType>(RetType);
if (!Ty) {
// Pull out the types of all of the arguments...
std::vector<Type*> ParamTypes;
for (unsigned i = 0, e = ArgList.size(); i != e; ++i)
@ -4754,12 +4752,12 @@ bool LLParser::ParseInvoke(Instruction *&Inst, PerFunctionState &PFS) {
return Error(RetTypeLoc, "Invalid result type for LLVM function");
Ty = FunctionType::get(RetType, ParamTypes, false);
PFTy = PointerType::getUnqual(Ty);
}
// Look up the callee.
Value *Callee;
if (ConvertValIDToValue(PFTy, CalleeID, Callee, &PFS)) return true;
if (ConvertValIDToValue(PointerType::getUnqual(Ty), CalleeID, Callee, &PFS))
return true;
// Set up the Attribute for the function.
SmallVector<AttributeSet, 8> Attrs;

View File

@ -2815,8 +2815,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
Out << " #" << Machine.getAttributeGroupSlot(PAL.getFnAttributes());
} else if (const InvokeInst *II = dyn_cast<InvokeInst>(&I)) {
Operand = II->getCalledValue();
PointerType *PTy = cast<PointerType>(Operand->getType());
FunctionType *FTy = cast<FunctionType>(PTy->getElementType());
FunctionType *FTy = cast<FunctionType>(II->getFunctionType());
Type *RetTy = FTy->getReturnType();
const AttributeSet &PAL = II->getAttributes();
@ -2834,15 +2833,9 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
// and if the return type is not a pointer to a function.
//
Out << ' ';
if (!FTy->isVarArg() &&
(!RetTy->isPointerTy() ||
!cast<PointerType>(RetTy)->getElementType()->isFunctionTy())) {
TypePrinter.print(RetTy, Out);
Out << ' ';
writeOperand(Operand, false);
} else {
writeOperand(Operand, true);
}
TypePrinter.print(FTy->isVarArg() ? FTy : RetTy, Out);
Out << ' ';
writeOperand(Operand, false);
Out << '(';
for (unsigned op = 0, Eop = II->getNumArgOperands(); op < Eop; ++op) {
if (op)

View File

@ -45,7 +45,7 @@ catch: ; preds = %catch.dispatch
%exn.scalar = load i32, i32* %6
store i32 %exn.scalar, i32* %e, align 4
%7 = load i32, i32* %e, align 4
%call2 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str1, i32 0, i32 0), i32 %7)
%call2 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str1, i32 0, i32 0), i32 %7)
to label %invoke.cont unwind label %lpad1
invoke.cont: ; preds = %catch

View File

@ -61,7 +61,7 @@ entry:
%.i8 = call i8* @llvm.framerecover(i8* bitcast (void ()* @"\01?f@@YAXXZ" to i8*), i8* %1, i32 1)
%2 = bitcast i8* %.i8 to double*
%3 = bitcast double* %2 to i8*
invoke void (...)* @llvm.donothing()
invoke void (...) @llvm.donothing()
to label %done unwind label %lpad
done:

View File

@ -132,7 +132,7 @@ catch: ; preds = %catch.dispatch
call void @llvm.eh.begincatch(i8* %exn, i8* %c) #2
%4 = load i8, i8* %c, align 1
%conv = sext i8 %4 to i32
%call = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv)
%call = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv)
to label %invoke.cont unwind label %lpad2
invoke.cont: ; preds = %catch
@ -177,7 +177,7 @@ catch13: ; preds = %catch.dispatch5
%13 = bitcast i32* %x to i8*
call void @llvm.eh.begincatch(i8* %exn14, i8* %13) #2
%14 = load i32, i32* %x, align 4
%call18 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PMGGPEJJ@?$CFd?6?$AA@", i32 0, i32 0), i32 %14)
%call18 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PMGGPEJJ@?$CFd?6?$AA@", i32 0, i32 0), i32 %14)
to label %invoke.cont17 unwind label %lpad16
invoke.cont17: ; preds = %catch13
@ -192,7 +192,7 @@ try.cont19: ; preds = %invoke.cont17, %inv
catch8: ; preds = %catch.dispatch5
%exn9 = load i8*, i8** %exn.slot
call void @llvm.eh.begincatch(i8* %exn9, i8* null) #2
%call12 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01??_C@_04MPPNMCOK@?4?4?4?6?$AA@", i32 0, i32 0))
%call12 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01??_C@_04MPPNMCOK@?4?4?4?6?$AA@", i32 0, i32 0))
to label %invoke.cont11 unwind label %lpad10
invoke.cont11: ; preds = %catch8
@ -241,7 +241,7 @@ catch25: ; preds = %catch.dispatch22
call void @llvm.eh.begincatch(i8* %exn26, i8* %c28) #2
%25 = load i8, i8* %c28, align 1
%conv29 = sext i8 %25 to i32
%call32 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv29)
%call32 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv29)
to label %invoke.cont31 unwind label %lpad30
invoke.cont31: ; preds = %catch25
@ -288,7 +288,7 @@ catch53: ; preds = %catch.dispatch36
%34 = bitcast i32* %x56 to i8*
call void @llvm.eh.begincatch(i8* %exn54, i8* %34) #2
%35 = load i32, i32* %x56, align 4
%call59 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PMGGPEJJ@?$CFd?6?$AA@", i32 0, i32 0), i32 %35)
%call59 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PMGGPEJJ@?$CFd?6?$AA@", i32 0, i32 0), i32 %35)
to label %invoke.cont58 unwind label %lpad57
invoke.cont58: ; preds = %catch53
@ -308,7 +308,7 @@ catch45: ; preds = %catch.fallthrough
call void @llvm.eh.begincatch(i8* %exn46, i8* %c48) #2
%37 = load i8, i8* %c48, align 1
%conv49 = sext i8 %37 to i32
%call52 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv49)
%call52 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01??_C@_03PJCJOCBM@?$CFc?6?$AA@", i32 0, i32 0), i32 %conv49)
to label %invoke.cont51 unwind label %lpad50
invoke.cont51: ; preds = %catch45
@ -318,7 +318,7 @@ invoke.cont51: ; preds = %catch45
catch40: ; preds = %catch.fallthrough
%exn41 = load i8*, i8** %exn.slot
call void @llvm.eh.begincatch(i8* %exn41, i8* null) #2
%call44 = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01??_C@_04MPPNMCOK@?4?4?4?6?$AA@", i32 0, i32 0))
%call44 = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @"\01??_C@_04MPPNMCOK@?4?4?4?6?$AA@", i32 0, i32 0))
to label %invoke.cont43 unwind label %lpad42
invoke.cont43: ; preds = %catch40

View File

@ -117,13 +117,13 @@ bb448.i8694: ; preds = %bb440.i8663, %bb278.i8617
invcont5814: ; preds = %bb448.i8694, %bb265.i8606
%tmp812.0.0 = phi i16 [ %tmp477478.i8670, %bb448.i8694 ], [ %tmp273274.i8595, %bb265.i8606 ] ; <i16> [#uses=1]
%tmp58165817 = zext i16 %tmp812.0.0 to i32 ; <i32> [#uses=1]
invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 %tmp58165817 )
invoke void (%struct.wxString*, i32*, ...) @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 %tmp58165817 )
to label %invcont5831 unwind label %lpad
invcont5831: ; preds = %invcont5814
%tmp5862 = invoke zeroext i8 @_ZN12wxStringBase10ConcatSelfEmPKwm( %struct.wxStringBase* null, i32 0, i32* null, i32 0 )
to label %bb7834 unwind label %lpad8185 ; <i8> [#uses=0]
bb5968: ; preds = %bb3314
invoke void (%struct.wxString*, i32*, ...)* @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 0 )
invoke void (%struct.wxString*, i32*, ...) @_ZN8wxString6FormatEPKwz( %struct.wxString* noalias sret null, i32* null, i32 0 )
to label %invcont5981 unwind label %lpad
invcont5981: ; preds = %bb5968
ret void

View File

@ -49,7 +49,7 @@ match: ; preds = %try.handler
%5 = bitcast i8* %4 to i32* ; <i32*> [#uses=1]
%6 = load i32, i32* %5 ; <i32> [#uses=1]
store i32 %6, i32* %0
%call = invoke i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), %struct.S* %s2)
%call = invoke i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), %struct.S* %s2)
to label %invoke.cont2 unwind label %match.handler ; <i32> [#uses=0]
invoke.cont2: ; preds = %match

View File

@ -25487,11 +25487,11 @@ bb25332: ; preds = %bb25330, %bb25305
br i1 undef, label %bb25333, label %bb25357
bb25333: ; preds = %bb25332
invoke void (...)* @printf()
invoke void (...) @printf()
to label %bb25334 unwind label %bb25324
bb25334: ; preds = %bb25333
invoke void (...)* @printf(i32 undef)
invoke void (...) @printf(i32 undef)
to label %bb25335 unwind label %bb25324
bb25335: ; preds = %bb25334
@ -25501,7 +25501,7 @@ bb25336: ; preds = %bb25338, %bb25335
br i1 undef, label %bb25337, label %bb25339
bb25337: ; preds = %bb25336
invoke void (...)* @printf(i32 undef, double undef)
invoke void (...) @printf(i32 undef, double undef)
to label %bb25338 unwind label %bb25324
bb25338: ; preds = %bb25337
@ -25517,11 +25517,11 @@ bb25341: ; preds = %bb25340
br label %bb25340
bb25342: ; preds = %bb25340
invoke void (...)* @printf()
invoke void (...) @printf()
to label %bb25343 unwind label %bb25324
bb25343: ; preds = %bb25342
invoke void (...)* @printf(double undef, double undef)
invoke void (...) @printf(double undef, double undef)
to label %bb25344 unwind label %bb25324
bb25344: ; preds = %bb25343
@ -25547,15 +25547,15 @@ bb25350: ; preds = %bb25349
br label %bb25349
bb25351: ; preds = %bb25349
invoke void (...)* @printf()
invoke void (...) @printf()
to label %bb25352 unwind label %bb25355
bb25352: ; preds = %bb25351
invoke void (...)* @printf(double undef)
invoke void (...) @printf(double undef)
to label %bb25353 unwind label %bb25355
bb25353: ; preds = %bb25352
invoke void (...)* @printf()
invoke void (...) @printf()
to label %bb25354 unwind label %bb25355
bb25354: ; preds = %bb25353
@ -25567,7 +25567,7 @@ bb25355: ; preds = %bb25353, %bb25352,
br label %bb25359
bb25357: ; preds = %bb25332
invoke void (...)* @printf()
invoke void (...) @printf()
to label %bb25358 unwind label %bb25324
bb25358: ; preds = %bb25357, %bb25354

View File

@ -18,7 +18,7 @@ entry:
; CHECK-NEXT: [[PP_END:.L.*]]:
; CHECK: ret
%resolveCall = inttoptr i64 -559038736 to i8*
%result = invoke i64 (i64, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i64 2, i32 15, i8* %resolveCall, i32 1, i64 %p1, i64 %p2)
%result = invoke i64 (i64, i32, i8*, i32, ...) @llvm.experimental.patchpoint.i64(i64 2, i32 15, i8* %resolveCall, i32 1, i64 %p1, i64 %p2)
to label %success unwind label %threw
success:

View File

@ -16,7 +16,7 @@ entry:
to label %invcont unwind label %lpad ; <%struct.NSObject*> [#uses=1]
invcont: ; preds = %entry
%1 = invoke %struct.NSObject* (%struct.NSObject*, %struct.objc_selector*, ...)* @objc_msgSend(%struct.NSObject* %0, %struct.objc_selector* null)
%1 = invoke %struct.NSObject* (%struct.NSObject*, %struct.objc_selector*, ...) @objc_msgSend(%struct.NSObject* %0, %struct.objc_selector* null)
to label %invcont26 unwind label %lpad ; <%struct.NSObject*> [#uses=0]
invcont26: ; preds = %invcont

View File

@ -13,7 +13,7 @@ entry:
; CHECK: .Ltmp{{[0-9]+}}:
; CHECK: callq some_other_call
; CHECK: .Ltmp{{[0-9]+}}:
%0 = invoke i32 (i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64 addrspace(1)* (i64 addrspace(1)*)* @some_other_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1)
%0 = invoke i32 (i64 addrspace(1)* (i64 addrspace(1)*)*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_p1i64p1i64f(i64 addrspace(1)* (i64 addrspace(1)*)* @some_other_call, i32 1, i32 0, i64 addrspace(1)* %obj, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i64 addrspace(1)* %obj, i64 addrspace(1)* %obj1)
to label %normal_return unwind label %exceptional_return
normal_return:

View File

@ -104,7 +104,7 @@ define void @test_invoke_vararg_cast(i32* %a, i32* %b) {
entry:
%0 = bitcast i32* %b to i8*
%1 = bitcast i32* %a to i64*
invoke void (i32, ...)* @varargs(i32 1, i8* %0, i64* %1)
invoke void (i32, ...) @varargs(i32 1, i8* %0, i64* %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
@ -116,7 +116,7 @@ lpad: ; preds = %entry
ret void
; CHECK-LABEL: test_invoke_vararg_cast
; CHECK-LABEL: entry:
; CHECK: invoke void (i32, ...)* @varargs(i32 1, i32* %b, i32* %a)
; CHECK: invoke void (i32, ...) @varargs(i32 1, i32* %b, i32* %a)
}
define i8* @test13(i64 %A) {

View File

@ -54,7 +54,7 @@ invcont11: ; preds = %invcont10
br i1 undef, label %bb12, label %bb18
bb12: ; preds = %invcont11
invoke void (i8*, i8*, ...)* @_ZN6cEnvir6printfEPKcz(i8* null, i8* getelementptr ([3 x i8], [3 x i8]* @.str12, i32 0, i32 0), i32 undef)
invoke void (i8*, i8*, ...) @_ZN6cEnvir6printfEPKcz(i8* null, i8* getelementptr ([3 x i8], [3 x i8]* @.str12, i32 0, i32 0), i32 undef)
to label %bb.i.i159 unwind label %lpad119
bb.i.i159: ; preds = %bb12
@ -77,7 +77,7 @@ invcont35: ; preds = %bb34
br i1 undef, label %bb49, label %bb61
bb49: ; preds = %invcont35
invoke void (i8*, i8*, ...)* @_ZNK13cSimpleModule5errorEPKcz(i8* undef, i8* getelementptr ([92 x i8], [92 x i8]* @.str32190, i32 0, i32 0))
invoke void (i8*, i8*, ...) @_ZNK13cSimpleModule5errorEPKcz(i8* undef, i8* getelementptr ([92 x i8], [92 x i8]* @.str32190, i32 0, i32 0))
to label %bb51 unwind label %lpad119
bb51: ; preds = %bb49

View File

@ -881,7 +881,7 @@ land.rhs: ; preds = %invoke.cont4
to label %land.end unwind label %lpad3
land.end: ; preds = %land.rhs, %invoke.cont4
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i unwind label %lpad.i
invoke.cont.i: ; preds = %land.end
@ -896,7 +896,7 @@ lpad.i: ; preds = %land.end
unreachable
invoke.cont8: ; preds = %if.then.i, %invoke.cont.i
%call18 = invoke i8* (i8*, i8*, i8*, ...)* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, ...)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef)
%call18 = invoke i8* (i8*, i8*, i8*, ...) bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, i8*, ...)*)(i8* undef, i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef)
to label %invoke.cont17 unwind label %lpad16
invoke.cont17: ; preds = %invoke.cont8
@ -904,7 +904,7 @@ invoke.cont17: ; preds = %invoke.cont8
to label %invoke.cont21 unwind label %lpad20
invoke.cont21: ; preds = %invoke.cont17
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i1980 unwind label %lpad.i1982
invoke.cont.i1980: ; preds = %invoke.cont21
@ -930,7 +930,7 @@ land.rhs39: ; preds = %invoke.cont36
to label %land.end43 unwind label %lpad35
land.end43: ; preds = %land.rhs39, %invoke.cont36
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i1986 unwind label %lpad.i1988
invoke.cont.i1986: ; preds = %land.end43
@ -960,7 +960,7 @@ invoke.cont62: ; preds = %land.rhs58
to label %land.end70 unwind label %lpad66.body.thread
land.end70: ; preds = %invoke.cont62, %invoke.cont52
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i1992 unwind label %lpad66.body
invoke.cont.i1992: ; preds = %land.end70
@ -970,7 +970,7 @@ if.then.i1993: ; preds = %invoke.cont.i1992
br label %invoke.cont71
invoke.cont71: ; preds = %if.then.i1993, %invoke.cont.i1992
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i1998 unwind label %lpad.i2000
invoke.cont.i1998: ; preds = %invoke.cont71
@ -993,7 +993,7 @@ invoke.cont95: ; preds = %invoke.cont91
to label %invoke.cont97 unwind label %lpad94
invoke.cont97: ; preds = %invoke.cont95
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2004 unwind label %lpad.i2006
invoke.cont.i2004: ; preds = %invoke.cont97
@ -1012,7 +1012,7 @@ invoke.cont100: ; preds = %if.then.i2005, %inv
to label %invoke.cont110 unwind label %lpad109
invoke.cont110: ; preds = %invoke.cont100
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2010 unwind label %lpad.i2012
invoke.cont.i2010: ; preds = %invoke.cont110
@ -1027,7 +1027,7 @@ lpad.i2012: ; preds = %invoke.cont110
unreachable
invoke.cont117: ; preds = %if.then.i2011, %invoke.cont.i2010
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2022 unwind label %lpad156.body
lpad: ; preds = %entry
@ -1101,7 +1101,7 @@ if.then.i2023: ; preds = %invoke.cont.i2022
br label %invoke.cont157
invoke.cont157: ; preds = %if.then.i2023, %invoke.cont.i2022
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2028 unwind label %lpad164.body
invoke.cont.i2028: ; preds = %invoke.cont157
@ -1119,7 +1119,7 @@ invoke.cont184: ; preds = %invoke.cont165
to label %invoke.cont185 unwind label %lpad183
invoke.cont185: ; preds = %invoke.cont184
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2034 unwind label %lpad.i2036
invoke.cont.i2034: ; preds = %invoke.cont185
@ -1146,7 +1146,7 @@ invoke.cont201: ; preds = %invoke.cont197
to label %invoke.cont204 unwind label %lpad203
invoke.cont204: ; preds = %invoke.cont201
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2040 unwind label %lpad.i2042
invoke.cont.i2040: ; preds = %invoke.cont204
@ -1165,7 +1165,7 @@ invoke.cont207: ; preds = %if.then.i2041, %inv
to label %invoke.cont208 unwind label %lpad203
invoke.cont208: ; preds = %invoke.cont207
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2046 unwind label %lpad212.body
invoke.cont.i2046: ; preds = %invoke.cont208
@ -1183,7 +1183,7 @@ invoke.cont221: ; preds = %invoke.cont213
to label %invoke.cont228 unwind label %lpad227
invoke.cont228: ; preds = %invoke.cont221
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2052 unwind label %lpad.i2054
invoke.cont.i2052: ; preds = %invoke.cont228
@ -1202,7 +1202,7 @@ invoke.cont231: ; preds = %if.then.i2053, %inv
to label %invoke.cont232 unwind label %lpad227
invoke.cont232: ; preds = %invoke.cont231
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2058 unwind label %lpad236.body
invoke.cont.i2058: ; preds = %invoke.cont232
@ -1248,7 +1248,7 @@ invoke.cont274: ; preds = %invoke.cont266
to label %invoke.cont278 unwind label %lpad277
invoke.cont278: ; preds = %invoke.cont274
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2064 unwind label %lpad.i2066
invoke.cont.i2064: ; preds = %invoke.cont278
@ -1294,7 +1294,7 @@ land.rhs335: ; preds = %invoke.cont321
to label %land.end344 unwind label %lpad340.body.thread
land.end344: ; preds = %land.rhs335, %invoke.cont321
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2070 unwind label %lpad340.body
invoke.cont.i2070: ; preds = %land.end344
@ -1316,7 +1316,7 @@ invoke.cont364: ; preds = %invoke.cont361
to label %invoke.cont370 unwind label %lpad369
invoke.cont370: ; preds = %invoke.cont364
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2076 unwind label %lpad.i2078
invoke.cont.i2076: ; preds = %invoke.cont370
@ -1343,7 +1343,7 @@ invoke.cont382: ; preds = %invoke.cont376
to label %invoke.cont383 unwind label %lpad381
invoke.cont383: ; preds = %invoke.cont382
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2082 unwind label %lpad.i2084
invoke.cont.i2082: ; preds = %invoke.cont383
@ -1374,7 +1374,7 @@ invoke.cont399: ; preds = %invoke.cont396
to label %invoke.cont402 unwind label %lpad401
invoke.cont402: ; preds = %invoke.cont399
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2088 unwind label %lpad.i2090
invoke.cont.i2088: ; preds = %invoke.cont402
@ -1401,7 +1401,7 @@ invoke.cont409: ; preds = %invoke.cont408
to label %invoke.cont412 unwind label %lpad411
invoke.cont412: ; preds = %invoke.cont409
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2094 unwind label %lpad.i2096
invoke.cont.i2094: ; preds = %invoke.cont412
@ -1432,7 +1432,7 @@ invoke.cont426: ; preds = %invoke.cont423
to label %invoke.cont429 unwind label %lpad428
invoke.cont429: ; preds = %invoke.cont426
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2100 unwind label %lpad.i2102
invoke.cont.i2100: ; preds = %invoke.cont429
@ -1451,7 +1451,7 @@ invoke.cont432: ; preds = %if.then.i2101, %inv
to label %invoke.cont435 unwind label %lpad381
invoke.cont435: ; preds = %invoke.cont432
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2106 unwind label %lpad.i2108
invoke.cont.i2106: ; preds = %invoke.cont435
@ -1464,7 +1464,7 @@ lpad.i2108: ; preds = %invoke.cont435
unreachable
invoke.cont443: ; preds = %invoke.cont.i2106
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2112 unwind label %lpad.i2114
invoke.cont.i2112: ; preds = %invoke.cont443
@ -1487,7 +1487,7 @@ invoke.cont452: ; preds = %invoke.cont449
to label %invoke.cont455 unwind label %lpad454
invoke.cont455: ; preds = %invoke.cont452
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2118 unwind label %lpad.i2120
invoke.cont.i2118: ; preds = %invoke.cont455
@ -1506,7 +1506,7 @@ invoke.cont458: ; preds = %if.then.i2119, %inv
to label %invoke.cont460 unwind label %lpad381
invoke.cont460: ; preds = %invoke.cont458
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2124 unwind label %lpad.i2126
invoke.cont.i2124: ; preds = %invoke.cont460
@ -1525,7 +1525,7 @@ invoke.cont466: ; preds = %if.then.i2125, %inv
to label %invoke.cont469 unwind label %lpad381
invoke.cont469: ; preds = %invoke.cont466
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2130 unwind label %lpad.i2132
invoke.cont.i2130: ; preds = %invoke.cont469
@ -1574,7 +1574,7 @@ msgSend.null-receiver: ; preds = %invoke.cont512
br label %msgSend.cont
msgSend.cont: ; preds = %msgSend.null-receiver, %msgSend.call
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2136 unwind label %lpad.i2138
invoke.cont.i2136: ; preds = %msgSend.cont
@ -1601,7 +1601,7 @@ invoke.cont531: ; preds = %invoke.cont528
to label %invoke.cont534 unwind label %lpad533
invoke.cont534: ; preds = %invoke.cont531
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* undef, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2142 unwind label %lpad.i2144
invoke.cont.i2142: ; preds = %invoke.cont534
@ -1633,7 +1633,7 @@ invoke.cont548: ; preds = %invoke.cont546
invoke.cont554: ; preds = %invoke.cont548
%tmp499 = call i8* @objc_retain(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*)) #3
invoke void (i8*, ...)* @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* %tmp499, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
invoke void (i8*, ...) @NSLog(i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*), i8* %tmp499, i8* bitcast (%struct.NSConstantString* @_unnamed_cfstring to i8*))
to label %invoke.cont.i2148 unwind label %lpad.i2150
invoke.cont.i2148: ; preds = %invoke.cont554

View File

@ -58,7 +58,7 @@ define <2 x i64 addrspace(1)*> @test4(<2 x i64 addrspace(1)*>* %ptr) gc "statepo
; CHECK-NEXT: gc.statepoint
entry:
%obj = load <2 x i64 addrspace(1)*>, <2 x i64 addrspace(1)*>* %ptr
invoke i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* @do_safepoint, i32 0, i32 0, i32 0)
invoke i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* @do_safepoint, i32 0, i32 0, i32 0)
to label %normal_return unwind label %exceptional_return
; CHECK-LABEL: normal_return:

View File

@ -45,7 +45,7 @@ define void @test8() gc "statepoint-example" {
ret void
unreached:
invoke i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* @foo, i32 0, i32 0, i32 0)
invoke i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* @foo, i32 0, i32 0, i32 0)
to label %normal_return unwind label %exceptional_return
normal_return: ; preds = %entry

View File

@ -57,7 +57,7 @@ define i8 addrspace(1)* @test3(i8 addrspace(1)* %obj, i8 addrspace(1)* %obj1) gc
entry:
; CHECK-LABEL: entry
; CHECK: statepoint
%0 = invoke i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i8 addrspace(1)* %obj, i8 addrspace(1)* %obj1)
%0 = invoke i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 -1, i32 0, i32 0, i32 0, i8 addrspace(1)* %obj, i8 addrspace(1)* %obj1)
to label %normal_dest unwind label %exceptional_return
normal_dest: