simplify some builder calls.

llvm-svn: 50694
This commit is contained in:
Chris Lattner 2008-05-06 00:56:42 +00:00
parent 38dc08f36f
commit dbcc2ca6b2
4 changed files with 15 additions and 28 deletions

View File

@ -140,9 +140,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(unsigned BuiltinID, const CallExpr *E) {
DstPtr = Builder.CreateBitCast(DstPtr, Type);
SrcPtr = Builder.CreateBitCast(SrcPtr, Type);
Value *Args[] = { DstPtr, SrcPtr };
return RValue::get(Builder.CreateCall(CGM.getIntrinsic(Intrinsic::vacopy),
&Args[0], &Args[2]));
return RValue::get(Builder.CreateCall2(CGM.getIntrinsic(Intrinsic::vacopy),
DstPtr, SrcPtr));
}
case Builtin::BI__builtin_classify_type: {
APSInt Result(32);
@ -559,18 +558,16 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
llvm::Type *PtrTy = llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
Value *One = llvm::ConstantInt::get(llvm::Type::Int32Ty, 1);
Value *Tmp = Builder.CreateAlloca(llvm::Type::Int32Ty, One, "tmp");
One = Builder.CreateBitCast(Tmp, PtrTy);
Builder.CreateStore(Ops[0], Tmp);
return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::x86_sse_ldmxcsr),
&One, &One+1);
Builder.CreateBitCast(Tmp, PtrTy));
}
case X86::BI__builtin_ia32_stmxcsr: {
llvm::Type *PtrTy = llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
Value *One = llvm::ConstantInt::get(llvm::Type::Int32Ty, 1);
Value *Tmp = Builder.CreateAlloca(llvm::Type::Int32Ty, One, "tmp");
One = Builder.CreateBitCast(Tmp, PtrTy);
One = Builder.CreateCall(CGM.getIntrinsic(Intrinsic::x86_sse_stmxcsr),
&One, &One+1);
Builder.CreateBitCast(Tmp, PtrTy));
return Builder.CreateLoad(Tmp, "stmxcsr");
}
case X86::BI__builtin_ia32_cmpordps:

View File

@ -330,14 +330,10 @@ void AggExprEmitter::EmitNullInitializationToLValue(LValue LV, QualType T) {
const llvm::Type *BP = llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
llvm::Value* DestPtr = Builder.CreateBitCast(LV.getAddress(), BP, "tmp");
llvm::Value *MemSetOps[4] = {
DestPtr, llvm::ConstantInt::get(llvm::Type::Int8Ty, 0),
Builder.CreateCall4(MemSet, DestPtr,
llvm::ConstantInt::get(llvm::Type::Int8Ty, 0),
llvm::ConstantInt::get(llvm::Type::Int64Ty, Size/8),
llvm::ConstantInt::get(llvm::Type::Int32Ty, 0)
};
Builder.CreateCall(MemSet, MemSetOps, MemSetOps+4);
llvm::ConstantInt::get(llvm::Type::Int32Ty, 0));
}
}

View File

@ -131,10 +131,7 @@ llvm::Value *CGObjCEtoile::getSelector(llvm::IRBuilder &Builder,
PtrToInt8Ty,
PtrToInt8Ty,
NULL);
llvm::SmallVector<llvm::Value*, 2> Args;
Args.push_back(SelName);
Args.push_back(SelTypes);
return Builder.CreateCall(SelFunction, Args.begin(), Args.end());
return Builder.CreateCall2(SelFunction, SelName, SelTypes);
}
static void SetField(llvm::IRBuilder &Builder, llvm::Value *Structure,
@ -180,8 +177,7 @@ llvm::Value *CGObjCEtoile::generateMessageSend(llvm::IRBuilder &Builder,
LookupArgs.push_back(Receiver);
LookupArgs.push_back(cmd);
LookupArgs.push_back(Sender);
llvm::Value *Slot = Builder.CreateCall(Lookup,
LookupArgs.begin(),
llvm::Value *Slot = Builder.CreateCall(Lookup, LookupArgs.begin(),
LookupArgs.end());
// Create the call structure

View File

@ -108,8 +108,7 @@ llvm::Value *CGObjCGNU::getSelector(llvm::IRBuilder &Builder,
PtrToInt8Ty,
PtrToInt8Ty,
NULL);
llvm::Value *Args[] = { SelName, SelTypes };
cmd = Builder.CreateCall(SelFunction, Args, Args+2);
cmd = Builder.CreateCall2(SelFunction, SelName, SelTypes);
}
return cmd;
}
@ -142,13 +141,12 @@ llvm::Value *CGObjCGNU::generateMessageSend(llvm::IRBuilder &Builder,
TheModule.getOrInsertFunction("objc_msg_lookup",
llvm::PointerType::getUnqual(impType),
Receiver->getType(), SelectorTy, NULL);
llvm::Value *imp = Builder.CreateCall2(lookupFunction, Receiver, cmd);
// Call the method.
llvm::SmallVector<llvm::Value*, 16> lookupArgs;
lookupArgs.push_back(Receiver);
lookupArgs.push_back(cmd);
llvm::Value *imp = Builder.CreateCall(lookupFunction,
lookupArgs.begin(), lookupArgs.end());
// Call the method.
lookupArgs.insert(lookupArgs.end(), ArgV, ArgV+ArgC);
return Builder.CreateCall(imp, lookupArgs.begin(), lookupArgs.end());
}