Changeset View
Changeset View
Standalone View
Standalone View
cfe/trunk/lib/CodeGen/CGBuiltin.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 2,203 Lines • ▼ Show 20 Lines | auto NewRetT = llvm::PointerType::get(Int8Ty, | ||||
E->getType()->getPointeeType().getAddressSpace())); | E->getType()->getPointeeType().getAddressSpace())); | ||||
auto FTy = llvm::FunctionType::get(NewRetT, {NewArgT}, false); | auto FTy = llvm::FunctionType::get(NewRetT, {NewArgT}, false); | ||||
llvm::Value *NewArg; | llvm::Value *NewArg; | ||||
if (Arg0->getType()->getPointerAddressSpace() != | if (Arg0->getType()->getPointerAddressSpace() != | ||||
NewArgT->getPointerAddressSpace()) | NewArgT->getPointerAddressSpace()) | ||||
NewArg = Builder.CreateAddrSpaceCast(Arg0, NewArgT); | NewArg = Builder.CreateAddrSpaceCast(Arg0, NewArgT); | ||||
else | else | ||||
NewArg = Builder.CreateBitOrPointerCast(Arg0, NewArgT); | NewArg = Builder.CreateBitOrPointerCast(Arg0, NewArgT); | ||||
auto NewCall = Builder.CreateCall(CGM.CreateRuntimeFunction(FTy, | auto NewName = std::string("__") + E->getDirectCallee()->getName().str(); | ||||
E->getDirectCallee()->getName()), {NewArg}); | auto NewCall = | ||||
Builder.CreateCall(CGM.CreateRuntimeFunction(FTy, NewName), {NewArg}); | |||||
return RValue::get(Builder.CreateBitOrPointerCast(NewCall, | return RValue::get(Builder.CreateBitOrPointerCast(NewCall, | ||||
ConvertType(E->getType()))); | ConvertType(E->getType()))); | ||||
} | } | ||||
// OpenCL v2.0, s6.13.17 - Enqueue kernel function. | // OpenCL v2.0, s6.13.17 - Enqueue kernel function. | ||||
// It contains four different overload formats specified in Table 6.13.17.1. | // It contains four different overload formats specified in Table 6.13.17.1. | ||||
case Builtin::BIenqueue_kernel: { | case Builtin::BIenqueue_kernel: { | ||||
StringRef Name; // Generated function call name | StringRef Name; // Generated function call name | ||||
▲ Show 20 Lines • Show All 5,900 Lines • Show Last 20 Lines |