LLVM 22.0.0git
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)
CallLoweringInfosetLibCallee (CallingConv::ID CC, Type *ResultType, Type *OrigResultType, 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
TypeOrigRetTy = nullptr
 Original unlegalized return type.
TypeRetTy = nullptr
 Same as OrigRetTy, or partially legalized for soft float libcalls.
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 4718 of file TargetLowering.h.

Constructor & Destructor Documentation

◆ CallLoweringInfo()

Member Function Documentation

◆ getArgs()

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

◆ setCallee() [1/2]

◆ 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 4898 of file TargetLowering.h.

References CallLoweringInfo(), and CFIType.

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

◆ setChain()

◆ setConvergenceControlToken()

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

◆ setConvergent()

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

Definition at line 4863 of file TargetLowering.h.

References CallLoweringInfo(), and IsConvergent.

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

◆ setDebugLoc()

◆ setDiscardResult()

◆ setInRegister()

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

Definition at line 4838 of file TargetLowering.h.

References CallLoweringInfo(), and IsInReg.

◆ setIsPatchPoint()

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

◆ setIsPostTypeLegalization()

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

Definition at line 4893 of file TargetLowering.h.

References CallLoweringInfo(), and IsPostTypeLegalization.

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

◆ setIsPreallocated()

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

◆ setLibCallee() [1/2]

◆ setLibCallee() [2/2]

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

Definition at line 4781 of file TargetLowering.h.

References Args, CallConv, Callee, CallLoweringInfo(), DAG, NumFixedArgs, OrigRetTy, and RetTy.

◆ setNoReturn()

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

◆ setPtrAuth()

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

Definition at line 4888 of file TargetLowering.h.

References CallLoweringInfo(), and PAI.

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

◆ setSExtResult()

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

◆ setTailCall()

◆ setVarArg()

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

Definition at line 4848 of file TargetLowering.h.

References CallLoweringInfo(), and IsVarArg.

◆ setZExtResult()

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

Member Data Documentation

◆ Args

◆ CallConv

◆ Callee

◆ CB

◆ CFIType

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

Definition at line 4753 of file TargetLowering.h.

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

◆ Chain

◆ ConvergenceControlToken

SDValue llvm::TargetLowering::CallLoweringInfo::ConvergenceControlToken

◆ DAG

◆ DL

◆ DoesNotReturn

bool llvm::TargetLowering::CallLoweringInfo::DoesNotReturn

◆ Ins

◆ InVals

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

◆ IsConvergent

bool llvm::TargetLowering::CallLoweringInfo::IsConvergent

◆ IsInReg

bool llvm::TargetLowering::CallLoweringInfo::IsInReg

◆ IsPatchPoint

bool llvm::TargetLowering::CallLoweringInfo::IsPatchPoint

Definition at line 4731 of file TargetLowering.h.

Referenced by CallLoweringInfo(), and setIsPatchPoint().

◆ IsPostTypeLegalization

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

◆ IsPreallocated

bool llvm::TargetLowering::CallLoweringInfo::IsPreallocated

Definition at line 4732 of file TargetLowering.h.

Referenced by CallLoweringInfo(), and setIsPreallocated().

◆ IsReturnValueUsed

bool llvm::TargetLowering::CallLoweringInfo::IsReturnValueUsed

◆ IsTailCall

◆ IsVarArg

◆ NoMerge

◆ NumFixedArgs

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

◆ OrigRetTy

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

Original unlegalized return type.

Definition at line 4721 of file TargetLowering.h.

Referenced by llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().

◆ Outs

◆ OutVals

◆ PAI

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

Definition at line 4756 of file TargetLowering.h.

Referenced by setPtrAuth().

◆ RetSExt

bool llvm::TargetLowering::CallLoweringInfo::RetSExt

◆ RetTy

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

Same as OrigRetTy, or partially legalized for soft float libcalls.

Definition at line 4723 of file TargetLowering.h.

Referenced by getReturnAttrs(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().

◆ RetZExt

bool llvm::TargetLowering::CallLoweringInfo::RetZExt

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