|
clang
5.0.0
|
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions. More...
#include "/usr/local/google/work/llvm-www-releases/5.0.0/docsbuild/llvm.src/tools/clang/lib/CodeGen/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 |
| const CodeGenOptions & | getCodeGenOpts () 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 95 of file TargetInfo.cpp.
|
pure virtual |
|
virtual |
Emit the target dependent code to load a value of.
__builtin_ms_va_list pointed to by Definition at line 90 of file TargetInfo.cpp.
References clang::CodeGen::Address::invalid().
|
pure virtual |
EmitVAArg - Emit the target dependent code to load a value of.
|
inline |
Return the calling convention to use for compiler builtins.
Definition at line 81 of file ABIInfo.h.
References BuiltinCC.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
| const CodeGenOptions & ABIInfo::getCodeGenOpts | ( | ) | const |
Definition at line 186 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCodeGenOpts().
| ASTContext & ABIInfo::getContext | ( | ) | const |
Definition at line 170 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getContext().
Referenced by getNaturalAlignIndirect(), getNaturalAlignIndirectInReg(), and isHomogeneousAggregate().
| CGCXXABI & ABIInfo::getCXXABI | ( | ) | const |
Definition at line 166 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getCXXABI().
| const llvm::DataLayout & ABIInfo::getDataLayout | ( | ) | const |
Definition at line 178 of file 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 78 of file TargetInfo.cpp.
References getContext(), and clang::CodeGen::ABIArgInfo::getIndirect().
| ABIArgInfo ABIInfo::getNaturalAlignIndirectInReg | ( | QualType | Ty, |
| bool | Realign = false |
||
| ) | const |
Definition at line 85 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 76 of file ABIInfo.h.
References RuntimeCC.
Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().
| const TargetInfo & ABIInfo::getTarget | ( | ) | const |
Definition at line 182 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getTarget().
Referenced by isAndroid().
| llvm::LLVMContext & ABIInfo::getVMContext | ( | ) | const |
Definition at line 174 of file TargetInfo.cpp.
References CGT, and clang::CodeGen::CodeGenTypes::getLLVMContext().
| bool ABIInfo::isAndroid | ( | ) | const |
Definition at line 190 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 4420 of file 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 192 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
|
virtual |
Definition at line 196 of file TargetInfo.cpp.
Referenced by isHomogeneousAggregate().
Definition at line 201 of file TargetInfo.cpp.
|
inlinevirtual |
Reimplemented in clang::CodeGen::SwiftABIInfo.
Definition at line 65 of file ABIInfo.h.
Referenced by clang::CodeGen::SwiftABIInfo::classof().
|
protected |
Definition at line 56 of file ABIInfo.h.
Referenced by getBuiltinCC().
| CodeGen::CodeGenTypes& clang::CodeGen::ABIInfo::CGT |
Definition at line 53 of file ABIInfo.h.
Referenced by getCodeGenOpts(), getContext(), getCXXABI(), getDataLayout(), getTarget(), and getVMContext().
|
protected |
Definition at line 55 of file ABIInfo.h.
Referenced by getRuntimeCC().
1.8.6