clang
3.7.0
|
#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 (unsigned Alignment, bool ByVal=true, bool Realign=false, llvm::Type *Padding=nullptr) |
static ABIArgInfo | getIndirectInReg (unsigned 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 36 of file CGFunctionInfo.h.
enum clang::CodeGen::ABIArgInfo::Kind : uint8_t |
Definition at line 38 of file CGFunctionInfo.h.
|
inline |
Definition at line 96 of file CGFunctionInfo.h.
Referenced by getDirect(), getExpand(), getExtend(), getIgnore(), getInAlloca(), and getIndirect().
|
inline |
Definition at line 170 of file CGFunctionInfo.h.
References isDirect(), and isExtend().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), getCoerceToType(), and setCoerceToType().
void ABIArgInfo::dump | ( | ) | const |
Definition at line 115 of file CodeGen/TargetInfo.cpp.
References Direct, Expand, Extend, getCoerceToType(), getInAllocaFieldIndex(), getIndirectAlign(), getIndirectByVal(), getIndirectRealign(), Ignore, InAlloca, and Indirect.
|
inline |
Definition at line 271 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 193 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), dump(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 100 of file CGFunctionInfo.h.
References ABIArgInfo(), and Direct.
Referenced by getDirectInReg().
|
inlinestatic |
Definition at line 110 of file CGFunctionInfo.h.
References getDirect().
|
inline |
Definition at line 173 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
|
inlinestatic |
Definition at line 151 of file CGFunctionInfo.h.
References ABIArgInfo(), and Expand.
Referenced by getExpandWithPadding().
|
inlinestatic |
Definition at line 154 of file CGFunctionInfo.h.
References getExpand().
|
inlinestatic |
Definition at line 115 of file CGFunctionInfo.h.
References ABIArgInfo(), and Extend.
Referenced by getExtendInReg().
|
inlinestatic |
Definition at line 121 of file CGFunctionInfo.h.
References getExtend().
|
inlinestatic |
Definition at line 126 of file CGFunctionInfo.h.
References ABIArgInfo(), and Ignore.
|
inlinestatic |
Definition at line 146 of file CGFunctionInfo.h.
References ABIArgInfo(), and InAlloca.
|
inline |
Definition at line 250 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 261 of file CGFunctionInfo.h.
References isInAlloca().
Referenced by clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inlinestatic |
Definition at line 129 of file CGFunctionInfo.h.
References ABIArgInfo(), and Indirect.
Referenced by getIndirectInReg().
|
inline |
Definition at line 214 of file CGFunctionInfo.h.
References IndirectAlign, and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), dump(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 223 of file CGFunctionInfo.h.
References isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), dump(), clang::CodeGen::CodeGenFunction::EmitCall(), and isArgInAlloca().
|
inlinestatic |
Definition at line 140 of file CGFunctionInfo.h.
References getIndirect().
|
inline |
Definition at line 232 of file CGFunctionInfo.h.
References isIndirect().
Referenced by dump(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
|
inline |
Definition at line 203 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().
|
inline |
Definition at line 162 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(), clang::CodeGen::CodeGenFunction::IndirectObjCSetterArg(), isArgInAlloca(), similar(), and clang::CodeGen::CodeGenFunction::StartFunction().
|
inline |
Definition at line 186 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 182 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 163 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 168 of file CGFunctionInfo.h.
References Expand.
|
inline |
Definition at line 165 of file CGFunctionInfo.h.
References Extend.
Referenced by canHaveCoerceToType(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), getDirectOffset(), getInReg(), setDirectOffset(), and setInReg().
|
inline |
Definition at line 166 of file CGFunctionInfo.h.
References Ignore.
|
inline |
Definition at line 164 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 167 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 241 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 276 of file CGFunctionInfo.h.
References isDirect().
|
inline |
Definition at line 198 of file CGFunctionInfo.h.
References canHaveCoerceToType().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Definition at line 177 of file CGFunctionInfo.h.
References DirectOffset, isDirect(), and isExtend().
|
inline |
Definition at line 254 of file CGFunctionInfo.h.
References AllocaFieldIndex, and isInAlloca().
|
inline |
Definition at line 266 of file CGFunctionInfo.h.
References isInAlloca().
|
inline |
Definition at line 218 of file CGFunctionInfo.h.
References IndirectAlign, and isIndirect().
|
inline |
Definition at line 227 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 236 of file CGFunctionInfo.h.
References isIndirect().
|
inline |
Definition at line 208 of file CGFunctionInfo.h.
References isDirect(), isExtend(), and isIndirect().
|
inline |
Definition at line 189 of file CGFunctionInfo.h.
|
inline |
Definition at line 184 of file CGFunctionInfo.h.
|
inline |
Definition at line 245 of file CGFunctionInfo.h.
References isIndirect().
unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex |
Definition at line 81 of file CGFunctionInfo.h.
Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().
unsigned clang::CodeGen::ABIArgInfo::DirectOffset |
Definition at line 79 of file CGFunctionInfo.h.
Referenced by getDirectOffset(), and setDirectOffset().
unsigned clang::CodeGen::ABIArgInfo::IndirectAlign |
Definition at line 80 of file CGFunctionInfo.h.
Referenced by getIndirectAlign(), and setIndirectAlign().