Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit 4c7d9f1

Browse files
committed
Convert CallInst and InvokeInst APIs to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 4e9272d commit 4c7d9f1

11 files changed

+69
-66
lines changed

lib/CodeGen/CGBuiltin.cpp

+33-29
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ static void EmitMemoryBarrier(CodeGenFunction &CGF,
3838
StoreLoad ? True : False,
3939
StoreStore ? True : False,
4040
Device ? True : False };
41-
CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(Intrinsic::memory_barrier),
42-
C, C + 5);
41+
CGF.Builder.CreateCall(CGF.CGM.getIntrinsic(Intrinsic::memory_barrier), C);
4342
}
4443

4544
/// Emit the conversions required to turn the given value into an
@@ -69,14 +68,14 @@ static Value *EmitFromInt(CodeGenFunction &CGF, llvm::Value *V,
6968
// The atomic builtins are also full memory barriers. This is a utility for
7069
// wrapping a call to the builtins with memory barriers.
7170
static Value *EmitCallWithBarrier(CodeGenFunction &CGF, Value *Fn,
72-
Value **ArgBegin, Value **ArgEnd) {
71+
ArrayRef<Value *> Args) {
7372
// FIXME: We need a target hook for whether this applies to device memory or
7473
// not.
7574
bool Device = true;
7675

7776
// Create barriers both before and after the call.
7877
EmitMemoryBarrier(CGF, true, true, true, true, Device);
79-
Value *Result = CGF.Builder.CreateCall(Fn, ArgBegin, ArgEnd);
78+
Value *Result = CGF.Builder.CreateCall(Fn, Args);
8079
EmitMemoryBarrier(CGF, true, true, true, true, Device);
8180
return Result;
8281
}
@@ -109,7 +108,7 @@ static RValue EmitBinaryAtomic(CodeGenFunction &CGF,
109108
const llvm::Type *ValueType = Args[1]->getType();
110109
Args[1] = EmitToInt(CGF, Args[1], T, IntType);
111110

112-
llvm::Value *Result = EmitCallWithBarrier(CGF, AtomF, Args, Args + 2);
111+
llvm::Value *Result = EmitCallWithBarrier(CGF, AtomF, Args);
113112
Result = EmitFromInt(CGF, Result, T, ValueType);
114113
return RValue::get(Result);
115114
}
@@ -144,7 +143,7 @@ static RValue EmitBinaryAtomicPost(CodeGenFunction &CGF,
144143
Args[1] = EmitToInt(CGF, Args[1], T, IntType);
145144
Args[0] = CGF.Builder.CreateBitCast(DestPtr, IntPtrType);
146145

147-
llvm::Value *Result = EmitCallWithBarrier(CGF, AtomF, Args, Args + 2);
146+
llvm::Value *Result = EmitCallWithBarrier(CGF, AtomF, Args);
148147
Result = CGF.Builder.CreateBinOp(Op, Result, Args[1]);
149148
Result = EmitFromInt(CGF, Result, T, ValueType);
150149
return RValue::get(Result);
@@ -879,7 +878,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD,
879878
Args[1] = EmitToInt(*this, Args[1], T, IntType);
880879
Args[2] = EmitToInt(*this, EmitScalarExpr(E->getArg(2)), T, IntType);
881880

882-
Value *Result = EmitCallWithBarrier(*this, AtomF, Args, Args + 3);
881+
Value *Result = EmitCallWithBarrier(*this, AtomF, Args);
883882
Result = EmitFromInt(*this, Result, T, ValueType);
884883
return RValue::get(Result);
885884
}
@@ -908,7 +907,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD,
908907
Args[2] = EmitToInt(*this, EmitScalarExpr(E->getArg(2)), T, IntType);
909908

910909
Value *OldVal = Args[1];
911-
Value *PrevVal = EmitCallWithBarrier(*this, AtomF, Args, Args + 3);
910+
Value *PrevVal = EmitCallWithBarrier(*this, AtomF, Args);
912911
Value *Result = Builder.CreateICmpEQ(PrevVal, OldVal);
913912
// zext bool to int.
914913
Result = Builder.CreateZExt(Result, ConvertType(E->getType()));
@@ -957,7 +956,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD,
957956
EmitScalarExpr(E->getArg(3)),
958957
EmitScalarExpr(E->getArg(4))
959958
};
960-
Builder.CreateCall(CGM.getIntrinsic(Intrinsic::memory_barrier), C, C + 5);
959+
Builder.CreateCall(CGM.getIntrinsic(Intrinsic::memory_barrier), C);
961960
return RValue::get(0);
962961
}
963962

