class ABIInfo
Declaration
class ABIInfo { /* full declaration omitted */ };
Description
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.
Declared at: clang/lib/CodeGen/ABIInfo.h:46
Member Variables
- public CodeGen::CodeGenTypes& CGT
- protected llvm::CallingConv::ID RuntimeCC
Method Overview
- public ABIInfo(CodeGen::CodeGenTypes & cgt)
- public virtual CodeGen::Address EmitMSVAArg(CodeGen::CodeGenFunction & CGF, CodeGen::Address VAListAddr, clang::QualType Ty) const
- public virtual CodeGen::Address EmitVAArg(CodeGen::CodeGenFunction & CGF, CodeGen::Address VAListAddr, clang::QualType Ty) const
- public virtual bool allowBFloatArgsAndRet() const
- public virtual void computeInfo(CodeGen::CGFunctionInfo & FI) const
- public CodeGen::CGCXXABI & getCXXABI() const
- public const clang::CodeGenOptions & getCodeGenOpts() const
- public clang::ASTContext & getContext() const
- public const llvm::DataLayout & getDataLayout() const
- public CodeGen::ABIArgInfo getNaturalAlignIndirect(clang::QualType Ty, bool ByVal = true, bool Realign = false, llvm::Type * Padding = nullptr) const
- public CodeGen::ABIArgInfo getNaturalAlignIndirectInReg(clang::QualType Ty, bool Realign = false) const
- public llvm::CallingConv::ID getRuntimeCC() const
- public const clang::TargetInfo & getTarget() const
- public llvm::LLVMContext & getVMContext() const
- public bool isAndroid() const
- public bool isHomogeneousAggregate(clang::QualType Ty, const clang::Type *& Base, uint64_t & Members) const
- public virtual bool isHomogeneousAggregateBaseType(clang::QualType Ty) const
- public virtual bool isHomogeneousAggregateSmallEnough(const clang::Type * Base, uint64_t Members) const
- public bool isPromotableIntegerTypeForABI(clang::QualType Ty) const
- public virtual bool isZeroLengthBitfieldPermittedInHomogeneousAggregate() const
- public virtual bool supportsSwift() const
- public virtual ~ABIInfo()
Methods
¶ABIInfo(CodeGen::CodeGenTypes& cgt)
ABIInfo(CodeGen::CodeGenTypes& cgt)
Declared at: clang/lib/CodeGen/ABIInfo.h:52
Parameters
¶virtual CodeGen::Address EmitMSVAArg(
CodeGen::CodeGenFunction& CGF,
CodeGen::Address VAListAddr,
clang::QualType Ty) const
virtual CodeGen::Address EmitMSVAArg(
CodeGen::CodeGenFunction& CGF,
CodeGen::Address VAListAddr,
clang::QualType Ty) const
Description
Emit the target dependent code to load a value of
Declared at: clang/lib/CodeGen/ABIInfo.h:91
Parameters
- CodeGen::CodeGenFunction& CGF
- CodeGen::Address VAListAddr
- clang::QualType Ty
¶virtual CodeGen::Address EmitVAArg(
CodeGen::CodeGenFunction& CGF,
CodeGen::Address VAListAddr,
clang::QualType Ty) const
virtual CodeGen::Address EmitVAArg(
CodeGen::CodeGenFunction& CGF,
CodeGen::Address VAListAddr,
clang::QualType Ty) const
Declared at: clang/lib/CodeGen/ABIInfo.h:83
Parameters
- CodeGen::CodeGenFunction& CGF
- CodeGen::Address VAListAddr
- clang::QualType Ty
¶virtual bool allowBFloatArgsAndRet() const
virtual bool allowBFloatArgsAndRet() const
Declared at: clang/lib/CodeGen/ABIInfo.h:59
¶virtual void computeInfo(
CodeGen::CGFunctionInfo& FI) const
virtual void computeInfo(
CodeGen::CGFunctionInfo& FI) const
Declared at: clang/lib/CodeGen/ABIInfo.h:74
Parameters
¶CodeGen::CGCXXABI& getCXXABI() const
CodeGen::CGCXXABI& getCXXABI() const
Declared at: clang/lib/CodeGen/ABIInfo.h:61
¶const clang::CodeGenOptions& getCodeGenOpts()
const
const clang::CodeGenOptions& getCodeGenOpts()
const
Declared at: clang/lib/CodeGen/ABIInfo.h:66
¶clang::ASTContext& getContext() const
clang::ASTContext& getContext() const
Declared at: clang/lib/CodeGen/ABIInfo.h:62
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Declared at: clang/lib/CodeGen/ABIInfo.h:64
¶CodeGen::ABIArgInfo getNaturalAlignIndirect(
clang::QualType Ty,
bool ByVal = true,
bool Realign = false,
llvm::Type* Padding = nullptr) const
CodeGen::ABIArgInfo getNaturalAlignIndirect(
clang::QualType Ty,
bool ByVal = true,
bool Realign = false,
llvm::Type* Padding = nullptr) const
Description
A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI alignment of the given type.
Declared at: clang/lib/CodeGen/ABIInfo.h:111
Parameters
- clang::QualType Ty
- bool ByVal = true
- bool Realign = false
- llvm::Type* Padding = nullptr
¶CodeGen::ABIArgInfo getNaturalAlignIndirectInReg(
clang::QualType Ty,
bool Realign = false) const
CodeGen::ABIArgInfo getNaturalAlignIndirectInReg(
clang::QualType Ty,
bool Realign = false) const
Declared at: clang/lib/CodeGen/ABIInfo.h:116
Parameters
- clang::QualType Ty
- bool Realign = false
¶llvm::CallingConv::ID getRuntimeCC() const
llvm::CallingConv::ID getRuntimeCC() const
Description
Return the calling convention to use for system runtime functions.
Declared at: clang/lib/CodeGen/ABIInfo.h:70
¶const clang::TargetInfo& getTarget() const
const clang::TargetInfo& getTarget() const
Declared at: clang/lib/CodeGen/ABIInfo.h:65
¶llvm::LLVMContext& getVMContext() const
llvm::LLVMContext& getVMContext() const
Declared at: clang/lib/CodeGen/ABIInfo.h:63
¶bool isAndroid() const
bool isAndroid() const
Declared at: clang/lib/CodeGen/ABIInfo.h:87
¶bool isHomogeneousAggregate(
clang::QualType Ty,
const clang::Type*& Base,
uint64_t& Members) const
bool isHomogeneousAggregate(
clang::QualType Ty,
const clang::Type*& Base,
uint64_t& Members) const
Description
isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. Base is set to the base element type, and Members is set to the number of base elements.
Declared at: clang/lib/CodeGen/ABIInfo.h:101
Parameters
- clang::QualType Ty
- const clang::Type*& Base
- uint64_t& Members
¶virtual bool isHomogeneousAggregateBaseType(
clang::QualType Ty) const
virtual bool isHomogeneousAggregateBaseType(
clang::QualType Ty) const
Declared at: clang/lib/CodeGen/ABIInfo.h:95
Parameters
¶virtual bool isHomogeneousAggregateSmallEnough(
const clang::Type* Base,
uint64_t Members) const
virtual bool isHomogeneousAggregateSmallEnough(
const clang::Type* Base,
uint64_t Members) const
Declared at: clang/lib/CodeGen/ABIInfo.h:97
Parameters
- const clang::Type* Base
- uint64_t Members
¶bool isPromotableIntegerTypeForABI(
clang::QualType Ty) const
bool isPromotableIntegerTypeForABI(
clang::QualType Ty) const
Declared at: clang/lib/CodeGen/ABIInfo.h:106
Parameters
¶virtual bool
isZeroLengthBitfieldPermittedInHomogeneousAggregate()
const
virtual bool
isZeroLengthBitfieldPermittedInHomogeneousAggregate()
const
Declared at: clang/lib/CodeGen/ABIInfo.h:99
¶virtual bool supportsSwift() const
virtual bool supportsSwift() const
Declared at: clang/lib/CodeGen/ABIInfo.h:57
¶virtual ~ABIInfo()
virtual ~ABIInfo()
Declared at: clang/lib/CodeGen/ABIInfo.h:55