parent
38dc08f36f
commit
dbcc2ca6b2
|
@ -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:
|
||||
|
|
|
@ -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),
|
||||
llvm::ConstantInt::get(llvm::Type::Int64Ty, Size/8),
|
||||
llvm::ConstantInt::get(llvm::Type::Int32Ty, 0)
|
||||
};
|
||||
|
||||
Builder.CreateCall(MemSet, MemSetOps, MemSetOps+4);
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,9 +177,8 @@ 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(),
|
||||
LookupArgs.end());
|
||||
llvm::Value *Slot = Builder.CreateCall(Lookup, LookupArgs.begin(),
|
||||
LookupArgs.end());
|
||||
|
||||
// Create the call structure
|
||||
llvm::Value *Call = Builder.CreateAlloca(CallTy);
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue