LLVM 22.0.0git
|
This structure contains all information that is necessary for lowering calls. More...
#include "llvm/CodeGen/TargetLowering.h"
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 |
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 4704 of file TargetLowering.h.
|
inline |
Definition at line 4744 of file TargetLowering.h.
|
inline |
Definition at line 4894 of file TargetLowering.h.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), and llvm::TargetLowering::LowerCallTo().
|
inline |
Definition at line 4782 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(), llvm::SelectionDAGBuilder::visitSPDescriptorFailure(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4798 of file TargetLowering.h.
References llvm::FunctionType::getNumParams(), llvm::FunctionType::isVarArg(), and RetTy.
|
inline |
Definition at line 4884 of file TargetLowering.h.
References Type.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4755 of file TargetLowering.h.
Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), 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(), llvm::SelectionDAGBuilder::visitSPDescriptorFailure(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4889 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4849 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4750 of file TargetLowering.h.
References DL.
Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), 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(), llvm::SelectionDAGBuilder::visitSPDescriptorFailure(), and llvm::SelectionDAGBuilder::visitSPDescriptorParent().
|
inline |
Definition at line 4844 of file TargetLowering.h.
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 4824 of file TargetLowering.h.
|
inline |
Definition at line 4864 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::populateCallLoweringInfo().
|
inline |
Definition at line 4879 of file TargetLowering.h.
Referenced by llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4869 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo(), and llvm::SelectionDAGBuilder::populateCallLoweringInfo().
|
inline |
Definition at line 4761 of file TargetLowering.h.
Referenced by emitSMEStateSaveRestore(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::AArch64SelectionDAGInfo::EmitStreamingCompatibleMemLibCall(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::XCoreSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), LowerFSINCOS(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::TargetLowering::makeLibCall(), and llvm::SelectionDAG::makeStateFunctionCall().
|
inline |
Definition at line 4767 of file TargetLowering.h.
References llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLowering::markLibCallAttributes(), and RetTy.
|
inline |
Definition at line 4829 of file TargetLowering.h.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4874 of file TargetLowering.h.
Referenced by llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4854 of file TargetLowering.h.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
|
inline |
Definition at line 4839 of file TargetLowering.h.
Referenced by llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::SelectionDAG::getMemcmp(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), and llvm::SelectionDAGBuilder::LowerCallTo().
|
inline |
Definition at line 4834 of file TargetLowering.h.
|
inline |
Definition at line 4859 of file TargetLowering.h.
Referenced by llvm::SystemZTargetLowering::makeExternalCall(), and llvm::TargetLowering::makeLibCall().
ArgListTy llvm::TargetLowering::CallLoweringInfo::Args |
Definition at line 4731 of file TargetLowering.h.
Referenced by analyzeCallOperands(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), and llvm::SystemZTargetLowering::LowerCall().
CallingConv::ID llvm::TargetLowering::CallLoweringInfo::CallConv = CallingConv::C |
Definition at line 4729 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(), and llvm::TargetLowering::LowerCallTo().
SDValue llvm::TargetLowering::CallLoweringInfo::Callee |
Definition at line 4730 of file TargetLowering.h.
Referenced by llvm::MipsTargetLowering::getOpndList(), getSMECallAttrs(), 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::AMDGPUTargetLowering::lowerUnhandledCall().
Definition at line 4734 of file TargetLowering.h.
Referenced by getSMECallAttrs(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::TargetLowering::LowerCallTo(), llvm::SelectionDAGBuilder::lowerInvokable(), and llvm::SITargetLowering::passSpecialInputs().
const ConstantInt* llvm::TargetLowering::CallLoweringInfo::CFIType = nullptr |
Definition at line 4739 of file TargetLowering.h.
Referenced by llvm::RISCVTargetLowering::LowerCall().
SDValue llvm::TargetLowering::CallLoweringInfo::Chain |
Definition at line 4705 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().
SDValue llvm::TargetLowering::CallLoweringInfo::ConvergenceControlToken |
Definition at line 4740 of file TargetLowering.h.
Referenced by llvm::SITargetLowering::LowerCall().
SelectionDAG& llvm::TargetLowering::CallLoweringInfo::DAG |
Definition at line 4732 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(), and llvm::SITargetLowering::passSpecialInputs().
SDLoc llvm::TargetLowering::CallLoweringInfo::DL |
Definition at line 4733 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(), and llvm::SITargetLowering::passSpecialInputs().
bool llvm::TargetLowering::CallLoweringInfo::DoesNotReturn |
Definition at line 4714 of file TargetLowering.h.
Referenced by llvm::HexagonTargetLowering::LowerCall().
SmallVector<ISD::InputArg, 32> llvm::TargetLowering::CallLoweringInfo::Ins |
Definition at line 4737 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 4738 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo(), and llvm::SelectionDAGBuilder::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::IsConvergent |
Definition at line 4716 of file TargetLowering.h.
Referenced by llvm::NVPTXTargetLowering::LowerCall().
bool llvm::TargetLowering::CallLoweringInfo::IsInReg |
Definition at line 4713 of file TargetLowering.h.
Referenced by getReturnAttrs(), and llvm::TargetLowering::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::IsPatchPoint |
Definition at line 4717 of file TargetLowering.h.
bool llvm::TargetLowering::CallLoweringInfo::IsPostTypeLegalization = false |
Definition at line 4726 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::IsPreallocated |
Definition at line 4718 of file TargetLowering.h.
bool llvm::TargetLowering::CallLoweringInfo::IsReturnValueUsed |
Definition at line 4715 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::IsTailCall = false |
Definition at line 4723 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(), and llvm::AMDGPUTargetLowering::lowerUnhandledCall().
bool llvm::TargetLowering::CallLoweringInfo::IsVarArg |
Definition at line 4712 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(), and llvm::TargetLowering::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::NoMerge |
Definition at line 4719 of file TargetLowering.h.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), and llvm::RISCVTargetLowering::LowerCall().
unsigned llvm::TargetLowering::CallLoweringInfo::NumFixedArgs = -1 |
Definition at line 4728 of file TargetLowering.h.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), and llvm::TargetLowering::LowerCallTo().
Type* llvm::TargetLowering::CallLoweringInfo::OrigRetTy = nullptr |
Original unlegalized return type.
Definition at line 4707 of file TargetLowering.h.
Referenced by llvm::TargetLowering::LowerCallTo().
SmallVector<ISD::OutputArg, 32> llvm::TargetLowering::CallLoweringInfo::Outs |
Definition at line 4735 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(), llvm::TargetLowering::LowerCallTo(), and mayBeSRetTailCallCompatible().
SmallVector<SDValue, 32> llvm::TargetLowering::CallLoweringInfo::OutVals |
Definition at line 4736 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 mayBeSRetTailCallCompatible().
std::optional<PtrAuthInfo> llvm::TargetLowering::CallLoweringInfo::PAI |
Definition at line 4742 of file TargetLowering.h.
bool llvm::TargetLowering::CallLoweringInfo::RetSExt |
Definition at line 4710 of file TargetLowering.h.
Referenced by getReturnAttrs(), and llvm::TargetLowering::LowerCallTo().
Type* llvm::TargetLowering::CallLoweringInfo::RetTy = nullptr |
Same as OrigRetTy, or partially legalized for soft float libcalls.
Definition at line 4709 of file TargetLowering.h.
Referenced by getReturnAttrs(), llvm::NVPTXTargetLowering::LowerCall(), and llvm::TargetLowering::LowerCallTo().
bool llvm::TargetLowering::CallLoweringInfo::RetZExt |
Definition at line 4711 of file TargetLowering.h.
Referenced by getReturnAttrs(), and llvm::TargetLowering::LowerCallTo().