clang 8.0.0

Public Types | Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::ABIArgInfo Class Reference

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"`

Collaboration diagram for clang::CodeGen::ABIArgInfo:
[legend]

## Public Types
enum | Kind : uint8_t { Direct, Extend, Indirect, Ignore, Expand, CoerceAndExpand, InAlloca, KindFirst = Direct, KindLast = InAlloca }

## Public Member Functions
| ABIArgInfo ()
Kind | getKind () const
bool | isDirect () const
bool | isInAlloca () const
bool | isExtend () const
bool | isIgnore () const
bool | isIndirect () const
bool | isExpand () const
bool | isCoerceAndExpand () const
bool | canHaveCoerceToType () const
unsigned | getDirectOffset () const
void | setDirectOffset (unsigned Offset)
bool | isSignExt () const
void | setSignExt (bool SExt)
llvm::Type * | getPaddingType () const
bool | getPaddingInReg () const
void | setPaddingInReg (bool PIR)
llvm::Type * | getCoerceToType () const
void | setCoerceToType (llvm::Type *T)
llvm::StructType * | getCoerceAndExpandType () const
llvm::Type * | getUnpaddedCoerceAndExpandType () const
ArrayRef< llvm::Type * > | getCoerceAndExpandTypeSequence () const
bool | getInReg () const
void | setInReg (bool IR)
CharUnits | getIndirectAlign () const
void | setIndirectAlign (CharUnits IA)
bool | getIndirectByVal () const
void | setIndirectByVal (bool IBV)
bool | getIndirectRealign () const
void | setIndirectRealign (bool IR)
bool | isSRetAfterThis () const
void | setSRetAfterThis (bool AfterThis)
unsigned | getInAllocaFieldIndex () const
void | setInAllocaFieldIndex (unsigned FieldIndex)
bool | getInAllocaSRet () const
| Return true if this field of an inalloca struct should be returned to implement a struct return calling convention. More...
void | setInAllocaSRet (bool SRet)
bool | getCanBeFlattened () const
void | setCanBeFlattened (bool Flatten)
bool | getSuppressSRet () const
void | setSuppressSRet (bool Suppress)
void | dump () const

## 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 | getSignExtend (QualType Ty, llvm::Type *T=nullptr)
static ABIArgInfo | getZeroExtend (QualType Ty, llvm::Type *T=nullptr)
static ABIArgInfo | getExtend (QualType Ty, llvm::Type *T=nullptr)
static ABIArgInfo | getExtendInReg (QualType Ty, 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)
static ABIArgInfo | getCoerceAndExpand (llvm::StructType *coerceToType, llvm::Type *unpaddedCoerceToType)
static bool | isPaddingForCoerceAndExpand (llvm::Type *eltType)

## Detailed Description

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.

## Member Enumeration Documentation

## ◆ Kind

enum clang::CodeGen::ABIArgInfo::Kind : uint8_t

Enumerator
Direct | Direct - Pass the argument directly using the normal converted LLVM type, or by coercing to another specified type stored in 'CoerceToType'). If an offset is specified (in UIntData), then the argument passed is offset by some number of bytes in the memory representation. A dummy argument is emitted before the real argument if the specified type stored in "PaddingType" is not zero.
Extend | Extend - Valid only for integer argument types. Same as 'direct' but also emit a zero/sign extension attribute.
Indirect | Indirect - Pass the argument indirectly via a hidden pointer with the specified alignment (0 indicates default alignment).
Ignore | Ignore - Ignore the argument (treat as void). Useful for void and empty structs.
Expand | Expand - Only valid for aggregate argument types. The structure should be expanded into consecutive arguments for its constituent fields. Currently expand is only allowed on structures whose fields are all scalar types or are themselves expandable types.
CoerceAndExpand | CoerceAndExpand - Only valid for aggregate argument types. The structure should be expanded into consecutive arguments corresponding to the non-array elements of the type stored in CoerceToType. Array elements in the type are assumed to be padding and skipped.
InAlloca | InAlloca - Pass the argument directly using the LLVM inalloca attribute. This is similar to indirect with byval, except it only applies to arguments stored in memory and forbids any implicit copies. When applied to a return type, it means the value is returned indirectly via an implicit sret parameter stored in the argument struct.
KindFirst |
KindLast |

