clang
15.0.0git
|
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/ABIInfo.h"
Public Member Functions | |
ABIInfo (CodeGen::CodeGenTypes &cgt) | |
virtual | ~ABIInfo () |
virtual bool | supportsSwift () const |
virtual bool | allowBFloatArgsAndRet () const |
CodeGen::CGCXXABI & | getCXXABI () const |
ASTContext & | getContext () const |
llvm::LLVMContext & | getVMContext () const |
const llvm::DataLayout & | getDataLayout () const |
const TargetInfo & | getTarget () const |
const CodeGenOptions & | getCodeGenOpts () const |
llvm::CallingConv::ID | getRuntimeCC () const |
Return the calling convention to use for system runtime functions. More... | |
virtual void | computeInfo (CodeGen::CGFunctionInfo &FI) const =0 |
virtual CodeGen::Address | EmitVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty) const =0 |
EmitVAArg - Emit the target dependent code to load a value of. More... | |
bool | isAndroid () const |
virtual CodeGen::Address | EmitMSVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty) const |
Emit the target dependent code to load a value of. More... | |
virtual bool | isHomogeneousAggregateBaseType (QualType Ty) const |
virtual bool | isHomogeneousAggregateSmallEnough (const Type *Base, uint64_t Members) const |
virtual bool | isZeroLengthBitfieldPermittedInHomogeneousAggregate () const |
bool | isHomogeneousAggregate (QualType Ty, const Type *&Base, uint64_t &Members) const |
isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. More... | |
bool | isPromotableIntegerTypeForABI (QualType Ty) const |
CodeGen::ABIArgInfo | getNaturalAlignIndirect (QualType Ty, bool ByVal=true, bool Realign=false, llvm::Type *Padding=nullptr) const |
A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI alignment of the given type. More... | |
CodeGen::ABIArgInfo | getNaturalAlignIndirectInReg (QualType Ty, bool Realign=false) const |
Public Attributes | |
CodeGen::CodeGenTypes & | CGT |
Protected Attributes | |
llvm::CallingConv::ID | RuntimeCC |
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.
|
inline |
|
virtual |
Definition at line 120 of file TargetInfo.cpp.
|
inlinevirtual |
|
pure virtual |
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
virtual |
Emit the target dependent code to load a value of.
__builtin_ms_va_list
pointed to by Definition at line 99 of file TargetInfo.cpp.
References clang::CodeGen::Address::invalid().
Referenced by clang::CodeGen::CodeGenFunction::EmitVAArg().
|
pure virtual |
EmitVAArg - Emit the target dependent code to load a value of.
Referenced by clang::CodeGen::CodeGenFunction::EmitVAArg().
const CodeGenOptions & ABIInfo::getCodeGenOpts | ( | ) | const |
Definition at line 228 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCodeGenOpts().
ASTContext & ABIInfo::getContext | ( | ) | const |
Definition at line 212 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getContext().
Referenced by getNaturalAlignIndirect(), getNaturalAlignIndirectInReg(), isHomogeneousAggregate(), isPromotableIntegerTypeForABI(), and isZeroLengthBitfieldPermittedInHomogeneousAggregate().
CGCXXABI & ABIInfo::getCXXABI | ( | ) | const |
Definition at line 208 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCXXABI().
Referenced by isHomogeneousAggregate().
const llvm::DataLayout & ABIInfo::getDataLayout | ( | ) | const |
Definition at line 220 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getDataLayout().
ABIArgInfo ABIInfo::getNaturalAlignIndirect | ( | QualType | Ty, |
bool | ByVal = true , |
||
bool | Realign = false , |
||
llvm::Type * | Padding = nullptr |
||
) | const |
A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI alignment of the given type.
Definition at line 86 of file TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirect().
Referenced by classifyReturnType().
ABIArgInfo ABIInfo::getNaturalAlignIndirectInReg | ( | QualType | Ty, |
bool | Realign = false |
||
) | const |
Definition at line 94 of file TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirectInReg().
|
inline |
const TargetInfo & ABIInfo::getTarget | ( | ) | const |
Definition at line 224 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getTarget().
Referenced by isAndroid().
llvm::LLVMContext & ABIInfo::getVMContext | ( | ) | const |
Definition at line 216 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getLLVMContext().
bool ABIInfo::isAndroid | ( | ) | const |
Definition at line 232 of file TargetInfo.cpp.
References getTarget(), and clang::TargetInfo::getTriple().
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.
Definition at line 5174 of file TargetInfo.cpp.
References clang::RecordDecl::fields(), clang::Type::getAs(), getContext(), getCXXABI(), clang::RecordType::getDecl(), clang::QualType::getTypePtr(), clang::ASTContext::getTypeSize(), clang::ASTContext::getVectorType(), clang::RecordDecl::hasFlexibleArrayMember(), isEmptyRecord(), isHomogeneousAggregateBaseType(), isHomogeneousAggregateSmallEnough(), clang::TagDecl::isUnion(), clang::Type::isVectorType(), isZeroLengthBitfieldPermittedInHomogeneousAggregate(), and max().
Definition at line 234 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
|
virtual |
Definition at line 238 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
Definition at line 109 of file TargetInfo.cpp.
References clang::Type::getAs(), getContext(), and clang::Type::isPromotableIntegerType().
|
virtual |
Definition at line 243 of file TargetInfo.cpp.
References getContext(), and clang::ASTContext::getLangOpts().
Referenced by isHomogeneousAggregate().
|
inlinevirtual |
Reimplemented in clang::CodeGen::SwiftABIInfo.
Definition at line 61 of file ABIInfo.h.
Referenced by clang::CodeGen::SwiftABIInfo::classof().
CodeGen::CodeGenTypes& clang::CodeGen::ABIInfo::CGT |
Definition at line 52 of file ABIInfo.h.
Referenced by getCodeGenOpts(), getContext(), getCXXABI(), getDataLayout(), getTarget(), and getVMContext().
|
protected |
Definition at line 54 of file ABIInfo.h.
Referenced by getRuntimeCC().