LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::TargetLowering::CallLoweringInfo Struct Reference

This structure contains all information that is necessary for lowering calls. More...

#include "llvm/CodeGen/TargetLowering.h"

Public Member Functions

 CallLoweringInfo (SelectionDAG &DAG)
 
CallLoweringInfosetDebugLoc (const SDLoc &dl)
 
CallLoweringInfosetChain (SDValue InChain)
 
CallLoweringInfosetLibCallee (CallingConv::ID CC, Type *ResultType, SDValue Target, ArgListTy &&ArgsList)
 
CallLoweringInfosetCallee (CallingConv::ID CC, Type *ResultType, SDValue Target, ArgListTy &&ArgsList, AttributeSet ResultAttrs={})
 
CallLoweringInfosetCallee (Type *ResultType, FunctionType *FTy, SDValue Target, ArgListTy &&ArgsList, const CallBase &Call)
 
CallLoweringInfosetInRegister (bool Value=true)
 
CallLoweringInfosetNoReturn (bool Value=true)
 
CallLoweringInfosetVarArg (bool Value=true)
 
CallLoweringInfosetTailCall (bool Value=true)
 
CallLoweringInfosetDiscardResult (bool Value=true)
 
CallLoweringInfosetConvergent (bool Value=true)
 
CallLoweringInfosetSExtResult (bool Value=true)
 
CallLoweringInfosetZExtResult (bool Value=true)
 
CallLoweringInfosetIsPatchPoint (bool Value=true)
 
CallLoweringInfosetIsPreallocated (bool Value=true)
 
CallLoweringInfosetPtrAuth (PtrAuthInfo Value)
 
CallLoweringInfosetIsPostTypeLegalization (bool Value=true)
 
CallLoweringInfosetCFIType (const ConstantInt *Type)
 
CallLoweringInfosetConvergenceControlToken (SDValue Token)
 
ArgListTygetArgs ()
 

Public Attributes

SDValue Chain
 
TypeRetTy = nullptr
 
bool RetSExt: 1
 
bool RetZExt: 1
 
bool IsVarArg: 1
 
bool IsInReg: 1
 
bool DoesNotReturn: 1
 
bool IsReturnValueUsed: 1
 
bool IsConvergent: 1
 
bool IsPatchPoint: 1
 
bool IsPreallocated: 1
 
bool NoMerge: 1
 
bool IsTailCall = false
 
bool IsPostTypeLegalization = false
 
unsigned NumFixedArgs = -1
 
CallingConv::ID CallConv = CallingConv::C
 
SDValue Callee
 
ArgListTy Args
 
SelectionDAGDAG
 
SDLoc DL
 
const CallBaseCB = nullptr
 
SmallVector< ISD::OutputArg, 32 > Outs
 
SmallVector< SDValue, 32 > OutVals
 
SmallVector< ISD::InputArg, 32 > Ins
 
SmallVector< SDValue, 4 > InVals
 
const ConstantIntCFIType = nullptr
 
SDValue ConvergenceControlToken
 
std::optional< PtrAuthInfoPAI
 

Detailed Description

This structure contains all information that is necessary for lowering calls.

It is passed to TLI::LowerCallTo when the SelectionDAG builder needs to lower a call, and targets will see this struct in their LowerCall implementation.

Definition at line 4520 of file TargetLowering.h.

Constructor & Destructor Documentation

◆ CallLoweringInfo()

llvm::TargetLowering::CallLoweringInfo::CallLoweringInfo ( SelectionDAG DAG)
inline

Definition at line 4557 of file TargetLowering.h.

Member Function Documentation

◆ getArgs()

ArgListTy & llvm::TargetLowering::CallLoweringInfo::getArgs ( )
inline

◆ setCallee() [1/2]

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setCallee ( CallingConv::ID  CC,
Type ResultType,
SDValue  Target,
ArgListTy &&  ArgsList,
AttributeSet  ResultAttrs = {} 
)
inline

◆ setCallee() [2/2]

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setCallee ( Type ResultType,
FunctionType FTy,
SDValue  Target,
ArgListTy &&  ArgsList,
const CallBase Call 
)
inline

◆ setCFIType()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setCFIType ( const ConstantInt Type)
inline

Definition at line 4689 of file TargetLowering.h.

References CFIType.

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

◆ setChain()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setChain ( SDValue  InChain)
inline

◆ setConvergenceControlToken()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setConvergenceControlToken ( SDValue  Token)
inline

Definition at line 4694 of file TargetLowering.h.

References ConvergenceControlToken.

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

◆ setConvergent()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setConvergent ( bool  Value = true)
inline

Definition at line 4654 of file TargetLowering.h.

References IsConvergent.

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

◆ setDebugLoc()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setDebugLoc ( const SDLoc dl)
inline

◆ setDiscardResult()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setDiscardResult ( bool  Value = true)
inline

◆ setInRegister()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setInRegister ( bool  Value = true)
inline

Definition at line 4629 of file TargetLowering.h.

References IsInReg.

