clang
9.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 33 of file CGFunctionInfo.h.
enum clang::CodeGen::ABIArgInfo::Kind : uint8_t |
Definition at line 35 of file CGFunctionInfo.h.
|
inline |
Definition at line 117 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand(), getDirect(), getExpand(), getIgnore(), getInAlloca(), getIndirect(), getSignExtend(), and getZeroExtend().
|
inline |
Definition at line 266 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 220 of file TargetInfo.cpp.
References clang::CodeGen::Type.
Referenced by setCanBeFlattened().
|
inline |
Definition at line 398 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 212 of file CGFunctionInfo.h.
References ABIArgInfo(), CoerceAndExpand, and isPaddingForCoerceAndExpand().
Referenced by classifyExpandedType(), and getTypeString().
|
inline |
Definition at line 310 of file CGFunctionInfo.h.
References isCoerceAndExpand().
|
inline |
Definition at line 320 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 300 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), emitAddressAtOffset(), EmitX86_64VAArgFromMemory(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 121 of file CGFunctionInfo.h.
References ABIArgInfo(), Direct, and Offset.
Referenced by addBaseAndFieldSizes(), classifyType(), EmitX86_64VAArgFromMemory(), getDirectInReg(), getTypeString(), GetX86_64ByValArgumentPair(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 131 of file CGFunctionInfo.h.
References getDirect().
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 271 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
Referenced by emitAddressAtOffset().
|
inlinestatic |
Definition at line 196 of file CGFunctionInfo.h.
References ABIArgInfo(), and Expand.
Referenced by classifyType(), EmitX86_64VAArgFromMemory(), getExpandWithPadding(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 201 of file CGFunctionInfo.h.
References getExpand().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 159 of file CGFunctionInfo.h.
References getSignExtend(), getZeroExtend(), clang::Type::hasSignedIntegerRepresentation(), and clang::Type::isIntegralOrEnumerationType().
Referenced by addBaseAndFieldSizes(), EmitX86_64VAArgFromMemory(), getExtendInReg(), getTypeString(), GetX86_64ByValArgumentPair(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 166 of file CGFunctionInfo.h.
References getExtend().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 171 of file CGFunctionInfo.h.
References ABIArgInfo(), and Ignore.
Referenced by addBaseAndFieldSizes(), classifyExpandedType(), classifyType(), EmitX86_64VAArgFromMemory(), getTypeString(), GetX86_64ByValArgumentPair(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 191 of file CGFunctionInfo.h.
References ABIArgInfo(), and InAlloca.
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 377 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 388 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 174 of file CGFunctionInfo.h.
References ABIArgInfo(), and Indirect.
Referenced by classifyExpandedType(), classifyType(), EmitX86_64VAArgFromMemory(), getIndirectInReg(), clang::CodeGen::ABIInfo::getNaturalAlignIndirect(), hasMicrosoftABIRestrictions(), and isRecordWithSSEVectorType().
|
inline |
Definition at line 341 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 350 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inlinestatic |
Definition at line 185 of file CGFunctionInfo.h.
References getIndirect().
Referenced by clang::CodeGen::ABIInfo::getNaturalAlignIndirectInReg().
|
inline |
Definition at line 359 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 330 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inline |
Definition at line 257 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 293 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 289 of file CGFunctionInfo.h.
References PaddingType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 137 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend(), and getTypeString().
|
inline |
Definition at line 315 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 147 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend().
|
inline |
Definition at line 264 of file CGFunctionInfo.h.
References CoerceAndExpand.
Referenced by canHaveCoerceToType(), clang::CodeGen::CodeGenFunction::EmitCall(), getCoerceAndExpandType(), getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().
|
inline |
Definition at line 258 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 263 of file CGFunctionInfo.h.
References Expand.
|
inline |
Definition at line 260 of file CGFunctionInfo.h.
References Extend.
Referenced by canHaveCoerceToType(), getDirectOffset(), getInReg(), isSignExt(), setDirectOffset(), setInReg(), and setSignExt().
|
inline |
Definition at line 261 of file CGFunctionInfo.h.
References Ignore.
|
inline |
Definition at line 259 of file CGFunctionInfo.h.
References InAlloca.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), getInAllocaFieldIndex(), getInAllocaSRet(), setInAllocaFieldIndex(), and setInAllocaSRet().
|
inline |
Definition at line 262 of file CGFunctionInfo.h.
References Indirect.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), getIndirectAlign(), getIndirectByVal(), getIndirectRealign(), getInReg(), GetX86_64ByValArgumentPair(), isArgInAlloca(), isRecordWithSSEVectorType(), isSRetAfterThis(), clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet(), setIndirectAlign(), setIndirectByVal(), setIndirectRealign(), setInReg(), and setSRetAfterThis().
|
inlinestatic |
Definition at line 248 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand().
|
inline |
Definition at line 280 of file CGFunctionInfo.h.
References isExtend().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 368 of file CGFunctionInfo.h.
References isIndirect().
Referenced by emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 403 of file CGFunctionInfo.h.
References dump(), and isDirect().
|
inline |
Definition at line 305 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Definition at line 275 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), isExtend(), and Offset.
|
inline |
Definition at line 381 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
|
inline |
Definition at line 393 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by isArgInAlloca().
|
inline |
Definition at line 345 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity(), IndirectAlign, and isIndirect().
|
inline |
Definition at line 354 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 363 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 335 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by hasMicrosoftABIRestrictions(), and isRecordWithSSEVectorType().
|
inline |
Definition at line 296 of file CGFunctionInfo.h.
|
inline |
Definition at line 284 of file CGFunctionInfo.h.
References isExtend().
|
inline |
Definition at line 372 of file CGFunctionInfo.h.
References isIndirect().
Referenced by hasMicrosoftABIRestrictions().
unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex |
Definition at line 87 of file CGFunctionInfo.h.
Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().
unsigned clang::CodeGen::ABIArgInfo::DirectOffset |
Definition at line 85 of file CGFunctionInfo.h.
Referenced by getDirectOffset(), and setDirectOffset().
unsigned clang::CodeGen::ABIArgInfo::IndirectAlign |
Definition at line 86 of file CGFunctionInfo.h.
Referenced by getIndirectAlign(), and setIndirectAlign().
llvm::Type* clang::CodeGen::ABIArgInfo::PaddingType |
Definition at line 81 of file CGFunctionInfo.h.
Referenced by getPaddingType().
llvm::Type* clang::CodeGen::ABIArgInfo::UnpaddedCoerceAndExpandType |
Definition at line 82 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().