22 using namespace clang;
23 using namespace CodeGen;
40 const Decl *TargetDecl =
nullptr;
42 if (
const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(CE->getSubExpr())) {
43 TargetDecl = DRE->getDecl();
void end(CodeGenFunction &CGF)
void EmitBranchOnBoolExpr(const Expr *Cond, llvm::BasicBlock *TrueBlock, llvm::BasicBlock *FalseBlock, uint64_t TrueCount)
const Expr * getCallee() const
Defines the clang::Expr interface and subclasses for C++ expressions.
An object to manage conditionally-evaluated expressions.
virtual RValue EmitCUDAKernelCallExpr(CodeGenFunction &CGF, const CUDAKernelCallExpr *E, ReturnValueSlot ReturnValue)
RValue EmitCall(const CGFunctionInfo &FnInfo, llvm::Value *Callee, ReturnValueSlot ReturnValue, const CallArgList &Args, const Decl *TargetDecl=nullptr, llvm::Instruction **callOrInvoke=nullptr)
llvm::BasicBlock * createBasicBlock(const Twine &name="", llvm::Function *parent=nullptr, llvm::BasicBlock *before=nullptr)
createBasicBlock - Create an LLVM basic block.
void begin(CodeGenFunction &CGF)
llvm::Value * EmitScalarExpr(const Expr *E, bool IgnoreResultAssign=false)
Represents a call to a CUDA kernel function.
void EmitBlock(llvm::BasicBlock *BB, bool IsFinished=false)
void EmitBranch(llvm::BasicBlock *Block)
A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].
static RValue get(llvm::Value *V)
const CallExpr * getConfig() const