Definition at line 36 of file CGFunctionInfo.h.

## Constructor & Destructor Documentation

## ◆ ABIArgInfo()

clang::CodeGen::ABIArgInfo::ABIArgInfo | ( |  | ) |
| inline

Definition at line 119 of file CGFunctionInfo.h.

Referenced by getCoerceAndExpand(), getDirect(), getExpand(), getIgnore(), getInAlloca(), getIndirect(), getSignExtend(), and getZeroExtend().

## Member Function Documentation

## ◆ canHaveCoerceToType()

bool clang::CodeGen::ABIArgInfo::canHaveCoerceToType | ( |  | ) | const
| 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().

## ◆ dump()

LLVM_DUMP_METHOD void ABIArgInfo::dump | ( |  | ) | const

Definition at line 221 of file TargetInfo.cpp.

References clang::CodeGen::Type.

Referenced by setSuppressSRet().

## ◆ getCanBeFlattened()

bool clang::CodeGen::ABIArgInfo::getCanBeFlattened | ( |  | ) | const
| inline

Definition at line 401 of file CGFunctionInfo.h.

References isDirect().

Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().

## ◆ getCoerceAndExpand()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getCoerceAndExpand | ( | llvm::StructType * | coerceToType,
|  | llvm::Type * | unpaddedCoerceToType
| ) |  |
| inline static

Parameters

  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().

## ◆ getCoerceAndExpandType()

llvm::StructType* clang::CodeGen::ABIArgInfo::getCoerceAndExpandType | ( |  | ) | const
| inline

Definition at line 313 of file CGFunctionInfo.h.

References isCoerceAndExpand().

## ◆ getCoerceAndExpandTypeSequence()

ArrayRef<llvm::Type *> clang::CodeGen::ABIArgInfo::getCoerceAndExpandTypeSequence | ( |  | ) | const
| inline

Definition at line 323 of file CGFunctionInfo.h.

References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.

Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().

## ◆ getCoerceToType()

llvm::Type* clang::CodeGen::ABIArgInfo::getCoerceToType | ( |  | ) | const
| 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().

## ◆ getDirect()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getDirect | ( | llvm::Type * | T = `nullptr`,
|  | unsigned | Offset = `0`,
|  | llvm::Type * | Padding = `nullptr`,
|  | bool | CanBeFlattened = `true`
| ) |  |
| inline static

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().

## ◆ getDirectInReg()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getDirectInReg | ( | llvm::Type * | T = `nullptr` | ) |
| inline static

Definition at line 134 of file CGFunctionInfo.h.

References getDirect().

Referenced by isRecordWithSSEVectorType().

## ◆ getDirectOffset()

unsigned clang::CodeGen::ABIArgInfo::getDirectOffset | ( |  | ) | const
| inline

Definition at line 274 of file CGFunctionInfo.h.

References DirectOffset, isDirect(), and isExtend().

Referenced by emitAddressAtOffset().

## ◆ getExpand()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getExpand | ( |  | ) |
| inline static

Definition at line 199 of file CGFunctionInfo.h.

References ABIArgInfo(), and Expand.

Referenced by classifyType(), EmitX86_64VAArgFromMemory(), getExpandWithPadding(), and isRecordWithSSEVectorType().

## ◆ getExpandWithPadding()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getExpandWithPadding | ( | bool | PaddingInReg,
|  | llvm::Type * | Padding
| ) |  |
| inline static

Definition at line 204 of file CGFunctionInfo.h.

References getExpand().

Referenced by isRecordWithSSEVectorType().

## ◆ getExtend()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getExtend | ( | QualType | Ty,
|  | llvm::Type * | T = `nullptr`
| ) |  |
| inline static

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().

