clang
8.0.0
|
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function. More...
#include "clang/CodeGen/CGFunctionInfo.h"
Public Types | |
enum | Kind : uint8_t { Direct, Extend, Indirect, Ignore, Expand, CoerceAndExpand, InAlloca, KindFirst = Direct, KindLast = InAlloca } |
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function.
Definition at line 34 of file CGFunctionInfo.h.
enum clang::CodeGen::ABIArgInfo::Kind : uint8_t |
Definition at line 36 of file CGFunctionInfo.h.
|
inline |
Definition at line 119 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand(), getDirect(), getExpand(), getIgnore(), getInAlloca(), getIndirect(), getSignExtend(), and getZeroExtend().
|
inline |
Definition at line 269 of file CGFunctionInfo.h.
References isCoerceAndExpand(), isDirect(), and isExtend().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), EmitX86_64VAArgFromMemory(), getCoerceToType(), and setCoerceToType().
LLVM_DUMP_METHOD void ABIArgInfo::dump | ( | ) | const |
Definition at line 221 of file TargetInfo.cpp.
References clang::CodeGen::Type.
Referenced by setSuppressSRet().
|
inline |
Definition at line 401 of file CGFunctionInfo.h.
References isDirect().
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
unpaddedCoerceToType | The coerce-to type with padding elements removed, canonicalized to a single element if it would otherwise have exactly one element. |
Definition at line 215 of file CGFunctionInfo.h.
References ABIArgInfo(), CoerceAndExpand, and isPaddingForCoerceAndExpand().
Referenced by classifyExpandedType().
|
inline |
Definition at line 313 of file CGFunctionInfo.h.
References isCoerceAndExpand().
|
inline |
Definition at line 323 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 303 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), emitAddressAtOffset(), EmitX86_64VAArgFromMemory(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 124 of file CGFunctionInfo.h.
References ABIArgInfo(), Direct, and Offset.
Referenced by addBaseAndFieldSizes(), classifyType(), EmitX86_64VAArgFromMemory(), getDirectInReg(), getTypeString(), GetX86_64ByValArgumentPair(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 134 of file CGFunctionInfo.h.
References getDirect().
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 274 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
Referenced by emitAddressAtOffset().
|
inlinestatic |
Definition at line 199 of file CGFunctionInfo.h.
References ABIArgInfo(), and Expand.
Referenced by classifyType(), EmitX86_64VAArgFromMemory(), getExpandWithPadding(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 204 of file CGFunctionInfo.h.
References getExpand().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 162 of file CGFunctionInfo.h.
References getSignExtend(), getZeroExtend(), clang::Type::hasSignedIntegerRepresentation(), and clang::Type::isIntegralOrEnumerationType().
Referenced by addBaseAndFieldSizes(), EmitX86_64VAArgFromMemory(), getExtendInReg(), getTypeString(), GetX86_64ByValArgumentPair(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 169 of file CGFunctionInfo.h.
References getExtend().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 174 of file CGFunctionInfo.h.
References ABIArgInfo(), and Ignore.
Referenced by addBaseAndFieldSizes(), classifyExpandedType(), classifyType(), EmitX86_64VAArgFromMemory(), getTypeString(), GetX86_64ByValArgumentPair(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 194 of file CGFunctionInfo.h.
References ABIArgInfo(), and InAlloca.
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 380 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
Referenced by clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Return true if this field of an inalloca struct should be returned to implement a struct return calling convention.
Definition at line 391 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 177 of file CGFunctionInfo.h.
References ABIArgInfo(), and Indirect.
Referenced by classifyExpandedType(), classifyType(), EmitX86_64VAArgFromMemory(), getIndirectInReg(), clang::CodeGen::ABIInfo::getNaturalAlignIndirect(), isDeletingDtor(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), and isRecordWithSSEVectorType().
|
inline |
Definition at line 344 of file CGFunctionInfo.h.
References clang::CharUnits::fromQuantity(), IndirectAlign, and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 353 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inlinestatic |
Definition at line 188 of file CGFunctionInfo.h.
References getIndirect().
Referenced by clang::CodeGen::ABIInfo::getNaturalAlignIndirectInReg().
|
inline |
Definition at line 362 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 333 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inline |
Definition at line 260 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenTypes::GetFunctionType(), getTypeString(), isArgInAlloca(), similar(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 296 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 292 of file CGFunctionInfo.h.
References PaddingType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 140 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend(), and getTypeString().
|
inline |
Definition at line 411 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 318 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 150 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend().
|
inline |
Definition at line 267 of file CGFunctionInfo.h.
References CoerceAndExpand.
Referenced by canHaveCoerceToType(), getCoerceAndExpandType(), getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().
|
inline |
Definition at line 261 of file CGFunctionInfo.h.
References Direct.
Referenced by canHaveCoerceToType(), emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), EmitX86_64VAArgFromMemory(), getCanBeFlattened(), getDirectOffset(), clang::CodeGen::CodeGenTypes::GetFunctionType(), getInReg(), setCanBeFlattened(), setDirectOffset(), and setInReg().
|
inline |
Definition at line 266 of file CGFunctionInfo.h.
References Expand.
|
inline |
Definition at line 263 of file CGFunctionInfo.h.
References Extend.
Referenced by canHaveCoerceToType(), getDirectOffset(), getInReg(), isSignExt(), setDirectOffset(), setInReg(), and setSignExt().
|
inline |
Definition at line 264 of file CGFunctionInfo.h.
References Ignore.
|
inline |
Definition at line 262 of file CGFunctionInfo.h.
References InAlloca.
Referenced by getInAllocaFieldIndex(), getInAllocaSRet(), setInAllocaFieldIndex(), and setInAllocaSRet().
|
inline |
Definition at line 265 of file CGFunctionInfo.h.
References Indirect.
Referenced by clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), getIndirectAlign(), getIndirectByVal(), getIndirectRealign(), getInReg(), getSuppressSRet(), GetX86_64ByValArgumentPair(), isArgInAlloca(), isRecordWithSSEVectorType(), isSRetAfterThis(), clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet(), setIndirectAlign(), setIndirectByVal(), setIndirectRealign(), setInReg(), setSRetAfterThis(), and setSuppressSRet().
|
inlinestatic |
Definition at line 251 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand().
|
inline |
Definition at line 283 of file CGFunctionInfo.h.
References isExtend().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 371 of file CGFunctionInfo.h.
References isIndirect().
Referenced by emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 406 of file CGFunctionInfo.h.
References isDirect().
|
inline |
Definition at line 308 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Definition at line 278 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), isExtend(), and Offset.
|
inline |
Definition at line 384 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
|
inline |
Definition at line 396 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by isArgInAlloca().
|
inline |
Definition at line 348 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity(), IndirectAlign, and isIndirect().
|
inline |
Definition at line 357 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 366 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 338 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 299 of file CGFunctionInfo.h.
|
inline |
Definition at line 287 of file CGFunctionInfo.h.
References isExtend().
|
inline |
Definition at line 375 of file CGFunctionInfo.h.
References isIndirect().
Referenced by isDeletingDtor().
|
inline |
Definition at line 416 of file CGFunctionInfo.h.
References dump(), and isIndirect().
Referenced by isDeletingDtor().
unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex |
Definition at line 88 of file CGFunctionInfo.h.
Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().
unsigned clang::CodeGen::ABIArgInfo::DirectOffset |
Definition at line 86 of file CGFunctionInfo.h.
Referenced by getDirectOffset(), and setDirectOffset().
unsigned clang::CodeGen::ABIArgInfo::IndirectAlign |
Definition at line 87 of file CGFunctionInfo.h.
Referenced by getIndirectAlign(), and setIndirectAlign().
llvm::Type* clang::CodeGen::ABIArgInfo::PaddingType |
Definition at line 82 of file CGFunctionInfo.h.
Referenced by getPaddingType().
llvm::Type* clang::CodeGen::ABIArgInfo::UnpaddedCoerceAndExpandType |
Definition at line 83 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().