LLVM: llvm::TargetLowering::CallLoweringInfo Struct Reference (original) (raw)

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

#include "[llvm/CodeGen/TargetLowering.h](TargetLowering%5F8h%5Fsource.html)"

Public Member Functions
CallLoweringInfo (SelectionDAG &DAG)
CallLoweringInfo & setDebugLoc (const SDLoc &dl)
CallLoweringInfo & setChain (SDValue InChain)
CallLoweringInfo & setLibCallee (CallingConv::ID CC, Type *ResultType, SDValue Target, ArgListTy &&ArgsList)
CallLoweringInfo & setLibCallee (CallingConv::ID CC, Type *ResultType, Type *OrigResultType, SDValue Target, ArgListTy &&ArgsList)
CallLoweringInfo & setCallee (CallingConv::ID CC, Type *ResultType, SDValue Target, ArgListTy &&ArgsList, AttributeSet ResultAttrs={})
CallLoweringInfo & setCallee (Type *ResultType, FunctionType *FTy, SDValue Target, ArgListTy &&ArgsList, const CallBase &Call)
CallLoweringInfo & setInRegister (bool Value=true)
CallLoweringInfo & setNoReturn (bool Value=true)
CallLoweringInfo & setVarArg (bool Value=true)
CallLoweringInfo & setTailCall (bool Value=true)
CallLoweringInfo & setDiscardResult (bool Value=true)
CallLoweringInfo & setConvergent (bool Value=true)
CallLoweringInfo & setSExtResult (bool Value=true)
CallLoweringInfo & setZExtResult (bool Value=true)
CallLoweringInfo & setIsPatchPoint (bool Value=true)
CallLoweringInfo & setIsPreallocated (bool Value=true)
CallLoweringInfo & setPtrAuth (PtrAuthInfo Value)
CallLoweringInfo & setIsPostTypeLegalization (bool Value=true)
CallLoweringInfo & setCFIType (const ConstantInt *Type)
CallLoweringInfo & setConvergenceControlToken (SDValue Token)
CallLoweringInfo & setDeactivationSymbol (GlobalValue *Sym)
ArgListTy & getArgs ()
Public Attributes
SDValue Chain
Type * OrigRetTy = nullptr
Original unlegalized return type.
Type * RetTy = 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
SelectionDAG & DAG
SDLoc DL
const CallBase * CB = nullptr
SmallVector< ISD::OutputArg, 32 > Outs
SmallVector< SDValue, 32 > OutVals
SmallVector< ISD::InputArg, 32 > Ins
SmallVector< SDValue, 4 > InVals
const ConstantInt * CFIType = nullptr
SDValue ConvergenceControlToken
GlobalValue * DeactivationSymbol = nullptr
std::optional< PtrAuthInfo > PAI

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

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

Definition at line 4781 of file TargetLowering.h.

References DAG, DoesNotReturn, IsConvergent, IsInReg, IsPatchPoint, IsPreallocated, IsReturnValueUsed, IsVarArg, NoMerge, RetSExt, and RetZExt.

Referenced by setCallee(), setCallee(), setCFIType(), setChain(), setConvergenceControlToken(), setConvergent(), setDeactivationSymbol(), setDebugLoc(), setDiscardResult(), setInRegister(), setIsPatchPoint(), setIsPostTypeLegalization(), setIsPreallocated(), setLibCallee(), setLibCallee(), setNoReturn(), setPtrAuth(), setSExtResult(), setTailCall(), setVarArg(), and setZExtResult().

getArgs()

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

setCallee() [1/2]

setCallee() [2/2]

Definition at line 4835 of file TargetLowering.h.

References Args, Call, CallConv, Callee, CallLoweringInfo(), CB, DoesNotReturn, llvm::FunctionType::getNumParams(), llvm::isa(), IsInReg, IsReturnValueUsed, IsVarArg, llvm::FunctionType::isVarArg(), NoMerge, NumFixedArgs, OrigRetTy, RetSExt, RetTy, and RetZExt.

setCFIType()

setChain()

Definition at line 4792 of file TargetLowering.h.