◆ setIsPatchPoint()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setIsPatchPoint ( bool  Value = true)
inline

Definition at line 4669 of file TargetLowering.h.

References IsPatchPoint.

Referenced by llvm::SelectionDAGBuilder::populateCallLoweringInfo().

◆ setIsPostTypeLegalization()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setIsPostTypeLegalization ( bool  Value = true)
inline

Definition at line 4684 of file TargetLowering.h.

References IsPostTypeLegalization.

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

◆ setIsPreallocated()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setIsPreallocated ( bool  Value = true)
inline

◆ setLibCallee()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setLibCallee ( CallingConv::ID  CC,
Type ResultType,
SDValue  Target,
ArgListTy &&  ArgsList 
)
inline

◆ setNoReturn()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setNoReturn ( bool  Value = true)
inline

◆ setPtrAuth()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setPtrAuth ( PtrAuthInfo  Value)
inline

Definition at line 4679 of file TargetLowering.h.

References PAI.

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

◆ setSExtResult()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setSExtResult ( bool  Value = true)
inline

◆ setTailCall()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setTailCall ( bool  Value = true)
inline

◆ setVarArg()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setVarArg ( bool  Value = true)
inline

Definition at line 4639 of file TargetLowering.h.

References IsVarArg.

◆ setZExtResult()

CallLoweringInfo & llvm::TargetLowering::CallLoweringInfo::setZExtResult ( bool  Value = true)
inline

Member Data Documentation

◆ Args

ArgListTy llvm::TargetLowering::CallLoweringInfo::Args

◆ CallConv

CallingConv::ID llvm::TargetLowering::CallLoweringInfo::CallConv = CallingConv::C

◆ Callee

SDValue llvm::TargetLowering::CallLoweringInfo::Callee

◆ CB

const CallBase* llvm::TargetLowering::CallLoweringInfo::CB = nullptr

◆ CFIType

const ConstantInt* llvm::TargetLowering::CallLoweringInfo::CFIType = nullptr

Definition at line 4552 of file TargetLowering.h.

Referenced by llvm::RISCVTargetLowering::LowerCall(), and setCFIType().

◆ Chain

SDValue llvm::TargetLowering::CallLoweringInfo::Chain

◆ ConvergenceControlToken

SDValue llvm::TargetLowering::CallLoweringInfo::ConvergenceControlToken

◆ DAG

SelectionDAG& llvm::TargetLowering::CallLoweringInfo::DAG

◆ DL

SDLoc llvm::TargetLowering::CallLoweringInfo::DL

◆ DoesNotReturn

bool llvm::TargetLowering::CallLoweringInfo::DoesNotReturn

◆ Ins

SmallVector<ISD::InputArg, 32> llvm::TargetLowering::CallLoweringInfo::Ins

◆ InVals

SmallVector<SDValue, 4> llvm::TargetLowering::CallLoweringInfo::InVals

◆ IsConvergent

bool llvm::TargetLowering::CallLoweringInfo::IsConvergent

Definition at line 4529 of file TargetLowering.h.

Referenced by llvm::NVPTXTargetLowering::LowerCall(), and setConvergent().

◆ IsInReg

bool llvm::TargetLowering::CallLoweringInfo::IsInReg

◆ IsPatchPoint

bool llvm::TargetLowering::CallLoweringInfo::IsPatchPoint

Definition at line 4530 of file TargetLowering.h.

Referenced by setIsPatchPoint().

◆ IsPostTypeLegalization

bool llvm::TargetLowering::CallLoweringInfo::IsPostTypeLegalization = false

◆ IsPreallocated

bool llvm::TargetLowering::CallLoweringInfo::IsPreallocated

Definition at line 4531 of file TargetLowering.h.

Referenced by setIsPreallocated().

◆ IsReturnValueUsed

bool llvm::TargetLowering::CallLoweringInfo::IsReturnValueUsed

◆ IsTailCall

bool llvm::TargetLowering::CallLoweringInfo::IsTailCall = false

◆ IsVarArg

bool llvm::TargetLowering::CallLoweringInfo::IsVarArg

◆ NoMerge

bool llvm::TargetLowering::CallLoweringInfo::NoMerge

◆ NumFixedArgs

unsigned llvm::TargetLowering::CallLoweringInfo::NumFixedArgs = -1

◆ Outs

SmallVector<ISD::OutputArg, 32> llvm::TargetLowering::CallLoweringInfo::Outs

◆ OutVals

SmallVector<SDValue, 32> llvm::TargetLowering::CallLoweringInfo::OutVals

◆ PAI

std::optional<PtrAuthInfo> llvm::TargetLowering::CallLoweringInfo::PAI

Definition at line 4555 of file TargetLowering.h.

Referenced by setPtrAuth().

◆ RetSExt

bool llvm::TargetLowering::CallLoweringInfo::RetSExt

◆ RetTy

Type* llvm::TargetLowering::CallLoweringInfo::RetTy = nullptr

◆ RetZExt

bool llvm::TargetLowering::CallLoweringInfo::RetZExt

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