|
clang
3.8.0
|
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function. More...
#include <CGFunctionInfo.h>
Public Types | |
| enum | Kind : uint8_t { Direct, Extend, Indirect, Ignore, Expand, InAlloca, KindFirst = Direct, KindLast = InAlloca } |
Static Public Member Functions | |
| static ABIArgInfo | getDirect (llvm::Type *T=nullptr, unsigned Offset=0, llvm::Type *Padding=nullptr, bool CanBeFlattened=true) |
| static ABIArgInfo | getDirectInReg (llvm::Type *T=nullptr) |
| static ABIArgInfo | getExtend (llvm::Type *T=nullptr) |
| static ABIArgInfo | getExtendInReg (llvm::Type *T=nullptr) |
| static ABIArgInfo | getIgnore () |
| static ABIArgInfo | getIndirect (CharUnits Alignment, bool ByVal=true, bool Realign=false, llvm::Type *Padding=nullptr) |
| static ABIArgInfo | getIndirectInReg (CharUnits Alignment, bool ByVal=true, bool Realign=false) |
| static ABIArgInfo | getInAlloca (unsigned FieldIndex) |
| static ABIArgInfo | getExpand () |
| static ABIArgInfo | getExpandWithPadding (bool PaddingInReg, llvm::Type *Padding) |
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function.
Definition at line 37 of file CGFunctionInfo.h.
| enum clang::CodeGen::ABIArgInfo::Kind : uint8_t |
Definition at line 39 of file CGFunctionInfo.h.
|
inline |
Definition at line 97 of file CGFunctionInfo.h.
Referenced by getDirect(), getExpand(), getExtend(), getIgnore(), getInAlloca(), and getIndirect().
|
inline |
Definition at line 171 of file CGFunctionInfo.h.
References isDirect(), and isExtend().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), getCoerceToType(), and setCoerceToType().
| void ABIArgInfo::dump | ( | ) | const |
Definition at line 133 of file CodeGen/TargetInfo.cpp.
References Direct, Expand, Extend, getCoerceToType(), getInAllocaFieldIndex(), getIndirectAlign(), getIndirectByVal(), getIndirectRealign(), clang::CharUnits::getQuantity(), Ignore, InAlloca, Indirect, and clang::CodeGen::Type.
|
inline |
Definition at line 272 of file CGFunctionInfo.h.
References isDirect().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 194 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), dump(), emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 101 of file CGFunctionInfo.h.
References ABIArgInfo(), and Direct.
Referenced by getDirectInReg().
|
inlinestatic |
Definition at line 111 of file CGFunctionInfo.h.
References getDirect().
|
inline |
Definition at line 174 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
Referenced by emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
|
inlinestatic |
Definition at line 152 of file CGFunctionInfo.h.
References ABIArgInfo(), and Expand.
Referenced by getExpandWithPadding().
|
inlinestatic |
Definition at line 155 of file CGFunctionInfo.h.
References getExpand().
|
inlinestatic |
Definition at line 116 of file CGFunctionInfo.h.
References ABIArgInfo(), and Extend.
Referenced by getExtendInReg().
|
inlinestatic |
Definition at line 122 of file CGFunctionInfo.h.
References getExtend().
|
inlinestatic |
Definition at line 127 of file CGFunctionInfo.h.
References ABIArgInfo(), and Ignore.
|
inlinestatic |
Definition at line 147 of file CGFunctionInfo.h.
References ABIArgInfo(), and InAlloca.
|
inline |
Definition at line 251 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
Referenced by dump(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and 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 262 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 130 of file CGFunctionInfo.h.
References ABIArgInfo(), and Indirect.
Referenced by getIndirectInReg(), and clang::ABIInfo::getNaturalAlignIndirect().
|
inline |
Definition at line 215 of file CGFunctionInfo.h.
References clang::CharUnits::fromQuantity(), IndirectAlign, and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), dump(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 224 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), dump(), clang::CodeGen::CodeGenFunction::EmitCall(), and isArgInAlloca().
|
inlinestatic |
Definition at line 141 of file CGFunctionInfo.h.
References getIndirect().
Referenced by clang::ABIInfo::getNaturalAlignIndirectInReg().
|
inline |
Definition at line 233 of file CGFunctionInfo.h.
References isIndirect().
Referenced by dump(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
|
inline |
Definition at line 204 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inline |
Definition at line 163 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenTypes::GetFunctionType(), isArgInAlloca(), similar(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 187 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 183 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 164 of file CGFunctionInfo.h.
References Direct.
Referenced by canHaveCoerceToType(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), getCanBeFlattened(), getDirectOffset(), clang::CodeGen::CodeGenTypes::GetFunctionType(), getInReg(), setCanBeFlattened(), setDirectOffset(), and setInReg().
|
inline |
Definition at line 169 of file CGFunctionInfo.h.
References Expand.
|
inline |
Definition at line 166 of file CGFunctionInfo.h.
References Extend.
Referenced by canHaveCoerceToType(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), getDirectOffset(), getInReg(), setDirectOffset(), and setInReg().
|
inline |
Definition at line 167 of file CGFunctionInfo.h.
References Ignore.
|
inline |
Definition at line 165 of file CGFunctionInfo.h.
References InAlloca.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), getInAllocaFieldIndex(), getInAllocaSRet(), setInAllocaFieldIndex(), and setInAllocaSRet().
|
inline |
Definition at line 168 of file CGFunctionInfo.h.
References Indirect.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), getIndirectAlign(), getIndirectByVal(), getIndirectRealign(), getInReg(), isSRetAfterThis(), clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet(), setIndirectAlign(), setIndirectByVal(), setIndirectRealign(), setInReg(), and setSRetAfterThis().
|
inline |
Definition at line 242 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 277 of file CGFunctionInfo.h.
References isDirect().
|
inline |
Definition at line 199 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Definition at line 178 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
|
inline |
Definition at line 255 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
|
inline |
Definition at line 267 of file CGFunctionInfo.h.
References isInAlloca().
|
inline |
Definition at line 219 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity(), IndirectAlign, and isIndirect().
|
inline |
Definition at line 228 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 237 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 209 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
|
inline |
Definition at line 190 of file CGFunctionInfo.h.
|
inline |
Definition at line 185 of file CGFunctionInfo.h.
|
inline |
Definition at line 246 of file CGFunctionInfo.h.
References isIndirect().
| unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex |
Definition at line 82 of file CGFunctionInfo.h.
Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().
| unsigned clang::CodeGen::ABIArgInfo::DirectOffset |
Definition at line 80 of file CGFunctionInfo.h.
Referenced by getDirectOffset(), and setDirectOffset().
| unsigned clang::CodeGen::ABIArgInfo::IndirectAlign |
Definition at line 81 of file CGFunctionInfo.h.
Referenced by getIndirectAlign(), and setIndirectAlign().
1.8.6