clang
6.0.0
|
Classes | |
class | SwiftAggLowering |
Functions | |
CharUnits | getMaximumVoluntaryIntegerSize (CodeGenModule &CGM) |
Return the maximum voluntary integer size for the current target. More... | |
CharUnits | getNaturalAlignment (CodeGenModule &CGM, llvm::Type *type) |
Return the Swift CC's notion of the natural alignment of a type. More... | |
bool | isLegalIntegerType (CodeGenModule &CGM, llvm::IntegerType *type) |
Is the given integer type "legal" for Swift's perspective on the current platform? More... | |
bool | isLegalVectorType (CodeGenModule &CGM, CharUnits vectorSize, llvm::VectorType *vectorTy) |
Is the given vector type "legal" for Swift's perspective on the current platform? More... | |
bool | isLegalVectorType (CodeGenModule &CGM, CharUnits vectorSize, llvm::Type *eltTy, unsigned numElts) |
std::pair< llvm::Type *, unsigned > | splitLegalVectorType (CodeGenModule &CGM, CharUnits vectorSize, llvm::VectorType *vectorTy) |
Minimally split a legal vector type. More... | |
void | legalizeVectorType (CodeGenModule &CGM, CharUnits vectorSize, llvm::VectorType *vectorTy, llvm::SmallVectorImpl< llvm::Type *> &types) |
Turn a vector type in a sequence of legal component vector types. More... | |
bool | shouldPassCXXRecordIndirectly (CodeGenModule &CGM, const CXXRecordDecl *record) |
Should a C++ record type be passed and returned indirectly? More... | |
ABIArgInfo | classifyReturnType (CodeGenModule &CGM, CanQualType type) |
Classify the rules for how to return a particular type. More... | |
ABIArgInfo | classifyArgumentType (CodeGenModule &CGM, CanQualType type) |
Classify the rules for how to pass a particular type. More... | |
void | computeABIInfo (CodeGenModule &CGM, CGFunctionInfo &FI) |
Compute the ABI information of a swiftcall function. More... | |
bool | isSwiftErrorLoweredInRegister (CodeGenModule &CGM) |
Is swifterror lowered to a register by the target ABI. More... | |
ABIArgInfo clang::CodeGen::swiftcall::classifyArgumentType | ( | CodeGenModule & | CGM, |
CanQualType | type | ||
) |
Classify the rules for how to pass a particular type.
Definition at line 823 of file SwiftCallingConv.cpp.
References classifyType().
Referenced by computeABIInfo(), EmitX86_64VAArgFromMemory(), and GetX86_64ByValArgumentPair().
ABIArgInfo clang::CodeGen::swiftcall::classifyReturnType | ( | CodeGenModule & | CGM, |
CanQualType | type | ||
) |
Classify the rules for how to return a particular type.
Definition at line 819 of file SwiftCallingConv.cpp.
References classifyType().
Referenced by addBaseAndFieldSizes(), clang::CodeGen::CGCXXABI::canCallMismatchedFunctionType(), computeABIInfo(), GetX86_64ByValArgumentPair(), and isDeletingDtor().
void clang::CodeGen::swiftcall::computeABIInfo | ( | CodeGenModule & | CGM, |
CGFunctionInfo & | FI | ||
) |
Compute the ABI information of a swiftcall function.
This is a private interface for Clang.
Definition at line 828 of file SwiftCallingConv.cpp.
References clang::CodeGen::CGFunctionInfo::arg_begin(), clang::CodeGen::CGFunctionInfo::arg_size(), classifyArgumentType(), classifyReturnType(), clang::CodeGen::CGFunctionInfo::getReturnInfo(), clang::CodeGen::CGFunctionInfo::getReturnType(), and clang::CodeGen::CGFunctionInfoArgInfo::info.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
CharUnits clang::CodeGen::swiftcall::getMaximumVoluntaryIntegerSize | ( | CodeGenModule & | CGM | ) |
Return the maximum voluntary integer size for the current target.
Definition at line 601 of file SwiftCallingConv.cpp.
References clang::CodeGen::CodeGenModule::getContext(), clang::TargetInfo::getPointerWidth(), clang::ASTContext::getTargetInfo(), and clang::ASTContext::toCharUnitsFromBits().
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::finish().
CharUnits clang::CodeGen::swiftcall::getNaturalAlignment | ( | CodeGenModule & | CGM, |
llvm::Type * | type | ||
) |
Return the Swift CC's notion of the natural alignment of a type.
Definition at line 607 of file SwiftCallingConv.cpp.
References clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenModule::getDataLayout(), clang::CharUnits::getQuantity(), getTypeStoreSize(), and isPowerOf2().
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData().
bool clang::CodeGen::swiftcall::isLegalIntegerType | ( | CodeGenModule & | CGM, |
llvm::IntegerType * | type | ||
) |
Is the given integer type "legal" for Swift's perspective on the current platform?
Definition at line 618 of file SwiftCallingConv.cpp.
References clang::CodeGen::CodeGenModule::getContext(), clang::ASTContext::getTargetInfo(), and clang::TargetInfo::hasInt128Type().
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData().
bool clang::CodeGen::swiftcall::isLegalVectorType | ( | CodeGenModule & | CGM, |
CharUnits | vectorSize, | ||
llvm::VectorType * | vectorTy | ||
) |
Is the given vector type "legal" for Swift's perspective on the current platform?
Definition at line 638 of file SwiftCallingConv.cpp.
Referenced by legalizeVectorType(), and splitLegalVectorType().
bool clang::CodeGen::swiftcall::isLegalVectorType | ( | CodeGenModule & | CGM, |
CharUnits | vectorSize, | ||
llvm::Type * | eltTy, | ||
unsigned | numElts | ||
) |
Definition at line 644 of file SwiftCallingConv.cpp.
References getSwiftABIInfo(), and clang::CodeGen::SwiftABIInfo::isLegalVectorTypeForSwift().
bool clang::CodeGen::swiftcall::isSwiftErrorLoweredInRegister | ( | CodeGenModule & | CGM | ) |
Is swifterror lowered to a register by the target ABI.
Definition at line 839 of file SwiftCallingConv.cpp.
References getSwiftABIInfo(), and clang::CodeGen::SwiftABIInfo::isSwiftErrorInRegister().
void clang::CodeGen::swiftcall::legalizeVectorType | ( | CodeGenModule & | CGM, |
CharUnits | vectorSize, | ||
llvm::VectorType * | vectorTy, | ||
llvm::SmallVectorImpl< llvm::Type *> & | types | ||
) |
Turn a vector type in a sequence of legal component vector types.
The caller may assume that the sum of the data sizes of the resulting types will equal the data size of the vector type.
Definition at line 666 of file SwiftCallingConv.cpp.
References isLegalVectorType(), and isPowerOf2().
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData().
bool clang::CodeGen::swiftcall::shouldPassCXXRecordIndirectly | ( | CodeGenModule & | CGM, |
const CXXRecordDecl * | record | ||
) |
Should a C++ record type be passed and returned indirectly?
Definition at line 739 of file SwiftCallingConv.cpp.
References clang::CXXRecordDecl::ctors(), and clang::CXXRecordDecl::hasNonTrivialDestructor().
Referenced by classifyType().
std::pair< llvm::Type *, unsigned > clang::CodeGen::swiftcall::splitLegalVectorType | ( | CodeGenModule & | CGM, |
CharUnits | vectorSize, | ||
llvm::VectorType * | vectorTy | ||
) |
Minimally split a legal vector type.
Definition at line 652 of file SwiftCallingConv.cpp.
References isLegalVectorType(), and isPowerOf2().
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData().