clang
10.0.0git
|
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 32 of file CGFunctionInfo.h.
enum clang::CodeGen::ABIArgInfo::Kind : uint8_t |
Definition at line 34 of file CGFunctionInfo.h.
Definition at line 112 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand(), getDirect(), getExpand(), getIgnore(), getInAlloca(), getIndirect(), getSignExtend(), and getZeroExtend().
|
inline |
Definition at line 263 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 222 of file TargetInfo.cpp.
References clang::CodeGen::Type.
Referenced by setCanBeFlattened().
|
inline |
Definition at line 395 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 209 of file CGFunctionInfo.h.
References ABIArgInfo(), CoerceAndExpand, and isPaddingForCoerceAndExpand().
Referenced by classifyExpandedType(), and getTypeString().
|
inline |
Definition at line 307 of file CGFunctionInfo.h.
References isCoerceAndExpand().
|
inline |
Definition at line 317 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 297 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), emitAddressAtOffset(), EmitX86_64VAArgFromMemory(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 118 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 128 of file CGFunctionInfo.h.
References getDirect().
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 268 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
Referenced by emitAddressAtOffset().
|
inlinestatic |
Definition at line 193 of file CGFunctionInfo.h.
References ABIArgInfo(), and Expand.
Referenced by classifyType(), EmitX86_64VAArgFromMemory(), getExpandWithPadding(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 198 of file CGFunctionInfo.h.
References getExpand().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 156 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 163 of file CGFunctionInfo.h.
References getExtend().
Referenced by isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 168 of file CGFunctionInfo.h.
References ABIArgInfo(), and Ignore.
Referenced by addBaseAndFieldSizes(), classifyExpandedType(), classifyType(), EmitX86_64VAArgFromMemory(), getTypeString(), GetX86_64ByValArgumentPair(), and isRecordWithSSEVectorType().
|
inlinestatic |
Definition at line 188 of file CGFunctionInfo.h.
References ABIArgInfo(), and InAlloca.
Referenced by isRecordWithSSEVectorType().
|
inline |
Definition at line 374 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 385 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 171 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 338 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 347 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inlinestatic |
Definition at line 182 of file CGFunctionInfo.h.
References getIndirect().
Referenced by clang::CodeGen::ABIInfo::getNaturalAlignIndirectInReg().
|
inline |
Definition at line 356 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 327 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inline |
Definition at line 254 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 290 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 286 of file CGFunctionInfo.h.
References PaddingType.
Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 134 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend(), and getTypeString().
|
inline |
Definition at line 312 of file CGFunctionInfo.h.
References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 144 of file CGFunctionInfo.h.
References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().
Referenced by getExtend().
|
inline |
Definition at line 261 of file CGFunctionInfo.h.
References CoerceAndExpand.
Referenced by canHaveCoerceToType(), clang::CodeGen::CodeGenFunction::EmitCall(), getCoerceAndExpandType(), getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().
|
inline |
Definition at line 255 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 260 of file CGFunctionInfo.h.
References Expand.
|
inline |
Definition at line 257 of file CGFunctionInfo.h.
References Extend.
Referenced by canHaveCoerceToType(), getDirectOffset(), getInReg(), isSignExt(), setDirectOffset(), setInReg(), and setSignExt().
|
inline |
Definition at line 258 of file CGFunctionInfo.h.
References Ignore.
|
inline |
Definition at line 256 of file CGFunctionInfo.h.
References InAlloca.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), getInAllocaFieldIndex(), getInAllocaSRet(), setInAllocaFieldIndex(), and setInAllocaSRet().
|
inline |
Definition at line 259 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 245 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpand().
|
inline |
Definition at line 277 of file CGFunctionInfo.h.
References isExtend().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 365 of file CGFunctionInfo.h.
References isIndirect().
Referenced by emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 400 of file CGFunctionInfo.h.
References dump(), and isDirect().
|
inline |
Definition at line 302 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Definition at line 272 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), isExtend(), and Offset.
|
inline |
Definition at line 378 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
|
inline |
Definition at line 390 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by isArgInAlloca().
|
inline |
Definition at line 342 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity(), IndirectAlign, and isIndirect().
|
inline |
Definition at line 351 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 360 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 332 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by hasMicrosoftABIRestrictions(), and isRecordWithSSEVectorType().
|
inline |
Definition at line 293 of file CGFunctionInfo.h.
|
inline |
Definition at line 281 of file CGFunctionInfo.h.
References isExtend().
|
inline |
Definition at line 369 of file CGFunctionInfo.h.
References isIndirect().
Referenced by hasMicrosoftABIRestrictions().
unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex |
Definition at line 86 of file CGFunctionInfo.h.
Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().
unsigned clang::CodeGen::ABIArgInfo::DirectOffset |
Definition at line 84 of file CGFunctionInfo.h.
Referenced by getDirectOffset(), and setDirectOffset().
unsigned clang::CodeGen::ABIArgInfo::IndirectAlign |
Definition at line 85 of file CGFunctionInfo.h.
Referenced by getIndirectAlign(), and setIndirectAlign().
llvm::Type* clang::CodeGen::ABIArgInfo::PaddingType |
Definition at line 80 of file CGFunctionInfo.h.
Referenced by getPaddingType().
llvm::Type* clang::CodeGen::ABIArgInfo::UnpaddedCoerceAndExpandType |
Definition at line 81 of file CGFunctionInfo.h.
Referenced by getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().