clang 20.0.0git
|
#include "clang/CodeGen/SwiftCallingConv.h"
#include "ABIInfo.h"
#include "CodeGenModule.h"
#include "TargetInfo.h"
#include "clang/Basic/TargetInfo.h"
#include <optional>
Go to the source code of this file.
Functions | |
static const SwiftABIInfo & | getSwiftABIInfo (CodeGenModule &CGM) |
static bool | isPowerOf2 (unsigned n) |
static llvm::Type * | getCommonType (llvm::Type *first, llvm::Type *second) |
Given two types with the same size, try to find a common type. | |
static CharUnits | getTypeStoreSize (CodeGenModule &CGM, llvm::Type *type) |
static CharUnits | getTypeAllocSize (CodeGenModule &CGM, llvm::Type *type) |
static CharUnits | getOffsetAtStartOfUnit (CharUnits offset, CharUnits unitSize) |
Given a power-of-two unit size, return the offset of the aligned unit of that size which contains the given offset. | |
static bool | areBytesInSameUnit (CharUnits first, CharUnits second, CharUnits chunkSize) |
static bool | isMergeableEntryType (llvm::Type *type) |
static ABIArgInfo | classifyExpandedType (SwiftAggLowering &lowering, bool forReturn, CharUnits alignmentForIndirect) |
static ABIArgInfo | classifyType (CodeGenModule &CGM, CanQualType type, bool forReturn) |
Definition at line 430 of file SwiftCallingConv.cpp.
References getOffsetAtStartOfUnit().
|
static |
Definition at line 798 of file SwiftCallingConv.cpp.
References clang::CodeGen::swiftcall::SwiftAggLowering::empty(), clang::CodeGen::ABIArgInfo::getCoerceAndExpand(), clang::CodeGen::swiftcall::SwiftAggLowering::getCoerceAndExpandTypes(), clang::CodeGen::ABIArgInfo::getIgnore(), clang::CodeGen::ABIArgInfo::getIndirect(), and clang::CodeGen::swiftcall::SwiftAggLowering::shouldPassIndirectly().
Referenced by classifyType().
|
static |
Definition at line 811 of file SwiftCallingConv.cpp.
References clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), classifyExpandedType(), clang::CodeGen::swiftcall::SwiftAggLowering::finish(), clang::ASTContext::getASTRecordLayout(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::ABIArgInfo::getDirect(), clang::CodeGen::ABIArgInfo::getExpand(), clang::CodeGen::ABIArgInfo::getIgnore(), clang::CodeGen::ABIArgInfo::getIndirect(), clang::ASTContext::getTypeAlignInChars(), clang::CodeGen::swiftcall::mustPassRecordIndirectly(), clang::ast_matchers::recordType, clang::ast_matchers::type, and clang::CharUnits::Zero().
Referenced by clang::CodeGen::swiftcall::classifyArgumentType(), and clang::CodeGen::swiftcall::classifyReturnType().
|
static |
Given two types with the same size, try to find a common type.
Definition at line 33 of file SwiftCallingConv.cpp.
References getCommonType().
Referenced by getCommonType().
Given a power-of-two unit size, return the offset of the aligned unit of that size which contains the given offset.
In other words, round down to the nearest multiple of the unit size.
Definition at line 424 of file SwiftCallingConv.cpp.
References clang::CharUnits::fromQuantity(), clang::CharUnits::getQuantity(), and isPowerOf2().
Referenced by areBytesInSameUnit(), and clang::CodeGen::swiftcall::SwiftAggLowering::finish().
|
static |
Definition at line 24 of file SwiftCallingConv.cpp.
References clang::CodeGen::TargetCodeGenInfo::getSwiftABIInfo(), and clang::CodeGen::CodeGenModule::getTargetCodeGenInfo().
Referenced by clang::CodeGen::swiftcall::isLegalVectorType(), clang::CodeGen::swiftcall::isSwiftErrorLoweredInRegister(), clang::CodeGen::swiftcall::SwiftAggLowering::shouldPassIndirectly(), and clang::CodeGen::swiftcall::shouldPassIndirectly().
|
static |
Definition at line 61 of file SwiftCallingConv.cpp.
References clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenModule::getDataLayout(), and clang::ast_matchers::type.
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::getCoerceAndExpandTypes(), and clang::CodeGen::CodeGenTypes::typeRequiresSplitIntoByteArray().
|
static |
Definition at line 57 of file SwiftCallingConv.cpp.
References clang::CharUnits::fromQuantity(), clang::CodeGen::CodeGenModule::getDataLayout(), and clang::ast_matchers::type.
Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData(), and clang::CodeGen::swiftcall::getNaturalAlignment().
|
static |
Definition at line 436 of file SwiftCallingConv.cpp.
References clang::ast_matchers::type.
Definition at line 28 of file SwiftCallingConv.cpp.
Referenced by getOffsetAtStartOfUnit(), clang::CodeGen::swiftcall::legalizeVectorType(), and clang::CodeGen::swiftcall::splitLegalVectorType().