@@ -1075,7 +1074,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD,
10751074
Args.push_back(ArgValue);
10761075
}
10771076

1078-
Value *V = Builder.CreateCall(F, Args.data(), Args.data() + Args.size());
1077+
Value *V = Builder.CreateCall(F, Args);
10791078
QualType BuiltinRetType = E->getType();
10801079

10811080
const llvm::Type *RetTy = llvm::Type::getVoidTy(getLLVMContext());
@@ -1152,7 +1151,7 @@ Value *CodeGenFunction::EmitNeonCall(Function *F, SmallVectorImpl<Value*> &Ops,
11521151
else
11531152
Ops[j] = Builder.CreateBitCast(Ops[j], ai->getType(), name);
11541153

1155-
return Builder.CreateCall(F, Ops.begin(), Ops.end(), name);
1154+
return Builder.CreateCall(F, Ops, name);
11561155
}
11571156

11581157
Value *CodeGenFunction::EmitNeonShiftVector(Value *V, const llvm::Type *Ty,
@@ -1200,8 +1199,7 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
12001199
const llvm::Type *Ty = CGM.getTypes().ConvertType(FD->getType());
12011200
const llvm::FunctionType *FTy = cast<llvm::FunctionType>(Ty);
12021201
llvm::StringRef Name = FD->getName();
1203-
return Builder.CreateCall(CGM.CreateRuntimeFunction(FTy, Name),
1204-
Ops.begin(), Ops.end());
1202+
return Builder.CreateCall(CGM.CreateRuntimeFunction(FTy, Name), Ops);
12051203
}
12061204

12071205
if (BuiltinID == ARM::BI__builtin_arm_ldrexd) {
@@ -1262,7 +1260,7 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
12621260

12631261
// Call the appropriate intrinsic.
12641262
Function *F = CGM.getIntrinsic(Int, Ty);
1265-
return Builder.CreateCall(F, Ops.begin(), Ops.end(), "vcvtr");
1263+
return Builder.CreateCall(F, Ops, "vcvtr");
12661264
}
12671265

12681266
// Determine the type of this overloaded NEON intrinsic.
@@ -1459,7 +1457,9 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
14591457
Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
14601458
Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
14611459
Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
1462-
Ops[1] = Builder.CreateCall(F, Ops.begin() + 1, Ops.end(), "vld2_lane");
1460+
Ops[1] = Builder.CreateCall(F,
1461+
ArrayRef<Value *>(Ops.begin() + 1, Ops.end()),
1462+
"vld2_lane");
14631463
Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
14641464
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
14651465
return Builder.CreateStore(Ops[1], Ops[0]);
@@ -1471,7 +1471,9 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
14711471
Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
14721472
Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
14731473
Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
1474-
Ops[1] = Builder.CreateCall(F, Ops.begin() + 1, Ops.end(), "vld3_lane");
1474+
Ops[1] = Builder.CreateCall(F,
1475+
ArrayRef<Value *>(Ops.begin() + 1, Ops.end()),
1476+
"vld3_lane");
14751477
Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
14761478
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
14771479
return Builder.CreateStore(Ops[1], Ops[0]);
@@ -1484,7 +1486,9 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
14841486
Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
14851487
Ops[5] = Builder.CreateBitCast(Ops[5], Ty);
14861488
Ops.push_back(GetPointeeAlignment(*this, E->getArg(1)));
1487-
Ops[1] = Builder.CreateCall(F, Ops.begin() + 1, Ops.end(), "vld3_lane");
1489+
Ops[1] = Builder.CreateCall(F,
1490+
ArrayRef<Value *>(Ops.begin() + 1, Ops.end()),
1491+
"vld3_lane");
14881492
Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
14891493
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
14901494
return Builder.CreateStore(Ops[1], Ops[0]);
@@ -1536,7 +1540,7 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
15361540
Args.push_back(CI);
15371541
Args.push_back(GetPointeeAlignment(*this, E->getArg(1)));
15381542

1539-
Ops[1] = Builder.CreateCall(F, Args.begin(), Args.end(), "vld_dup");
1543+
Ops[1] = Builder.CreateCall(F, Args, "vld_dup");
15401544
// splat lane 0 to all elts in each vector of the result.
15411545
for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
15421546
Value *Val = Builder.CreateExtractValue(Ops[1], i);
@@ -2023,7 +2027,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
20232027
break;
20242028
}
20252029
llvm::Function *F = CGM.getIntrinsic(ID);
2026-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), name);
2030+
return Builder.CreateCall(F, Ops, name);
20272031
}
20282032
case X86::BI__builtin_ia32_vec_init_v8qi:
20292033
case X86::BI__builtin_ia32_vec_init_v4hi:
@@ -2083,15 +2087,15 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
20832087
break;
20842088
}
20852089
llvm::Function *F = CGM.getIntrinsic(ID);
2086-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), name);
2090+
return Builder.CreateCall(F, Ops, name);
20872091
}
20882092
case X86::BI__builtin_ia32_cmpps: {
20892093
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse_cmp_ps);
2090-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "cmpps");
2094+
return Builder.CreateCall(F, Ops, "cmpps");
20912095
}
20922096
case X86::BI__builtin_ia32_cmpss: {
20932097
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse_cmp_ss);
2094-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "cmpss");
2098+
return Builder.CreateCall(F, Ops, "cmpss");
20952099
}
20962100
case X86::BI__builtin_ia32_ldmxcsr: {
20972101
const llvm::Type *PtrTy = Int8PtrTy;
@@ -2111,11 +2115,11 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
21112115
}
21122116
case X86::BI__builtin_ia32_cmppd: {
21132117
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse2_cmp_pd);
2114-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "cmppd");
2118+
return Builder.CreateCall(F, Ops, "cmppd");
21152119
}
21162120
case X86::BI__builtin_ia32_cmpsd: {
21172121
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse2_cmp_sd);
2118-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "cmpsd");
2122+
return Builder.CreateCall(F, Ops, "cmpsd");
21192123
}
21202124
case X86::BI__builtin_ia32_storehps:
21212125
case X86::BI__builtin_ia32_storelps: {
@@ -2159,7 +2163,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
21592163

21602164
// create i32 constant
21612165
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_mmx_psrl_q);
2162-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + 2, "palignr");
2166+
return Builder.CreateCall(F, ArrayRef<Value *>(&Ops[0], 2), "palignr");
21632167
}
21642168

21652169
// If palignr is shifting the pair of vectors more than 32 bytes, emit zero.
@@ -2189,7 +2193,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
21892193

21902194
// create i32 constant
21912195
llvm::Function *F = CGM.getIntrinsic(Intrinsic::x86_sse2_psrl_dq);
2192-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + 2, "palignr");
2196+
return Builder.CreateCall(F, ArrayRef<Value *>(&Ops[0], 2), "palignr");
21932197
}
21942198

21952199
// If palignr is shifting the pair of vectors more than 32 bytes, emit zero.
@@ -2341,7 +2345,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
23412345
break;
23422346
}
23432347
llvm::Function *F = CGM.getIntrinsic(ID);
2344-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), name);
2348+
return Builder.CreateCall(F, Ops, name);
23452349
}
23462350
}
23472351
}
@@ -2397,7 +2401,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
23972401
break;
23982402
}
23992403
llvm::Function *F = CGM.getIntrinsic(ID);
2400-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "");
2404+
return Builder.CreateCall(F, Ops, "");
24012405
}
24022406

24032407
// vec_st
@@ -2430,7 +2434,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
24302434
break;
24312435
}
24322436
llvm::Function *F = CGM.getIntrinsic(ID);
2433-
return Builder.CreateCall(F, &Ops[0], &Ops[0] + Ops.size(), "");
2437+
return Builder.CreateCall(F, Ops, "");
24342438
}
24352439
}
24362440
return 0;

lib/CodeGen/CGCall.cpp

+11-7
Original file line numberDiff line numberDiff line change
@@ -1427,20 +1427,25 @@ void CodeGenFunction::EmitCallArg(CallArgList &args, const Expr *E,
14271427
/// on the current state of the EH stack.
14281428
llvm::CallSite
14291429
CodeGenFunction::EmitCallOrInvoke(llvm::Value *Callee,
1430-
llvm::Value * const *ArgBegin,
1431-
llvm::Value * const *ArgEnd,
1430+
llvm::ArrayRef<llvm::Value *> Args,
14321431
const llvm::Twine &Name) {
14331432
llvm::BasicBlock *InvokeDest = getInvokeDest();
14341433
if (!InvokeDest)
1435-
return Builder.CreateCall(Callee, ArgBegin, ArgEnd, Name);
1434+
return Builder.CreateCall(Callee, Args, Name);
14361435

14371436
llvm::BasicBlock *ContBB = createBasicBlock("invoke.cont");
14381437
llvm::InvokeInst *Invoke = Builder.CreateInvoke(Callee, ContBB, InvokeDest,
1439-
ArgBegin, ArgEnd, Name);
1438+
Args, Name);
14401439
EmitBlock(ContBB);
14411440
return Invoke;
14421441
}
14431442

