clang 17.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 | 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. | |
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. | |
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. | |
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. | |
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. | |
CodeGen::ABIArgInfo | getNaturalAlignIndirectInReg (QualType Ty, bool Realign=false) const |
Protected Attributes | |
CodeGen::CodeGenTypes & | CGT |
llvm::CallingConv::ID | RuntimeCC |
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.
|
inline |
|
virtualdefault |
|
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 98 of file TargetInfo.cpp.
References clang::CodeGen::Address::invalid().
|
pure virtual |
EmitVAArg - Emit the target dependent code to load a value of.
const CodeGenOptions & ABIInfo::getCodeGenOpts | ( | ) | const |
Definition at line 233 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCodeGenOpts().
ASTContext & ABIInfo::getContext | ( | ) | const |
Definition at line 217 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 213 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCXXABI().
Referenced by isHomogeneousAggregate().
const llvm::DataLayout & ABIInfo::getDataLayout | ( | ) | const |
Definition at line 225 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 85 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 93 of file TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirectInReg().
|
inline |
Return the calling convention to use for system runtime functions.
Definition at line 66 of file ABIInfo.h.
References RuntimeCC.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
const TargetInfo & ABIInfo::getTarget | ( | ) | const |
Definition at line 229 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getTarget().
Referenced by isAndroid().
llvm::LLVMContext & ABIInfo::getVMContext | ( | ) | const |
Definition at line 221 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getLLVMContext().
bool ABIInfo::isAndroid | ( | ) | const |
Definition at line 237 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 5169 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(), isHomogeneousAggregate(), isHomogeneousAggregateBaseType(), isHomogeneousAggregateSmallEnough(), clang::TagDecl::isUnion(), clang::Type::isVectorType(), and isZeroLengthBitfieldPermittedInHomogeneousAggregate().
Referenced by isHomogeneousAggregate().
Definition at line 239 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
|
virtual |
Definition at line 243 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
Definition at line 108 of file TargetInfo.cpp.
References clang::Type::getAs(), and getContext().
|
virtual |
Definition at line 248 of file TargetInfo.cpp.
References getContext(), and clang::ASTContext::getLangOpts().
Referenced by isHomogeneousAggregate().
|
protected |
Definition at line 47 of file ABIInfo.h.
Referenced by getCodeGenOpts(), getContext(), getCXXABI(), getDataLayout(), getTarget(), and getVMContext().
|
protected |
Definition at line 48 of file ABIInfo.h.
Referenced by getRuntimeCC().