LLVM 24.0.0git
llvm::ISD::ArgFlagsTy Struct Reference

#include "llvm/CodeGen/TargetCallingConv.h"

Public Types

enum  Flags : uint32_t {
  NoFlags = 0 , ZExt = 1U << 0 , SExt = 1U << 1 , NoExt = 1U << 2 ,
  InReg = 1U << 3 , SRet = 1U << 4 , ByVal = 1U << 5 , ByRef = 1U << 6 ,
  Nest = 1U << 7 , Returned = 1U << 8 , Split = 1U << 9 , InAlloca = 1U << 10 ,
  Preallocated = 1U << 11 , SplitEnd = 1U << 12 , SwiftSelf = 1U << 13 , SwiftAsync = 1U << 14 ,
  SwiftError = 1U << 15 , CFGuardTarget = 1U << 16 , Hva = 1U << 17 , HvaStart = 1U << 18 ,
  SecArgPass = 1U << 19 , InConsecutiveRegsLast = 1U << 20 , InConsecutiveRegs = 1U << 21 , CopyElisionCandidate = 1U << 22 ,
  Pointer = 1U << 23 , VarArg = 1U << 24
}
 Flag bits describing an argument. More...

Public Member Functions

 ArgFlagsTy ()
Flags getFlags () const
 Return the argument's boolean flags.
bool isZExt () const
void setZExt ()
bool isSExt () const
void setSExt ()
bool isNoExt () const
void setNoExt ()
bool isInReg () const
void setInReg ()
bool isSRet () const
void setSRet ()
bool isByVal () const
void setByVal ()
bool isByRef () const
void setByRef ()
bool isInAlloca () const
void setInAlloca ()
bool isPreallocated () const
void setPreallocated ()
bool isSwiftSelf () const
void setSwiftSelf ()
bool isSwiftAsync () const
void setSwiftAsync ()
bool isSwiftError () const
void setSwiftError ()
bool isCFGuardTarget () const
void setCFGuardTarget ()
bool isHva () const
void setHva ()
bool isHvaStart () const
void setHvaStart ()
bool isSecArgPass () const
void setSecArgPass ()
bool isNest () const
void setNest ()
bool isReturned () const
void setReturned (bool V=true)
bool isInConsecutiveRegs () const
void setInConsecutiveRegs (bool Flag=true)
bool isInConsecutiveRegsLast () const
void setInConsecutiveRegsLast (bool Flag=true)
bool isSplit () const
void setSplit ()
bool isSplitEnd () const
void setSplitEnd ()
bool isCopyElisionCandidate () const
void setCopyElisionCandidate ()
bool isPointer () const
void setPointer ()
bool isVarArg () const
void setVarArg ()
Align getNonZeroMemAlign () const
void setMemAlign (Align A)
Align getNonZeroByValAlign () const
Align getNonZeroOrigAlign () const
void setOrigAlign (Align A)
unsigned getByValSize () const
void setByValSize (unsigned S)
unsigned getByRefSize () const
void setByRefSize (unsigned S)
unsigned getPointerAddrSpace () const
void setPointerAddrSpace (unsigned AS)

Detailed Description

Definition at line 28 of file TargetCallingConv.h.

Member Enumeration Documentation

◆ Flags

Flag bits describing an argument.

Enumerator
NoFlags 
ZExt 

Zero extended.

SExt 

Sign extended.

NoExt 

No extension.

InReg 

Passed in register.

SRet 

Hidden struct-ret ptr.

ByVal 

Struct passed by value.

ByRef 

Passed in memory.

Nest 

Nested fn static chain.

Returned 

Always returned.

Split 
InAlloca 

Passed with inalloca.

Preallocated 

ByVal without the copy.

SplitEnd 

Last part of a split.

SwiftSelf 

Swift self parameter.

SwiftAsync 

Swift async context parameter.

SwiftError 

Swift error parameter.

CFGuardTarget 

Control Flow Guard target.

Hva 

HVA field.

HvaStart 

HVA structure start.

SecArgPass 

Second argument.

InConsecutiveRegsLast 
InConsecutiveRegs 
CopyElisionCandidate 

Argument copy elision candidate.

Pointer 
VarArg 

Whether this is part of a variable argument list (non-fixed).

Definition at line 31 of file TargetCallingConv.h.

Constructor & Destructor Documentation

◆ ArgFlagsTy()

llvm::ISD::ArgFlagsTy::ArgFlagsTy ( )
inline

Definition at line 79 of file TargetCallingConv.h.

Member Function Documentation

◆ getByRefSize()

unsigned llvm::ISD::ArgFlagsTy::getByRefSize ( ) const
inline

Definition at line 203 of file TargetCallingConv.h.

References assert(), isByRef(), and isByVal().

◆ getByValSize()

unsigned llvm::ISD::ArgFlagsTy::getByValSize ( ) const
inline

Definition at line 194 of file TargetCallingConv.h.

References assert(), isByRef(), and isByVal().

Referenced by CC_AIX(), CC_Xtensa_Custom(), and llvm::CCState::HandleByVal().

◆ getFlags()

Flags llvm::ISD::ArgFlagsTy::getFlags ( ) const
inline

Return the argument's boolean flags.

Definition at line 84 of file TargetCallingConv.h.

◆ getNonZeroByValAlign()

Align llvm::ISD::ArgFlagsTy::getNonZeroByValAlign ( ) const
inline

◆ getNonZeroMemAlign()

Align llvm::ISD::ArgFlagsTy::getNonZeroMemAlign ( ) const
inline

◆ getNonZeroOrigAlign()

◆ getPointerAddrSpace()

unsigned llvm::ISD::ArgFlagsTy::getPointerAddrSpace ( ) const
inline

Definition at line 212 of file TargetCallingConv.h.

Referenced by llvm::SITargetLowering::LowerFormalArguments().

◆ isByRef()

bool llvm::ISD::ArgFlagsTy::isByRef ( ) const
inline

◆ isByVal()

◆ isCFGuardTarget()

bool llvm::ISD::ArgFlagsTy::isCFGuardTarget ( ) const
inline

Definition at line 122 of file TargetCallingConv.h.

References CFGuardTarget.

◆ isCopyElisionCandidate()

bool llvm::ISD::ArgFlagsTy::isCopyElisionCandidate ( ) const
inline

Definition at line 158 of file TargetCallingConv.h.

References CopyElisionCandidate.

◆ isHva()

bool llvm::ISD::ArgFlagsTy::isHva ( ) const
inline

Definition at line 125 of file TargetCallingConv.h.

References Hva.

Referenced by CC_X86_32_VectorCall(), and CC_X86_64_VectorCall().

◆ isHvaStart()

bool llvm::ISD::ArgFlagsTy::isHvaStart ( ) const
inline

Definition at line 128 of file TargetCallingConv.h.

References HvaStart.

Referenced by CC_X86_64_VectorCall().

◆ isInAlloca()

bool llvm::ISD::ArgFlagsTy::isInAlloca ( ) const
inline

Definition at line 107 of file TargetCallingConv.h.

References InAlloca.

◆ isInConsecutiveRegs()

bool llvm::ISD::ArgFlagsTy::isInConsecutiveRegs ( ) const
inline

Definition at line 140 of file TargetCallingConv.h.

References InConsecutiveRegs.

◆ isInConsecutiveRegsLast()

bool llvm::ISD::ArgFlagsTy::isInConsecutiveRegsLast ( ) const
inline

◆ isInReg()

bool llvm::ISD::ArgFlagsTy::isInReg ( ) const
inline

◆ isNest()

bool llvm::ISD::ArgFlagsTy::isNest ( ) const
inline

Definition at line 134 of file TargetCallingConv.h.

References Nest.

Referenced by CC_AIX(), CC_RISCV_GHC(), and CC_RISCV_Impl().

◆ isNoExt()

bool llvm::ISD::ArgFlagsTy::isNoExt ( ) const
inline

Definition at line 92 of file TargetCallingConv.h.

References NoExt.

◆ isPointer()

bool llvm::ISD::ArgFlagsTy::isPointer ( ) const
inline

Definition at line 163 of file TargetCallingConv.h.

References Pointer.

◆ isPreallocated()

bool llvm::ISD::ArgFlagsTy::isPreallocated ( ) const
inline

Definition at line 110 of file TargetCallingConv.h.

References Preallocated.

◆ isReturned()

bool llvm::ISD::ArgFlagsTy::isReturned ( ) const
inline

Definition at line 137 of file TargetCallingConv.h.

References Returned.

◆ isSecArgPass()

bool llvm::ISD::ArgFlagsTy::isSecArgPass ( ) const
inline

Definition at line 131 of file TargetCallingConv.h.

References SecArgPass.

Referenced by CC_X86_32_VectorCall(), and CC_X86_64_VectorCall().

◆ isSExt()

bool llvm::ISD::ArgFlagsTy::isSExt ( ) const
inline

◆ isSplit()

bool llvm::ISD::ArgFlagsTy::isSplit ( ) const
inline

◆ isSplitEnd()

bool llvm::ISD::ArgFlagsTy::isSplitEnd ( ) const
inline

◆ isSRet()

bool llvm::ISD::ArgFlagsTy::isSRet ( ) const
inline

Definition at line 98 of file TargetCallingConv.h.

References SRet.

Referenced by CC_Sparc_Assign_SRet(), and llvm::SITargetLowering::LowerFormalArguments().

◆ isSwiftAsync()

bool llvm::ISD::ArgFlagsTy::isSwiftAsync ( ) const
inline

Definition at line 116 of file TargetCallingConv.h.

References SwiftAsync.

◆ isSwiftError()

bool llvm::ISD::ArgFlagsTy::isSwiftError ( ) const
inline

Definition at line 119 of file TargetCallingConv.h.

References SwiftError.

◆ isSwiftSelf()

bool llvm::ISD::ArgFlagsTy::isSwiftSelf ( ) const
inline

Definition at line 113 of file TargetCallingConv.h.

References SwiftSelf.

◆ isVarArg()

bool llvm::ISD::ArgFlagsTy::isVarArg ( ) const
inline

Definition at line 166 of file TargetCallingConv.h.

References VarArg.

Referenced by analyzeCallOperands(), CC_AIX(), CC_Lanai32_VarArg(), CC_LoongArch(), and CC_RISCV_Impl().

◆ isZExt()

bool llvm::ISD::ArgFlagsTy::isZExt ( ) const
inline

Definition at line 86 of file TargetCallingConv.h.

References ZExt.

Referenced by AnalyzeArguments(), CC_Lanai32_VarArg(), CC_MipsO32(), and CC_Xtensa_Custom().

◆ setByRef()

void llvm::ISD::ArgFlagsTy::setByRef ( )
inline

Definition at line 105 of file TargetCallingConv.h.

References ByRef.

◆ setByRefSize()

void llvm::ISD::ArgFlagsTy::setByRefSize ( unsigned S)
inline

Definition at line 207 of file TargetCallingConv.h.

References assert(), isByRef(), and isByVal().

◆ setByVal()

void llvm::ISD::ArgFlagsTy::setByVal ( )
inline

Definition at line 102 of file TargetCallingConv.h.

References ByVal.

◆ setByValSize()

void llvm::ISD::ArgFlagsTy::setByValSize ( unsigned S)
inline

Definition at line 198 of file TargetCallingConv.h.

References assert(), isByRef(), and isByVal().

◆ setCFGuardTarget()

void llvm::ISD::ArgFlagsTy::setCFGuardTarget ( )
inline

Definition at line 123 of file TargetCallingConv.h.

References CFGuardTarget.

◆ setCopyElisionCandidate()

void llvm::ISD::ArgFlagsTy::setCopyElisionCandidate ( )
inline

Definition at line 161 of file TargetCallingConv.h.

References CopyElisionCandidate.

◆ setHva()

void llvm::ISD::ArgFlagsTy::setHva ( )
inline

Definition at line 126 of file TargetCallingConv.h.

References Hva.

◆ setHvaStart()

void llvm::ISD::ArgFlagsTy::setHvaStart ( )
inline

Definition at line 129 of file TargetCallingConv.h.

References HvaStart.

◆ setInAlloca()

void llvm::ISD::ArgFlagsTy::setInAlloca ( )
inline

Definition at line 108 of file TargetCallingConv.h.

References InAlloca.

◆ setInConsecutiveRegs()

void llvm::ISD::ArgFlagsTy::setInConsecutiveRegs ( bool Flag = true)
inline

