|
clang 22.0.0git
|
DefaultABIInfo - The default implementation for ABI specific details. More...
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/ABIInfoImpl.h"
Public Member Functions | |
| DefaultABIInfo (CodeGen::CodeGenTypes &CGT) | |
| virtual | ~DefaultABIInfo () |
| ABIArgInfo | classifyReturnType (QualType RetTy) const |
| ABIArgInfo | classifyArgumentType (QualType RetTy) const |
| void | computeInfo (CGFunctionInfo &FI) const override |
| RValue | EmitVAArg (CodeGenFunction &CGF, Address VAListAddr, QualType Ty, AggValueSlot Slot) const override |
| EmitVAArg - Emit the target dependent code to load a value of. | |
| Public Member Functions inherited from clang::CodeGen::ABIInfo | |
| 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. | |
| bool | isAndroid () const |
| bool | isOHOSFamily () const |
| virtual RValue | EmitMSVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty, AggValueSlot Slot) 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, unsigned AddrSpace, 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 |
| virtual void | appendAttributeMangling (TargetAttr *Attr, raw_ostream &Out) const |
| virtual void | appendAttributeMangling (TargetVersionAttr *Attr, raw_ostream &Out) const |
| virtual void | appendAttributeMangling (TargetClonesAttr *Attr, unsigned Index, raw_ostream &Out) const |
| virtual void | appendAttributeMangling (StringRef AttrStr, raw_ostream &Out) const |
| virtual llvm::FixedVectorType * | getOptimalVectorMemoryType (llvm::FixedVectorType *T, const LangOptions &Opt) const |
| Returns the optimal vector memory type based on the given vector type. | |
| virtual llvm::Value * | createCoercedLoad (Address SrcAddr, const ABIArgInfo &AI, CodeGenFunction &CGF) const |
| virtual void | createCoercedStore (llvm::Value *Val, Address DstAddr, const ABIArgInfo &AI, bool DestIsVolatile, CodeGenFunction &CGF) const |
Additional Inherited Members | |
| Protected Attributes inherited from clang::CodeGen::ABIInfo | |
| CodeGen::CodeGenTypes & | CGT |
| llvm::CallingConv::ID | RuntimeCC |
DefaultABIInfo - The default implementation for ABI specific details.
This implementation provides information which results in self-consistent and sensible LLVM IR generation, but does not conform to any particular ABI.
Definition at line 21 of file ABIInfoImpl.h.
|
inline |
Definition at line 23 of file ABIInfoImpl.h.
References clang::CodeGen::ABIInfo::ABIInfo(), and clang::CodeGen::ABIInfo::CGT.
|
virtualdefault |
| ABIArgInfo DefaultABIInfo::classifyArgumentType | ( | QualType | RetTy | ) | const |
Definition at line 17 of file ABIInfoImpl.cpp.
References clang::CodeGen::ABIInfo::CGT, clang::Type::getAs(), clang::Type::getAsEnumDecl(), clang::CodeGen::ABIInfo::getContext(), clang::CodeGen::ABIInfo::getCXXABI(), clang::CodeGen::ABIInfo::getDataLayout(), clang::CodeGen::ABIArgInfo::getDirect(), clang::CodeGen::ABIArgInfo::getExtend(), clang::CodeGen::ABIInfo::getNaturalAlignIndirect(), clang::CodeGen::getRecordArgABI(), clang::CodeGen::isAggregateTypeForABI(), clang::CodeGen::ABIInfo::isPromotableIntegerTypeForABI(), clang::CodeGen::CGCXXABI::RAA_DirectInMemory, and clang::CodeGen::useFirstFieldIfTransparentUnion().
Referenced by computeInfo(), and EmitVAArg().
| ABIArgInfo DefaultABIInfo::classifyReturnType | ( | QualType | RetTy | ) | const |
Definition at line 47 of file ABIInfoImpl.cpp.
References clang::Type::getAs(), clang::Type::getAsEnumDecl(), clang::CodeGen::ABIInfo::getContext(), clang::CodeGen::ABIInfo::getDataLayout(), clang::CodeGen::ABIArgInfo::getDirect(), clang::CodeGen::ABIArgInfo::getExtend(), clang::CodeGen::ABIArgInfo::getIgnore(), clang::CodeGen::ABIInfo::getNaturalAlignIndirect(), clang::CodeGen::isAggregateTypeForABI(), clang::CodeGen::ABIInfo::isPromotableIntegerTypeForABI(), and clang::Type::isVoidType().
Referenced by computeInfo().
|
overridevirtual |
Implements clang::CodeGen::ABIInfo.
Definition at line 70 of file ABIInfoImpl.cpp.
References clang::CodeGen::CGFunctionInfo::arguments(), classifyArgumentType(), classifyReturnType(), clang::CodeGen::ABIInfo::getCXXABI(), clang::CodeGen::CGFunctionInfo::getReturnInfo(), and clang::CodeGen::CGFunctionInfo::getReturnType().
|
overridevirtual |
EmitVAArg - Emit the target dependent code to load a value of.
Implements clang::CodeGen::ABIInfo.
Definition at line 77 of file ABIInfoImpl.cpp.
References classifyArgumentType(), clang::CodeGen::CodeGenFunction::EmitLoadOfAnyValue(), clang::CodeGen::EmitVAArgInstr(), and clang::CodeGen::CodeGenFunction::MakeAddrLValue().