#include "CGOpenCLRuntime.h"
#include "CodeGenFunction.h"
#include "TargetInfo.h"
#include "clang/CodeGen/ConstantInitBuilder.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GlobalValue.h"
#include <assert.h>
usingnamespaceclang;
usingnamespaceCodeGen;
CGOpenCLRuntime::~CGOpenCLRuntime() { … }
void CGOpenCLRuntime::EmitWorkGroupLocalVarDecl(CodeGenFunction &CGF,
const VarDecl &D) { … }
llvm::Type *CGOpenCLRuntime::convertOpenCLSpecificType(const Type *T) { … }
llvm::PointerType *CGOpenCLRuntime::getPointerType(const Type *T) { … }
llvm::Type *CGOpenCLRuntime::getPipeType(const PipeType *T) { … }
llvm::Type *CGOpenCLRuntime::getPipeType(const PipeType *T, StringRef Name,
llvm::Type *&PipeTy) { … }
llvm::Type *CGOpenCLRuntime::getSamplerType(const Type *T) { … }
llvm::Value *CGOpenCLRuntime::getPipeElemSize(const Expr *PipeArg) { … }
llvm::Value *CGOpenCLRuntime::getPipeElemAlign(const Expr *PipeArg) { … }
llvm::PointerType *CGOpenCLRuntime::getGenericVoidPointerType() { … }
static const BlockExpr *getBlockExpr(const Expr *E) { … }
void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E,
llvm::Function *InvokeF,
llvm::Value *Block, llvm::Type *BlockTy) { … }
llvm::Function *CGOpenCLRuntime::getInvokeFunction(const Expr *E) { … }
CGOpenCLRuntime::EnqueuedBlockInfo
CGOpenCLRuntime::emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E) { … }