class X86CallLowering
Declaration
class X86CallLowering : public CallLowering { /* full declaration omitted */ };
Declared at: llvm/lib/Target/X86/X86CallLowering.h:25
Inherits from: CallLowering
Member Variables
Method Overview
- public X86CallLowering(const llvm::X86TargetLowering & TLI)
- public bool lowerCall(llvm::MachineIRBuilder & MIRBuilder, llvm::CallLowering::CallLoweringInfo & Info) const
- public bool lowerFormalArguments(llvm::MachineIRBuilder & MIRBuilder, const llvm::Function & F, ArrayRef<ArrayRef<llvm::Register>> VRegs, llvm::FunctionLoweringInfo & FLI) const
- public bool lowerReturn(llvm::MachineIRBuilder & MIRBuilder, const llvm::Value * Val, ArrayRef<llvm::Register> VRegs, llvm::FunctionLoweringInfo & FLI) const
Inherited from CallLowering:
- protected addArgFlagsFromAttributes
- public canLowerReturn
- public checkReturn
- public checkReturnTypeForCallConv
- protected determineAndHandleAssignments
- protected determineAssignments
- public enableBigEndian
- public fallBackToDAGISel
- protected getAttributesForArgIdx
- public getReturnInfo
- protected getTLI
- protected getTLI
- protected handleAssignments
- public insertSRetIncomingArgument
- public insertSRetLoads
- public insertSRetOutgoingArgument
- public insertSRetStores
- public isTypeIsValidForThisReturn
- public lowerCall
- public lowerCall
- public lowerFormalArguments
- public lowerReturn
- public lowerReturn
- protected parametersInCSRMatch
- protected resultsCompatible
- protected setArgFlags
- protected splitToValueTypes
- public supportSwiftError
Methods
¶X86CallLowering(
const llvm::X86TargetLowering& TLI)
X86CallLowering(
const llvm::X86TargetLowering& TLI)
Declared at: llvm/lib/Target/X86/X86CallLowering.h:27
Parameters
- const llvm::X86TargetLowering& TLI
¶bool lowerCall(
llvm::MachineIRBuilder& MIRBuilder,
llvm::CallLowering::CallLoweringInfo& Info)
const
bool lowerCall(
llvm::MachineIRBuilder& MIRBuilder,
llvm::CallLowering::CallLoweringInfo& Info)
const
Description
This hook must be implemented to lower the given call instruction, including argument and return value marshalling.
Declared at: llvm/lib/Target/X86/X86CallLowering.h:37
Parameters
- llvm::MachineIRBuilder& MIRBuilder
- llvm::CallLowering::CallLoweringInfo& Info
Returns
true if the lowering succeeded, false otherwise.
¶bool lowerFormalArguments(
llvm::MachineIRBuilder& MIRBuilder,
const llvm::Function& F,
ArrayRef<ArrayRef<llvm::Register>> VRegs,
llvm::FunctionLoweringInfo& FLI) const
bool lowerFormalArguments(
llvm::MachineIRBuilder& MIRBuilder,
const llvm::Function& F,
ArrayRef<ArrayRef<llvm::Register>> VRegs,
llvm::FunctionLoweringInfo& FLI) const
Description
This hook must be implemented to lower the incoming (formal) arguments, described by \p VRegs, for GlobalISel. Each argument must end up in the related virtual registers described by \p VRegs. In other words, the first argument should end up in \c VRegs[0], the second in \c VRegs[1], and so on. For each argument, there will be one register for each non-aggregate type, as returned by \c computeValueLLTs. \p MIRBuilder is set to the proper insertion for the argument lowering. \p FLI is required for sret demotion.
Declared at: llvm/lib/Target/X86/X86CallLowering.h:33
Parameters
- llvm::MachineIRBuilder& MIRBuilder
- const llvm::Function& F
- ArrayRef<ArrayRef<llvm::Register>> VRegs
- llvm::FunctionLoweringInfo& FLI
Returns
True if the lowering succeeded, false otherwise.
¶bool lowerReturn(
llvm::MachineIRBuilder& MIRBuilder,
const llvm::Value* Val,
ArrayRef<llvm::Register> VRegs,
llvm::FunctionLoweringInfo& FLI) const
bool lowerReturn(
llvm::MachineIRBuilder& MIRBuilder,
const llvm::Value* Val,
ArrayRef<llvm::Register> VRegs,
llvm::FunctionLoweringInfo& FLI) const
Description
This hook behaves as the extended lowerReturn function, but for targets that do not support swifterror value promotion.
Declared at: llvm/lib/Target/X86/X86CallLowering.h:29
Parameters
- llvm::MachineIRBuilder& MIRBuilder
- const llvm::Value* Val
- ArrayRef<llvm::Register> VRegs
- llvm::FunctionLoweringInfo& FLI