clang
3.9.0
|
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions. More...
#include <ABIInfo.h>
Public Member Functions | |
ABIInfo (CodeGen::CodeGenTypes &cgt) | |
virtual | ~ABIInfo () |
virtual bool | supportsSwift () const |
CodeGen::CGCXXABI & | getCXXABI () const |
ASTContext & | getContext () const |
llvm::LLVMContext & | getVMContext () const |
const llvm::DataLayout & | getDataLayout () const |
const TargetInfo & | getTarget () const |
llvm::CallingConv::ID | getRuntimeCC () const |
Return the calling convention to use for system runtime functions. More... | |
llvm::CallingConv::ID | getBuiltinCC () const |
Return the calling convention to use for compiler builtins. 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 | shouldSignExtUnsignedType (QualType Ty) const |
bool | isHomogeneousAggregate (QualType Ty, const Type *&Base, uint64_t &Members) const |
isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. More... | |
CodeGen::ABIArgInfo | getNaturalAlignIndirect (QualType Ty, bool ByRef=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 |
llvm::CallingConv::ID | BuiltinCC |
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.
|
inline |
|
virtual |
Definition at line 70 of file CodeGen/TargetInfo.cpp.
|
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 65 of file CodeGen/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().
|
inline |
Return the calling convention to use for compiler builtins.
Definition at line 78 of file ABIInfo.h.
References BuiltinCC.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
ASTContext & ABIInfo::getContext | ( | ) | const |
Definition at line 145 of file CodeGen/TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getContext().
Referenced by getNaturalAlignIndirect(), getNaturalAlignIndirectInReg(), and isHomogeneousAggregate().
CGCXXABI & ABIInfo::getCXXABI | ( | ) | const |
Definition at line 141 of file CodeGen/TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCXXABI().
const llvm::DataLayout & ABIInfo::getDataLayout | ( | ) | const |
Definition at line 153 of file CodeGen/TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getDataLayout().
ABIArgInfo ABIInfo::getNaturalAlignIndirect | ( | QualType | Ty, |
bool | ByRef = 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 53 of file CodeGen/TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirect().
ABIArgInfo ABIInfo::getNaturalAlignIndirectInReg | ( | QualType | Ty, |
bool | Realign = false |
||
) | const |
Definition at line 60 of file CodeGen/TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirectInReg().
|
inline |
Return the calling convention to use for system runtime functions.
Definition at line 73 of file ABIInfo.h.
References RuntimeCC.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
const TargetInfo & ABIInfo::getTarget | ( | ) | const |
Definition at line 157 of file CodeGen/TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getTarget().
Referenced by isAndroid().
llvm::LLVMContext & ABIInfo::getVMContext | ( | ) | const |
Definition at line 149 of file CodeGen/TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getLLVMContext().
bool ABIInfo::isAndroid | ( | ) | const |
Definition at line 161 of file CodeGen/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 4055 of file CodeGen/TargetInfo.cpp.
References clang::CodeGen::Base, clang::frontend::CPlusPlus, clang::RecordDecl::fields(), clang::Type::getAs(), getContext(), clang::RecordType::getDecl(), clang::QualType::getTypePtr(), clang::ASTContext::getTypeSize(), clang::ASTContext::getVectorType(), clang::RecordDecl::hasFlexibleArrayMember(), isEmptyRecord(), isHomogeneousAggregateBaseType(), isHomogeneousAggregateSmallEnough(), clang::TagDecl::isUnion(), clang::Type::isVectorType(), and max().
Definition at line 163 of file CodeGen/TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
|
virtual |
Definition at line 167 of file CodeGen/TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
Definition at line 172 of file CodeGen/TargetInfo.cpp.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inlinevirtual |
Reimplemented in clang::CodeGen::SwiftABIInfo.
Definition at line 63 of file ABIInfo.h.
Referenced by clang::CodeGen::SwiftABIInfo::classof().
|
protected |
Definition at line 54 of file ABIInfo.h.
Referenced by getBuiltinCC().
CodeGen::CodeGenTypes& clang::CodeGen::ABIInfo::CGT |
Definition at line 51 of file ABIInfo.h.
Referenced by getContext(), getCXXABI(), getDataLayout(), getTarget(), and getVMContext().
|
protected |
Definition at line 53 of file ABIInfo.h.
Referenced by getRuntimeCC().