Definition at line 141 of file TargetCallingConv.h.

References InConsecutiveRegs.

Referenced by finishStackBlock().

◆ setInConsecutiveRegsLast()

void llvm::ISD::ArgFlagsTy::setInConsecutiveRegsLast ( bool Flag = true)
inline

Definition at line 148 of file TargetCallingConv.h.

References InConsecutiveRegsLast.

Referenced by finishStackBlock().

◆ setInReg()

void llvm::ISD::ArgFlagsTy::setInReg ( )
inline

◆ setMemAlign()

void llvm::ISD::ArgFlagsTy::setMemAlign ( Align A)
inline

Definition at line 173 of file TargetCallingConv.h.

References A(), assert(), llvm::encode(), and getNonZeroMemAlign().

◆ setNest()

void llvm::ISD::ArgFlagsTy::setNest ( )
inline

Definition at line 135 of file TargetCallingConv.h.

References Nest.

◆ setNoExt()

void llvm::ISD::ArgFlagsTy::setNoExt ( )
inline

Definition at line 93 of file TargetCallingConv.h.

References NoExt.

◆ setOrigAlign()

void llvm::ISD::ArgFlagsTy::setOrigAlign ( Align A)
inline

Definition at line 189 of file TargetCallingConv.h.

References A(), assert(), llvm::encode(), and getNonZeroOrigAlign().

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setPointer()

void llvm::ISD::ArgFlagsTy::setPointer ( )
inline

Definition at line 164 of file TargetCallingConv.h.

References Pointer.

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setPointerAddrSpace()

void llvm::ISD::ArgFlagsTy::setPointerAddrSpace ( unsigned AS)
inline

Definition at line 213 of file TargetCallingConv.h.

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setPreallocated()

void llvm::ISD::ArgFlagsTy::setPreallocated ( )
inline

Definition at line 111 of file TargetCallingConv.h.

References Preallocated.

◆ setReturned()

void llvm::ISD::ArgFlagsTy::setReturned ( bool V = true)
inline

Definition at line 138 of file TargetCallingConv.h.

References Returned.

◆ setSecArgPass()

void llvm::ISD::ArgFlagsTy::setSecArgPass ( )
inline

Definition at line 132 of file TargetCallingConv.h.

References SecArgPass.

◆ setSExt()

void llvm::ISD::ArgFlagsTy::setSExt ( )
inline

Definition at line 90 of file TargetCallingConv.h.

References SExt.

Referenced by llvm::TargetLowering::LowerCallTo(), and llvm::FastISel::lowerCallTo().

◆ setSplit()

void llvm::ISD::ArgFlagsTy::setSplit ( )
inline

Definition at line 153 of file TargetCallingConv.h.

References Split.

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setSplitEnd()

void llvm::ISD::ArgFlagsTy::setSplitEnd ( )
inline

Definition at line 156 of file TargetCallingConv.h.

References SplitEnd.

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setSRet()

void llvm::ISD::ArgFlagsTy::setSRet ( )
inline

Definition at line 99 of file TargetCallingConv.h.

References SRet.

◆ setSwiftAsync()

void llvm::ISD::ArgFlagsTy::setSwiftAsync ( )
inline

Definition at line 117 of file TargetCallingConv.h.

References SwiftAsync.

◆ setSwiftError()

void llvm::ISD::ArgFlagsTy::setSwiftError ( )
inline

Definition at line 120 of file TargetCallingConv.h.

References SwiftError.

Referenced by llvm::TargetLowering::LowerCallTo().

◆ setSwiftSelf()

void llvm::ISD::ArgFlagsTy::setSwiftSelf ( )
inline

Definition at line 114 of file TargetCallingConv.h.

References SwiftSelf.

◆ setVarArg()

void llvm::ISD::ArgFlagsTy::setVarArg ( )
inline

Definition at line 167 of file TargetCallingConv.h.

References VarArg.

◆ setZExt()

void llvm::ISD::ArgFlagsTy::setZExt ( )
inline

Definition at line 87 of file TargetCallingConv.h.

References ZExt.

Referenced by llvm::TargetLowering::LowerCallTo(), and llvm::FastISel::lowerCallTo().


The documentation for this struct was generated from the following file: