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 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:
- include/llvm/CodeGen/TargetLowering.h