1443+
llvm::CallSite
1444+
CodeGenFunction::EmitCallOrInvoke(llvm::Value *Callee,
1445+
const llvm::Twine &Name) {
1446+
return EmitCallOrInvoke(Callee, llvm::ArrayRef<llvm::Value *>(), Name);
1447+
}
1448+
14441449
static void checkArgMatches(llvm::Value *Elt, unsigned &ArgNo,
14451450
llvm::FunctionType *FTy) {
14461451
if (ArgNo < FTy->getNumParams())
@@ -1700,11 +1705,10 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
17001705

17011706
llvm::CallSite CS;
17021707
if (!InvokeDest) {
1703-
CS = Builder.CreateCall(Callee, Args.data(), Args.data()+Args.size());
1708+
CS = Builder.CreateCall(Callee, Args);
17041709
} else {
17051710
llvm::BasicBlock *Cont = createBasicBlock("invoke.cont");
1706-
CS = Builder.CreateInvoke(Callee, Cont, InvokeDest,
1707-
Args.data(), Args.data()+Args.size());
1711+
CS = Builder.CreateInvoke(Callee, Cont, InvokeDest, Args);
17081712
EmitBlock(Cont);
17091713
}
17101714
if (callOrInvoke)

lib/CodeGen/CGDeclCXX.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ CodeGenFunction::EmitCXXGlobalDtorRegistration(llvm::Constant *DtorFn,
149149
llvm::Value *Args[3] = { llvm::ConstantExpr::getBitCast(DtorFn, DtorFnTy),
150150
llvm::ConstantExpr::getBitCast(DeclPtr, Int8PtrTy),
151151
llvm::ConstantExpr::getBitCast(Handle, Int8PtrTy) };
152-
Builder.CreateCall(AtExitFn, &Args[0], llvm::array_endof(Args));
152+
Builder.CreateCall(AtExitFn, Args);
153153
}
154154

155155
void CodeGenFunction::EmitCXXGuardedInit(const VarDecl &D,

lib/CodeGen/CGException.cpp

+7-8
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ llvm::BasicBlock *CodeGenFunction::EmitLandingPad() {
788788
// Tell the backend how to generate the landing pad.
789789
llvm::CallInst *Selection =
790790
Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::eh_selector),
791-
EHSelector.begin(), EHSelector.end(), "eh.selector");
791+
EHSelector, "eh.selector");
792792
Selection->setDoesNotThrow();
793793

794794
// Save the selector value in mandatory-cleanup mode.
@@ -928,7 +928,7 @@ namespace {
928928
return;
929929
}
930930

931-
CGF.EmitCallOrInvoke(getEndCatchFn(CGF), 0, 0);
931+
CGF.EmitCallOrInvoke(getEndCatchFn(CGF));
932932
}
933933
};
934934
}
@@ -1141,7 +1141,7 @@ static void BeginCatch(CodeGenFunction &CGF, const CXXCatchStmt *S) {
11411141
namespace {
11421142
struct CallRethrow : EHScopeStack::Cleanup {
11431143
void Emit(CodeGenFunction &CGF, Flags flags) {
1144-
CGF.EmitCallOrInvoke(getReThrowFn(CGF), 0, 0);
1144+
CGF.EmitCallOrInvoke(getReThrowFn(CGF));
11451145
}
11461146
};
11471147
}
@@ -1221,7 +1221,7 @@ namespace {
12211221
CGF.Builder.CreateLoad(ForEHVar, "finally.endcatch");
12221222
CGF.Builder.CreateCondBr(ShouldEndCatch, EndCatchBB, CleanupContBB);
12231223
CGF.EmitBlock(EndCatchBB);
1224-
CGF.EmitCallOrInvoke(EndCatchFn, 0, 0); // catch-all, so might throw
1224+
CGF.EmitCallOrInvoke(EndCatchFn); // catch-all, so might throw
12251225
CGF.EmitBlock(CleanupContBB);
12261226
}
12271227
};
@@ -1266,10 +1266,9 @@ namespace {
12661266

12671267
CGF.EmitBlock(RethrowBB);
12681268
if (SavedExnVar) {
1269-
llvm::Value *Args[] = { CGF.Builder.CreateLoad(SavedExnVar) };
1270-
CGF.EmitCallOrInvoke(RethrowFn, Args, Args+1);
1269+
CGF.EmitCallOrInvoke(RethrowFn, CGF.Builder.CreateLoad(SavedExnVar));
12711270
} else {
1272-
CGF.EmitCallOrInvoke(RethrowFn, 0, 0);
1271+
CGF.EmitCallOrInvoke(RethrowFn);
12731272
}
12741273
CGF.Builder.CreateUnreachable();
12751274

@@ -1417,7 +1416,7 @@ llvm::BasicBlock *CodeGenFunction::getTerminateLandingPad() {
14171416
llvm::Value *Args[3] = { Exn, getOpaquePersonalityFn(CGM, Personality),
14181417
getCatchAllValue(*this) };
14191418
Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::eh_selector),
1420-
Args, Args+3, "eh.selector")
1419+
Args, "eh.selector")
14211420
->setDoesNotThrow();
14221421

