LLVM 20.0.0git
|
This structure contains all information that is necessary for lowering calls. More...
#include "llvm/CodeGen/TargetLowering.h"
Public Attributes | |
SDValue | Chain |
Type * | RetTy = 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 |
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 |
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 4520 of file TargetLowering.h.
|
inline |
Definition at line 4557 of file TargetLowering.h.
|
inline |
Definition at line 4699 of file TargetLowering.h.
References Args.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), and llvm::TargetLowering::LowerCallTo().
|
inline |
Definition at line 4587 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4603 of file TargetLowering.h.
References Args, CallConv, Callee, CB, DoesNotReturn, llvm::FunctionType::getNumParams(), IsInReg, IsReturnValueUsed, IsVarArg, llvm::FunctionType::isVarArg(), NoMerge, NumFixedArgs, RetSExt, RetTy, and RetZExt.
|
inline |
Definition at line 4689 of file TargetLowering.h.
References CFIType.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4568 of file TargetLowering.h.
References Chain.
Referenced by llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), 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::SelectionDAGBuilder::LowerCallTo(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), LowerFSINCOS(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4694 of file TargetLowering.h.
References ConvergenceControlToken.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4654 of file TargetLowering.h.
References IsConvergent.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4563 of file TargetLowering.h.
References DL.
Referenced by llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), 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::SelectionDAGBuilder::LowerCallTo(), llvm::VETargetLowering::lowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SparcTargetLowering::LowerF128Op(), LowerFSINCOS(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::SystemZTargetLowering::makeExternalCall(), llvm::TargetLowering::makeLibCall(), llvm::SelectionDAG::makeStateFunctionCall(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4649 of file TargetLowering.h.
References 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().
|
inline |
Definition at line 4629 of file TargetLowering.h.
References IsInReg.
|
inline |
Definition at line 4669 of file TargetLowering.h.
References IsPatchPoint.
Referenced by llvm::SelectionDAGBuilder::populateCallLoweringInfo().
|
inline |
Definition at line 4684 of file TargetLowering.h.
References IsPostTypeLegalization.
Referenced by llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4674 of file TargetLowering.h.
References IsPreallocated.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo(), and llvm::SelectionDAGBuilder::populateCallLoweringInfo().
|
inline |
Definition at line 4574 of file TargetLowering.h.
References Args, CallConv, Callee, CC, DAG, llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLoweringBase::markLibCallAttributes(), NumFixedArgs, and RetTy.
Referenced by llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), LowerFSINCOS(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::TargetLowering::makeLibCall(), and llvm::SelectionDAG::makeStateFunctionCall().
|
inline |
Definition at line 4634 of file TargetLowering.h.
References DoesNotReturn.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4679 of file TargetLowering.h.
References PAI.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4659 of file TargetLowering.h.
References RetSExt.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4644 of file TargetLowering.h.
References IsTailCall.
Referenced by llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), and llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4639 of file TargetLowering.h.
References IsVarArg.
|
inline |
Definition at line 4664 of file TargetLowering.h.
References RetZExt.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
ArgListTy llvm::TargetLowering::CallLoweringInfo::Args |
Definition at line 4544 of file TargetLowering.h.
Referenced by analyzeCallOperands(), getArgs(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), setCallee(), and setLibCallee().
CallingConv::ID llvm::TargetLowering::CallLoweringInfo::CallConv = CallingConv::C |
Definition at line 4542 of file TargetLowering.h.
Referenced by analyzeCallOperands(), llvm::MipsTargetLowering::getOpndList(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().
SDValue llvm::TargetLowering::CallLoweringInfo::Callee |
Definition at line 4543 of file TargetLowering.h.
Referenced by llvm::MipsTargetLowering::getOpndList(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), setCallee(), and setLibCallee().
Definition at line 4547 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::SITargetLowering::passSpecialInputs(), and setCallee().
const ConstantInt* llvm::TargetLowering::CallLoweringInfo::CFIType = nullptr |
Definition at line 4552 of file TargetLowering.h.
Referenced by llvm::RISCVTargetLowering::LowerCall(), and setCFIType().
SDValue llvm::TargetLowering::CallLoweringInfo::Chain |
Definition at line 4521 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), and setChain().
SDValue llvm::TargetLowering::CallLoweringInfo::ConvergenceControlToken |
Definition at line 4553 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), and setConvergenceControlToken().
SelectionDAG& llvm::TargetLowering::CallLoweringInfo::DAG |
Definition at line 4545 of file TargetLowering.h.
Referenced by analyzeCallOperands(), llvm::MipsTargetLowering::getOpndList(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), llvm::SITargetLowering::passSpecialInputs(), and setLibCallee().
SDLoc llvm::TargetLowering::CallLoweringInfo::DL |
Definition at line 4546 of file TargetLowering.h.
Referenced by llvm::MipsTargetLowering::getOpndList(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), llvm::SITargetLowering::passSpecialInputs(), and setDebugLoc().
bool llvm::TargetLowering::CallLoweringInfo::DoesNotReturn |
Definition at line 4527 of file TargetLowering.h.
Referenced by llvm::HexagonTargetLowering::LowerCall(), setCallee(), and setNoReturn().
SmallVector<ISD::InputArg, 32> llvm::TargetLowering::CallLoweringInfo::Ins |
Definition at line 4550 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), and llvm::AMDGPUTargetLowering::lowerUnhandledCall().
SmallVector<SDValue, 4> llvm::TargetLowering::CallLoweringInfo::InVals |
Definition at line 4551 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo(), and llvm::SelectionDAGBuilder::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::IsConvergent |
Definition at line 4529 of file TargetLowering.h.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), and setConvergent().
bool llvm::TargetLowering::CallLoweringInfo::IsInReg |
Definition at line 4526 of file TargetLowering.h.
Referenced by getReturnAttrs(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setInRegister().
bool llvm::TargetLowering::CallLoweringInfo::IsPatchPoint |
Definition at line 4530 of file TargetLowering.h.
Referenced by setIsPatchPoint().
bool llvm::TargetLowering::CallLoweringInfo::IsPostTypeLegalization = false |
Definition at line 4539 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo(), and setIsPostTypeLegalization().
bool llvm::TargetLowering::CallLoweringInfo::IsPreallocated |
Definition at line 4531 of file TargetLowering.h.
Referenced by setIsPreallocated().
bool llvm::TargetLowering::CallLoweringInfo::IsReturnValueUsed |
Definition at line 4528 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo(), setCallee(), and setDiscardResult().
bool llvm::TargetLowering::CallLoweringInfo::IsTailCall = false |
Definition at line 4536 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), and setTailCall().
bool llvm::TargetLowering::CallLoweringInfo::IsVarArg |
Definition at line 4525 of file TargetLowering.h.
Referenced by analyzeCallOperands(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setVarArg().
bool llvm::TargetLowering::CallLoweringInfo::NoMerge |
Definition at line 4532 of file TargetLowering.h.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), and setCallee().
unsigned llvm::TargetLowering::CallLoweringInfo::NumFixedArgs = -1 |
Definition at line 4541 of file TargetLowering.h.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().
SmallVector<ISD::OutputArg, 32> llvm::TargetLowering::CallLoweringInfo::Outs |
Definition at line 4548 of file TargetLowering.h.
Referenced by analyzeCallOperands(), llvm::SparcTargetLowering::IsEligibleForTailCallOptimization(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), and llvm::TargetLowering::LowerCallTo().
SmallVector<SDValue, 32> llvm::TargetLowering::CallLoweringInfo::OutVals |
Definition at line 4549 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), and llvm::TargetLowering::LowerCallTo().
std::optional<PtrAuthInfo> llvm::TargetLowering::CallLoweringInfo::PAI |
Definition at line 4555 of file TargetLowering.h.
Referenced by setPtrAuth().
bool llvm::TargetLowering::CallLoweringInfo::RetSExt |
Definition at line 4523 of file TargetLowering.h.
Referenced by getReturnAttrs(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setSExtResult().
Type* llvm::TargetLowering::CallLoweringInfo::RetTy = nullptr |
Definition at line 4522 of file TargetLowering.h.
Referenced by getReturnAttrs(), llvm::NVPTXTargetLowering::LowerCall(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setLibCallee().
bool llvm::TargetLowering::CallLoweringInfo::RetZExt |
Definition at line 4524 of file TargetLowering.h.
Referenced by getReturnAttrs(), llvm::TargetLowering::LowerCallTo(), setCallee(), and setZExtResult().