## ◆ getExtendInReg()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getExtendInReg | ( | QualType | Ty,
|  | llvm::Type * | T = `nullptr`
| ) |  |
| inline static

Definition at line 169 of file CGFunctionInfo.h.

References getExtend().

Referenced by isRecordWithSSEVectorType().

## ◆ getIgnore()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getIgnore | ( |  | ) |
| inline static

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().

## ◆ getInAlloca()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getInAlloca | ( | unsigned | FieldIndex | ) |
| inline static

Definition at line 194 of file CGFunctionInfo.h.

References ABIArgInfo(), and InAlloca.

Referenced by isRecordWithSSEVectorType().

## ◆ getInAllocaFieldIndex()

unsigned clang::CodeGen::ABIArgInfo::getInAllocaFieldIndex | ( |  | ) | const
| inline

Definition at line 380 of file CGFunctionInfo.h.

References AllocaFieldIndex, and isInAlloca().

Referenced by clang::CodeGen::CodeGenFunction::StartFunction().

## ◆ getInAllocaSRet()

bool clang::CodeGen::ABIArgInfo::getInAllocaSRet | ( |  | ) | const
| 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().

## ◆ getIndirect()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getIndirect | ( | CharUnits | Alignment,
|  | bool | ByVal = `true`,
|  | bool | Realign = `false`,
|  | llvm::Type * | Padding = `nullptr`
| ) |  |
| inline static

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().

## ◆ getIndirectAlign()

CharUnits clang::CodeGen::ABIArgInfo::getIndirectAlign | ( |  | ) | const
| 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().

## ◆ getIndirectByVal()

bool clang::CodeGen::ABIArgInfo::getIndirectByVal | ( |  | ) | const
| inline

Definition at line 353 of file CGFunctionInfo.h.

References isIndirect().

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().

## ◆ getIndirectInReg()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getIndirectInReg | ( | CharUnits | Alignment,
|  | bool | ByVal = `true`,
|  | bool | Realign = `false`
| ) |  |
| inline static

Definition at line 188 of file CGFunctionInfo.h.

References getIndirect().

Referenced by clang::CodeGen::ABIInfo::getNaturalAlignIndirectInReg().

## ◆ getIndirectRealign()

bool clang::CodeGen::ABIArgInfo::getIndirectRealign | ( |  | ) | const
| inline

Definition at line 362 of file CGFunctionInfo.h.

References isIndirect().

## ◆ getInReg()

bool clang::CodeGen::ABIArgInfo::getInReg | ( |  | ) | const
| inline

Definition at line 333 of file CGFunctionInfo.h.

References isDirect(), isExtend(), and isIndirect().

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and isArgInAlloca().

## ◆ getKind()

Kind clang::CodeGen::ABIArgInfo::getKind | ( |  | ) | const
| 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().

## ◆ getPaddingInReg()

bool clang::CodeGen::ABIArgInfo::getPaddingInReg | ( |  | ) | const
| inline

Definition at line 296 of file CGFunctionInfo.h.

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().

## ◆ getPaddingType()

llvm::Type* clang::CodeGen::ABIArgInfo::getPaddingType | ( |  | ) | const
| inline

Definition at line 292 of file CGFunctionInfo.h.

References PaddingType.

Referenced by emitAddressAtOffset(), and clang::CodeGen::CodeGenTypes::GetFunctionType().

## ◆ getSignExtend()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getSignExtend | ( | QualType | Ty,
|  | llvm::Type * | T = `nullptr`
| ) |  |
| inline static

Definition at line 140 of file CGFunctionInfo.h.

References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().

Referenced by getExtend(), and getTypeString().

## ◆ getSuppressSRet()

bool clang::CodeGen::ABIArgInfo::getSuppressSRet | ( |  | ) | const
| inline

Definition at line 411 of file CGFunctionInfo.h.

References isIndirect().

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().

## ◆ getUnpaddedCoerceAndExpandType()

llvm::Type* clang::CodeGen::ABIArgInfo::getUnpaddedCoerceAndExpandType | ( |  | ) | const
| inline

Definition at line 318 of file CGFunctionInfo.h.

References isCoerceAndExpand(), and UnpaddedCoerceAndExpandType.

Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().

## ◆ getZeroExtend()

static ABIArgInfo clang::CodeGen::ABIArgInfo::getZeroExtend | ( | QualType | Ty,
|  | llvm::Type * | T = `nullptr`
| ) |  |
| inline static

Definition at line 150 of file CGFunctionInfo.h.

References ABIArgInfo(), Extend, and clang::Type::isIntegralOrEnumerationType().

Referenced by getExtend().

## ◆ isCoerceAndExpand()

bool clang::CodeGen::ABIArgInfo::isCoerceAndExpand | ( |  | ) | const
| inline

Definition at line 267 of file CGFunctionInfo.h.

References CoerceAndExpand.

Referenced by canHaveCoerceToType(), getCoerceAndExpandType(), getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().

## ◆ isDirect()

bool clang::CodeGen::ABIArgInfo::isDirect | ( |  | ) | const
| 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().

## ◆ isExpand()

bool clang::CodeGen::ABIArgInfo::isExpand | ( |  | ) | const
| inline

Definition at line 266 of file CGFunctionInfo.h.

References Expand.

## ◆ isExtend()

bool clang::CodeGen::ABIArgInfo::isExtend | ( |  | ) | const
| inline

Definition at line 263 of file CGFunctionInfo.h.

References Extend.

Referenced by canHaveCoerceToType(), getDirectOffset(), getInReg(), isSignExt(), setDirectOffset(), setInReg(), and setSignExt().

## ◆ isIgnore()

bool clang::CodeGen::ABIArgInfo::isIgnore | ( |  | ) | const
| inline

Definition at line 264 of file CGFunctionInfo.h.

References Ignore.

## ◆ isInAlloca()

bool clang::CodeGen::ABIArgInfo::isInAlloca | ( |  | ) | const
| inline

Definition at line 262 of file CGFunctionInfo.h.

References InAlloca.

Referenced by getInAllocaFieldIndex(), getInAllocaSRet(), setInAllocaFieldIndex(), and setInAllocaSRet().

## ◆ isIndirect()

bool clang::CodeGen::ABIArgInfo::isIndirect | ( |  | ) | const
| 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().

## ◆ isPaddingForCoerceAndExpand()

static bool clang::CodeGen::ABIArgInfo::isPaddingForCoerceAndExpand | ( | llvm::Type * | eltType | ) |
| inline static

Definition at line 251 of file CGFunctionInfo.h.

Referenced by getCoerceAndExpand().

## ◆ isSignExt()

bool clang::CodeGen::ABIArgInfo::isSignExt | ( |  | ) | const
| inline

Definition at line 283 of file CGFunctionInfo.h.

References isExtend().

Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().

## ◆ isSRetAfterThis()

bool clang::CodeGen::ABIArgInfo::isSRetAfterThis | ( |  | ) | const
| inline

Definition at line 371 of file CGFunctionInfo.h.

References isIndirect().

Referenced by emitAddressAtOffset(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), isArgInAlloca(), and clang::CodeGen::CodeGenFunction::StartFunction().

## ◆ setCanBeFlattened()

void clang::CodeGen::ABIArgInfo::setCanBeFlattened | ( | bool | Flatten | ) |
| inline

Definition at line 406 of file CGFunctionInfo.h.

References isDirect().

## ◆ setCoerceToType()

void clang::CodeGen::ABIArgInfo::setCoerceToType | ( | llvm::Type * | T | ) |
| inline

Definition at line 308 of file CGFunctionInfo.h.

References canHaveCoerceToType().

Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().

## ◆ setDirectOffset()

void clang::CodeGen::ABIArgInfo::setDirectOffset | ( | unsigned | Offset | ) |
| inline

Definition at line 278 of file CGFunctionInfo.h.

References DirectOffset, isDirect(), isExtend(), and Offset.

## ◆ setInAllocaFieldIndex()