References CallLoweringInfo(), and Chain.

Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::TargetLowering::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getStrlen(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), llvm::SelectionDAGBuilder::visitSPDescriptorFailure(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().

setConvergenceControlToken()

setConvergent()

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

setDeactivationSymbol()

setDebugLoc()

Definition at line 4787 of file TargetLowering.h.

References CallLoweringInfo(), and DL.

Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::TargetLowering::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getStrlen(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), llvm::SelectionDAGBuilder::visitSPDescriptorFailure(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().

setDiscardResult()

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

Definition at line 4881 of file TargetLowering.h.

References CallLoweringInfo(), and IsReturnValueUsed.

Referenced by llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), and llvm::SelectionDAGBuilder::populateCallLoweringInfo().

setInRegister()

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

setIsPatchPoint()

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

setIsPostTypeLegalization()

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

setIsPreallocated()

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

setLibCallee() [1/2]

Definition at line 4798 of file TargetLowering.h.

References CallLoweringInfo(), and setLibCallee().

Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::TargetLowering::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::SelectionDAG::getStrlen(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), and setLibCallee().

setLibCallee() [2/2]

setNoReturn()

setPtrAuth()

setSExtResult()

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

setTailCall()

setVarArg()

setZExtResult()

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

Args

ArgListTy llvm::TargetLowering::CallLoweringInfo::Args

CallConv

Definition at line 4765 of file TargetLowering.h.

Referenced by analyzeCallOperands(), llvm::MipsTargetLowering::getOpndList(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().

Callee

SDValue llvm::TargetLowering::CallLoweringInfo::Callee

Definition at line 4766 of file TargetLowering.h.

Referenced by llvm::MipsTargetLowering::getOpndList(), getSMECallAttrs(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), setCallee(), and setLibCallee().

CB

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

Definition at line 4770 of file TargetLowering.h.

Referenced by getSMECallAttrs(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::SITargetLowering::passSpecialInputs(), and setCallee().

CFIType

Chain

SDValue llvm::TargetLowering::CallLoweringInfo::Chain

Definition at line 4741 of file TargetLowering.h.

Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), and setChain().

ConvergenceControlToken

SDValue llvm::TargetLowering::CallLoweringInfo::ConvergenceControlToken

DAG

Definition at line 4768 of file TargetLowering.h.

Referenced by analyzeCallOperands(), CallLoweringInfo(), llvm::MipsTargetLowering::getOpndList(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), llvm::SITargetLowering::passSpecialInputs(), and setLibCallee().

DeactivationSymbol

GlobalValue* llvm::TargetLowering::CallLoweringInfo::DeactivationSymbol = nullptr

DL

SDLoc llvm::TargetLowering::CallLoweringInfo::DL

Definition at line 4769 of file TargetLowering.h.

Referenced by llvm::MipsTargetLowering::getOpndList(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), llvm::SITargetLowering::passSpecialInputs(), and setDebugLoc().

DoesNotReturn

bool llvm::TargetLowering::CallLoweringInfo::DoesNotReturn

Ins

Definition at line 4773 of file TargetLowering.h.

Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), and llvm::AMDGPUTargetLowering::lowerUnhandledCall().

InVals

IsConvergent

bool llvm::TargetLowering::CallLoweringInfo::IsConvergent

IsInReg

bool llvm::TargetLowering::CallLoweringInfo::IsInReg

IsPatchPoint

bool llvm::TargetLowering::CallLoweringInfo::IsPatchPoint

IsPostTypeLegalization

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

IsPreallocated

bool llvm::TargetLowering::CallLoweringInfo::IsPreallocated

IsReturnValueUsed

bool llvm::TargetLowering::CallLoweringInfo::IsReturnValueUsed

IsTailCall

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

Definition at line 4759 of file TargetLowering.h.

Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), and setTailCall().

IsVarArg

bool llvm::TargetLowering::CallLoweringInfo::IsVarArg

Definition at line 4748 of file TargetLowering.h.

Referenced by analyzeCallOperands(), CallLoweringInfo(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setVarArg().

NoMerge

bool llvm::TargetLowering::CallLoweringInfo::NoMerge

NumFixedArgs

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

OrigRetTy

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

Outs

Definition at line 4771 of file TargetLowering.h.

Referenced by analyzeCallOperands(), llvm::SparcTargetLowering::IsEligibleForTailCallOptimization(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), and mayBeSRetTailCallCompatible().

OutVals

Definition at line 4772 of file TargetLowering.h.

Referenced by llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), and mayBeSRetTailCallCompatible().

PAI

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

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: