clang 20.0.0git
|
Public Member Functions | |
WebAssemblyTargetCodeGenInfo (CodeGen::CodeGenTypes &CGT, WebAssemblyABIKind K) | |
void | setTargetAttributes (const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const override |
setTargetAttributes - Provides a convenient hook to handle extra target-specific attributes for the given global. | |
virtual llvm::Type * | getWasmExternrefReferenceType () const override |
Return the WebAssembly externref reference type. | |
virtual llvm::Type * | getWasmFuncrefReferenceType () const override |
Return the WebAssembly funcref reference type. | |
Public Member Functions inherited from clang::CodeGen::TargetCodeGenInfo | |
TargetCodeGenInfo (std::unique_ptr< ABIInfo > Info) | |
virtual | ~TargetCodeGenInfo () |
const ABIInfo & | getABIInfo () const |
getABIInfo() - Returns ABI info helper for the target. | |
const SwiftABIInfo & | getSwiftABIInfo () const |
Returns Swift ABI info helper for the target. | |
virtual void | setTargetAttributes (const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const |
setTargetAttributes - Provides a convenient hook to handle extra target-specific attributes for the given global. | |
virtual void | emitTargetMetadata (CodeGen::CodeGenModule &CGM, const llvm::MapVector< GlobalDecl, StringRef > &MangledDeclNames) const |
emitTargetMetadata - Provides a convenient hook to handle extra target-specific metadata for the given globals. | |
virtual void | emitTargetGlobals (CodeGen::CodeGenModule &CGM) const |
Provides a convenient hook to handle extra target-specific globals. | |
virtual void | checkFunctionABI (CodeGenModule &CGM, const FunctionDecl *Decl) const |
Any further codegen related checks that need to be done on a function signature in a target specific manner. | |
virtual void | checkFunctionCallABI (CodeGenModule &CGM, SourceLocation CallLoc, const FunctionDecl *Caller, const FunctionDecl *Callee, const CallArgList &Args, QualType ReturnType) const |
Any further codegen related checks that need to be done on a function call in a target specific manner. | |
virtual unsigned | getSizeOfUnwindException () const |
Determines the size of struct _Unwind_Exception on this platform, in 8-bit units. | |
virtual bool | extendPointerWithSExt () const |
Controls whether __builtin_extend_pointer should sign-extend pointers to uint64_t or zero-extend them (the default). | |
virtual int | getDwarfEHStackPointer (CodeGen::CodeGenModule &M) const |
Determines the DWARF register number for the stack pointer, for exception-handling purposes. | |
virtual bool | initDwarfEHRegSizeTable (CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const |
Initializes the given DWARF EH register-size table, a char*. | |
virtual llvm::Value * | decodeReturnAddress (CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const |
Performs the code-generation required to convert a return address as stored by the system into the actual address of the next instruction that will be executed. | |
virtual llvm::Value * | encodeReturnAddress (CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const |
Performs the code-generation required to convert the address of an instruction into a return address suitable for storage by the system in a return slot. | |
virtual llvm::Value * | testFPKind (llvm::Value *V, unsigned BuiltinID, CGBuilderTy &Builder, CodeGenModule &CGM) const |
Performs a target specific test of a floating point value for things like IsNaN, Infinity, ... Nullptr is returned if no implementation exists. | |
virtual llvm::Type * | adjustInlineAsmType (CodeGen::CodeGenFunction &CGF, StringRef Constraint, llvm::Type *Ty) const |
Corrects the low-level LLVM type for a given constraint and "usual" type. | |
virtual bool | isScalarizableAsmOperand (CodeGen::CodeGenFunction &CGF, llvm::Type *Ty) const |
Target hook to decide whether an inline asm operand can be passed by value. | |
virtual void | addReturnRegisterOutputs (CodeGen::CodeGenFunction &CGF, CodeGen::LValue ReturnValue, std::string &Constraints, std::vector< llvm::Type * > &ResultRegTypes, std::vector< llvm::Type * > &ResultTruncRegTypes, std::vector< CodeGen::LValue > &ResultRegDests, std::string &AsmString, unsigned NumOutputs) const |
Adds constraints and types for result registers. | |
virtual bool | doesReturnSlotInterfereWithArgs () const |
doesReturnSlotInterfereWithArgs - Return true if the target uses an argument slot for an 'sret' type. | |
virtual StringRef | getARCRetainAutoreleasedReturnValueMarker () const |
Retrieve the address of a function to call immediately before calling objc_retainAutoreleasedReturnValue. | |
virtual bool | markARCOptimizedReturnCallsAsNoTail () const |
Determine whether a call to objc_retainAutoreleasedReturnValue or objc_unsafeClaimAutoreleasedReturnValue should be marked as 'notail'. | |
virtual llvm::Constant * | getUBSanFunctionSignature (CodeGen::CodeGenModule &CGM) const |
Return a constant used by UBSan as a signature to identify functions possessing type information, or 0 if the platform is unsupported. | |
virtual bool | isNoProtoCallVariadic (const CodeGen::CallArgList &args, const FunctionNoProtoType *fnType) const |
Determine whether a call to an unprototyped functions under the given calling convention should use the variadic convention or the non-variadic convention. | |
virtual void | getDependentLibraryOption (llvm::StringRef Lib, llvm::SmallString< 24 > &Opt) const |
Gets the linker options necessary to link a dependent library on this platform. | |
virtual void | getDetectMismatchOption (llvm::StringRef Name, llvm::StringRef Value, llvm::SmallString< 32 > &Opt) const |
Gets the linker options necessary to detect object file mismatches on this platform. | |
virtual unsigned | getOpenCLKernelCallingConv () const |
Get LLVM calling convention for OpenCL kernel. | |
virtual llvm::Constant * | getNullPointer (const CodeGen::CodeGenModule &CGM, llvm::PointerType *T, QualType QT) const |
Get target specific null pointer. | |
virtual LangAS | getGlobalVarAddressSpace (CodeGenModule &CGM, const VarDecl *D) const |
Get target favored AST address space of a global variable for languages other than OpenCL and CUDA. | |
virtual LangAS | getASTAllocaAddressSpace () const |
Get the AST address space for alloca. | |
Address | performAddrSpaceCast (CodeGen::CodeGenFunction &CGF, Address Addr, LangAS SrcAddr, LangAS DestAddr, llvm::Type *DestTy, bool IsNonNull=false) const |
virtual llvm::Value * | performAddrSpaceCast (CodeGen::CodeGenFunction &CGF, llvm::Value *V, LangAS SrcAddr, LangAS DestAddr, llvm::Type *DestTy, bool IsNonNull=false) const |
Perform address space cast of an expression of pointer type. | |
virtual llvm::Constant * | performAddrSpaceCast (CodeGenModule &CGM, llvm::Constant *V, LangAS SrcAddr, LangAS DestAddr, llvm::Type *DestTy) const |
Perform address space cast of a constant expression of pointer type. | |
virtual LangAS | getAddrSpaceOfCxaAtexitPtrParam () const |
Get address space of pointer parameter for __cxa_atexit. | |
virtual llvm::SyncScope::ID | getLLVMSyncScopeID (const LangOptions &LangOpts, SyncScope Scope, llvm::AtomicOrdering Ordering, llvm::LLVMContext &Ctx) const |
Get the syncscope used in LLVM IR. | |
virtual void | setTargetAtomicMetadata (CodeGenFunction &CGF, llvm::AtomicRMWInst &RMW) const |
Allow the target to apply other metadata to an atomic instruction. | |
virtual TargetOpenCLBlockHelper * | getTargetOpenCLBlockHelper () const |
virtual llvm::Value * | createEnqueuedBlockKernel (CodeGenFunction &CGF, llvm::Function *BlockInvokeFunc, llvm::Type *BlockTy) const |
Create an OpenCL kernel for an enqueued block. | |
virtual bool | shouldEmitStaticExternCAliases () const |
virtual bool | shouldEmitDWARFBitFieldSeparators () const |
virtual void | setCUDAKernelCallingConvention (const FunctionType *&FT) const |
virtual llvm::Type * | getCUDADeviceBuiltinSurfaceDeviceType () const |
Return the device-side type for the CUDA device builtin surface type. | |
virtual llvm::Type * | getCUDADeviceBuiltinTextureDeviceType () const |
Return the device-side type for the CUDA device builtin texture type. | |
virtual llvm::Type * | getWasmExternrefReferenceType () const |
Return the WebAssembly externref reference type. | |
virtual llvm::Type * | getWasmFuncrefReferenceType () const |
Return the WebAssembly funcref reference type. | |
virtual bool | emitCUDADeviceBuiltinSurfaceDeviceCopy (CodeGenFunction &CGF, LValue Dst, LValue Src) const |
Emit the device-side copy of the builtin surface type. | |
virtual bool | emitCUDADeviceBuiltinTextureDeviceCopy (CodeGenFunction &CGF, LValue Dst, LValue Src) const |
Emit the device-side copy of the builtin texture type. | |
virtual llvm::Type * | getOpenCLType (CodeGenModule &CGM, const Type *T) const |
Return an LLVM type that corresponds to an OpenCL type. | |
virtual llvm::Type * | getHLSLType (CodeGenModule &CGM, const Type *T) const |
Return an LLVM type that corresponds to a HLSL type. | |
Additional Inherited Members | |
Static Public Member Functions inherited from clang::CodeGen::TargetCodeGenInfo | |
static void | setBranchProtectionFnAttributes (const TargetInfo::BranchProtectionInfo &BPI, llvm::Function &F) |
static void | initBranchProtectionFnAttributes (const TargetInfo::BranchProtectionInfo &BPI, llvm::AttrBuilder &FuncAttrs) |
Protected Member Functions inherited from clang::CodeGen::TargetCodeGenInfo | |
template<typename T > | |
const T & | getABIInfo () const |
void | addStackProbeTargetAttributes (const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &CGM) const |
Static Protected Member Functions inherited from clang::CodeGen::TargetCodeGenInfo | |
static std::string | qualifyWindowsLibrary (StringRef Lib) |
Protected Attributes inherited from clang::CodeGen::TargetCodeGenInfo | |
std::unique_ptr< SwiftABIInfo > | SwiftInfo |
Definition at line 48 of file WebAssembly.cpp.
|
inlineexplicit |
Definition at line 50 of file WebAssembly.cpp.
References clang::CodeGen::TargetCodeGenInfo::SwiftInfo.
|
inlineoverridevirtual |
Return the WebAssembly externref reference type.
Reimplemented from clang::CodeGen::TargetCodeGenInfo.
Definition at line 89 of file WebAssembly.cpp.
References clang::CodeGen::TargetCodeGenInfo::getABIInfo().
|
inlineoverridevirtual |
Return the WebAssembly funcref reference type.
Reimplemented from clang::CodeGen::TargetCodeGenInfo.
Definition at line 93 of file WebAssembly.cpp.
References clang::CodeGen::TargetCodeGenInfo::getABIInfo().
|
inlineoverridevirtual |
setTargetAttributes - Provides a convenient hook to handle extra target-specific attributes for the given global.
Reimplemented from clang::CodeGen::TargetCodeGenInfo.
Definition at line 57 of file WebAssembly.cpp.
References D, and clang::CodeGen::TargetCodeGenInfo::setTargetAttributes().