#include "ABIInfoImpl.h"
#include "TargetInfo.h"
usingnamespaceclang;
usingnamespaceclang::CodeGen;
namespace {
class CommonSPIRABIInfo : public DefaultABIInfo { … };
class SPIRVABIInfo : public CommonSPIRABIInfo { … };
}
namespace {
class CommonSPIRTargetCodeGenInfo : public TargetCodeGenInfo { … };
class SPIRVTargetCodeGenInfo : public CommonSPIRTargetCodeGenInfo { … };
inline StringRef mapClangSyncScopeToLLVM(SyncScope Scope) { … }
}
void CommonSPIRABIInfo::setCCs() { … }
ABIArgInfo SPIRVABIInfo::classifyReturnType(QualType RetTy) const { … }
ABIArgInfo SPIRVABIInfo::classifyKernelArgumentType(QualType Ty) const { … }
ABIArgInfo SPIRVABIInfo::classifyArgumentType(QualType Ty) const { … }
void SPIRVABIInfo::computeInfo(CGFunctionInfo &FI) const { … }
namespace clang {
namespace CodeGen {
void computeSPIRKernelABIInfo(CodeGenModule &CGM, CGFunctionInfo &FI) { … }
}
}
unsigned CommonSPIRTargetCodeGenInfo::getOpenCLKernelCallingConv() const { … }
void SPIRVTargetCodeGenInfo::setCUDAKernelCallingConvention(
const FunctionType *&FT) const { … }
LangAS
SPIRVTargetCodeGenInfo::getGlobalVarAddressSpace(CodeGenModule &CGM,
const VarDecl *D) const { … }
llvm::SyncScope::ID
SPIRVTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &, SyncScope Scope,
llvm::AtomicOrdering,
llvm::LLVMContext &Ctx) const { … }
static llvm::Type *getSPIRVImageType(llvm::LLVMContext &Ctx, StringRef BaseType,
StringRef OpenCLName,
unsigned AccessQualifier) { … }
llvm::Type *CommonSPIRTargetCodeGenInfo::getOpenCLType(CodeGenModule &CGM,
const Type *Ty) const { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createCommonSPIRTargetCodeGenInfo(CodeGenModule &CGM) { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createSPIRVTargetCodeGenInfo(CodeGenModule &CGM) { … }