void clang::CodeGen::ABIArgInfo::setInAllocaFieldIndex | ( | unsigned | FieldIndex | ) |
| inline

Definition at line 384 of file CGFunctionInfo.h.

References AllocaFieldIndex, and isInAlloca().

## ◆ setInAllocaSRet()

void clang::CodeGen::ABIArgInfo::setInAllocaSRet | ( | bool | SRet | ) |
| inline

Definition at line 396 of file CGFunctionInfo.h.

References isInAlloca().

Referenced by isArgInAlloca().

## ◆ setIndirectAlign()

void clang::CodeGen::ABIArgInfo::setIndirectAlign | ( | CharUnits | IA | ) |
| inline

Definition at line 348 of file CGFunctionInfo.h.

References clang::CharUnits::getQuantity(), IndirectAlign, and isIndirect().

## ◆ setIndirectByVal()

void clang::CodeGen::ABIArgInfo::setIndirectByVal | ( | bool | IBV | ) |
| inline

Definition at line 357 of file CGFunctionInfo.h.

References isIndirect().

## ◆ setIndirectRealign()

void clang::CodeGen::ABIArgInfo::setIndirectRealign | ( | bool | IR | ) |
| inline

Definition at line 366 of file CGFunctionInfo.h.

References isIndirect().

## ◆ setInReg()

void clang::CodeGen::ABIArgInfo::setInReg | ( | bool | IR | ) |
| inline

Definition at line 338 of file CGFunctionInfo.h.

References isDirect(), isExtend(), and isIndirect().

Referenced by isRecordWithSSEVectorType().

## ◆ setPaddingInReg()

void clang::CodeGen::ABIArgInfo::setPaddingInReg | ( | bool | PIR | ) |
| inline

Definition at line 299 of file CGFunctionInfo.h.

## ◆ setSignExt()

void clang::CodeGen::ABIArgInfo::setSignExt | ( | bool | SExt | ) |
| inline

Definition at line 287 of file CGFunctionInfo.h.

References isExtend().

## ◆ setSRetAfterThis()

void clang::CodeGen::ABIArgInfo::setSRetAfterThis | ( | bool | AfterThis | ) |
| inline

Definition at line 375 of file CGFunctionInfo.h.

References isIndirect().

Referenced by isDeletingDtor().

## ◆ setSuppressSRet()

void clang::CodeGen::ABIArgInfo::setSuppressSRet | ( | bool | Suppress | ) |
| inline

Definition at line 416 of file CGFunctionInfo.h.

References dump(), and isIndirect().

Referenced by isDeletingDtor().

## Member Data Documentation

## ◆ AllocaFieldIndex

unsigned clang::CodeGen::ABIArgInfo::AllocaFieldIndex

Definition at line 88 of file CGFunctionInfo.h.

Referenced by getInAllocaFieldIndex(), and setInAllocaFieldIndex().

## ◆ DirectOffset

unsigned clang::CodeGen::ABIArgInfo::DirectOffset

Definition at line 86 of file CGFunctionInfo.h.

Referenced by getDirectOffset(), and setDirectOffset().

## ◆ IndirectAlign

unsigned clang::CodeGen::ABIArgInfo::IndirectAlign

Definition at line 87 of file CGFunctionInfo.h.

Referenced by getIndirectAlign(), and setIndirectAlign().

## ◆ PaddingType

llvm::Type* clang::CodeGen::ABIArgInfo::PaddingType

Definition at line 82 of file CGFunctionInfo.h.

Referenced by getPaddingType().

## ◆ UnpaddedCoerceAndExpandType

llvm::Type* clang::CodeGen::ABIArgInfo::UnpaddedCoerceAndExpandType

Definition at line 83 of file CGFunctionInfo.h.

Referenced by getCoerceAndExpandTypeSequence(), and getUnpaddedCoerceAndExpandType().

The documentation for this class was generated from the following files:

- include/clang/CodeGen/CGFunctionInfo.h
- lib/CodeGen/TargetInfo.cpp