14231422
llvm::CallInst *TerminateCall = Builder.CreateCall(getTerminateFn(*this));

lib/CodeGen/CGExprCXX.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@ static llvm::Constant *getBadTypeidFn(CodeGenFunction &CGF) {
14481448

14491449
static void EmitBadTypeidCall(CodeGenFunction &CGF) {
14501450
llvm::Value *Fn = getBadTypeidFn(CGF);
1451-
CGF.EmitCallOrInvoke(Fn, 0, 0).setDoesNotReturn();
1451+
CGF.EmitCallOrInvoke(Fn).setDoesNotReturn();
14521452
CGF.Builder.CreateUnreachable();
14531453
}
14541454

@@ -1546,7 +1546,7 @@ static llvm::Constant *getBadCastFn(CodeGenFunction &CGF) {
15461546

15471547
static void EmitBadCastCall(CodeGenFunction &CGF) {
15481548
llvm::Value *Fn = getBadCastFn(CGF);
1549-
CGF.EmitCallOrInvoke(Fn, 0, 0).setDoesNotReturn();
1549+
CGF.EmitCallOrInvoke(Fn).setDoesNotReturn();
15501550
CGF.Builder.CreateUnreachable();
15511551
}
15521552

lib/CodeGen/CGObjCGNU.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ class CGObjCGCC : public CGObjCGNU {
531531
CGBuilderTy &Builder = CGF.Builder;
532532
llvm::Value *lookupArgs[] = {EnforceType(Builder, ObjCSuper,
533533
PtrToObjCSuperTy), cmd};
534-
return Builder.CreateCall(MsgLookupSuperFn, lookupArgs, lookupArgs+2);
534+
return Builder.CreateCall(MsgLookupSuperFn, lookupArgs);
535535
}
536536
public:
537537
CGObjCGCC(CodeGenModule &Mod) : CGObjCGNU(Mod, 8, 2) {
@@ -600,8 +600,7 @@ class CGObjCGNUstep : public CGObjCGNU {
600600
CGBuilderTy &Builder = CGF.Builder;
601601
llvm::Value *lookupArgs[] = {ObjCSuper, cmd};
602602

603-
llvm::CallInst *slot = Builder.CreateCall(SlotLookupSuperFn, lookupArgs,
604-
lookupArgs+2);
603+
llvm::CallInst *slot = Builder.CreateCall(SlotLookupSuperFn, lookupArgs);
605604
slot->setOnlyReadsMemory();
606605

607606
return Builder.CreateLoad(Builder.CreateStructGEP(slot, 4));
@@ -2310,8 +2309,8 @@ void CGObjCGNU::EmitThrowStmt(CodeGenFunction &CGF,
23102309
CGF.Builder.CreateCall(ExceptionThrowFn, ExceptionAsObject);
23112310
CGF.Builder.CreateUnreachable();
23122311
} else {
2313-
CGF.Builder.CreateInvoke(ExceptionThrowFn, UnwindBB, UnwindBB, &ExceptionAsObject,
2314-
&ExceptionAsObject+1);
2312+
CGF.Builder.CreateInvoke(ExceptionThrowFn, UnwindBB, UnwindBB,
2313+
ExceptionAsObject);
23152314
}
23162315
// Clear the insertion point to indicate we are in unreachable code.
23172316
CGF.Builder.ClearInsertionPoint();

0 commit comments

Comments
 (0)