15 #ifndef LLVM_CLANG_LIB_CODEGEN_TARGETINFO_H 16 #define LLVM_CLANG_LIB_CODEGEN_TARGETINFO_H 23 #include "llvm/ADT/SmallString.h" 24 #include "llvm/ADT/StringRef.h" 39 class CodeGenFunction;
75 virtual unsigned getSizeOfUnwindException()
const;
129 StringRef Constraint,
130 llvm::Type *Ty)
const {
137 std::string &Constraints, std::vector<llvm::Type *> &ResultRegTypes,
138 std::vector<llvm::Type *> &ResultTruncRegTypes,
139 std::vector<CodeGen::LValue> &ResultRegDests, std::string &AsmString,
140 unsigned NumOutputs)
const {}
162 virtual llvm::Constant *
214 virtual void getDependentLibraryOption(llvm::StringRef Lib,
220 llvm::StringRef
Value,
224 virtual unsigned getOpenCLKernelCallingConv()
const;
232 llvm::PointerType *T,
QualType QT)
const;
252 LangAS DestAddr, llvm::Type *DestTy,
253 bool IsNonNull =
false)
const;
260 virtual llvm::Constant *performAddrSpaceCast(
CodeGenModule &CGM,
263 llvm::Type *DestTy)
const;
267 llvm::LLVMContext &C)
const;
272 typedef std::pair<llvm::Value *, StringRef>
ValueTy;
280 virtual bool areAllCustomFieldValuesConstant(
const CGBlockInfo &Info) = 0;
295 virtual llvm::Function *
297 llvm::Function *BlockInvokeFunc,
311 #endif // LLVM_CLANG_LIB_CODEGEN_TARGETINFO_H
A (possibly-)qualified type.
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
FunctionType - C99 6.7.5.3 - Function Declarators.
C Language Family Type Representation.
Decl - This represents one declaration (or definition), e.g.
const ABIInfo & getABIInfo() const
getABIInfo() - Returns ABI info helper for the target.
The l-value was an access to a declared entity or something equivalently strong, like the address of ...
virtual bool extendPointerWithSExt() const
Controls whether __builtin_extend_pointer should sign-extend pointers to uint64_t or zero-extend them...
Represents a variable declaration or definition.
virtual StringRef getARCRetainAutoreleasedReturnValueMarker() const
Retrieve the address of a function to call immediately before calling objc_retainAutoreleasedReturnVa...
LangAS
Defines the address space values used by the address space qualifier of QualType. ...
std::pair< llvm::Value *, StringRef > ValueTy
virtual llvm::Constant * getUBSanFunctionSignature(CodeGen::CodeGenModule &CGM) const
Return a constant used by UBSan as a signature to identify functions possessing type information...
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.
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
virtual TargetOpenCLBlockHelper * getTargetOpenCLBlockHelper() const
virtual void setCUDAKernelCallingConvention(const FunctionType *&FT) const
Represents a K&R-style 'int foo()' function, which has no information available about its arguments...
Interface class for filling custom fields of a block literal for OpenCL.
CGBlockInfo - Information to generate a block literal.
TargetCodeGenInfo(ABIInfo *info=nullptr)
virtual bool shouldEmitStaticExternCAliases() const
virtual bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const
Initializes the given DWARF EH register-size table, a char*.
virtual bool doesReturnSlotInterfereWithArgs() const
doesReturnSlotInterfereWithArgs - Return true if the target uses an argument slot for an 'sret' type...
SyncScope
Defines synch scope values used internally by clang.
TargetCodeGenInfo - This class organizes various target-specific codegeneration issues, like target-specific attributes, builtins and so on.
This class organizes the cross-function state that is used while generating LLVM code.
Dataflow Directional Tag Classes.
virtual ~TargetOpenCLBlockHelper()
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 g...
virtual void emitTargetMD(const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const
emitTargetMD - Provides a convenient hook to handle extra target-specific metadata for the given glob...
virtual LangAS getASTAllocaAddressSpace() const
Get the AST address space for alloca.
Provides definitions for the atomic synchronization scopes.
virtual int getDwarfEHStackPointer(CodeGen::CodeGenModule &M) const
Determines the DWARF register number for the stack pointer, for exception-handling purposes...
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.
TargetOpenCLBlockHelper()
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.
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions...
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 ac...
LValue - This represents an lvalue references.
CallArgList - Type for representing both the value and type of arguments in a call.
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 ...