|
| PNaClTargetCodeGenInfo (CodeGen::CodeGenTypes &CGT) |
|
| 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 bool | wouldInliningViolateFunctionCallABI (const FunctionDecl *Caller, const FunctionDecl *Callee) const |
| Returns true if inlining the function call would produce incorrect code for the current target and should be ignored (even with the always_inline or flatten attributes).
|
|
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::Instruction &AtomicInst, const AtomicExpr *Expr=nullptr) 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.
|
|