15 #ifndef LLVM_LIB_TARGET_MIPS_MIPSCALLLOWERING_H 16 #define LLVM_LIB_TARGET_MIPS_MIPSCALLLOWERING_H 22 class MipsTargetLowering;
30 : MIRBuilder(MIRBuilder), MRI(MRI) {}
49 virtual unsigned getStackAddress(
const CCValAssign &VA,
52 virtual void assignValueToReg(
unsigned ValVReg,
const CCValAssign &VA) = 0;
54 virtual void assignValueToAddress(
unsigned ValVReg,
59 unsigned ArgLocsStartIndex,
unsigned ArgsReg) = 0;
85 void splitToValueTypes(
const ArgInfo &OrigArg,
unsigned OriginalIndex,
92 #endif // LLVM_LIB_TARGET_MIPS_MIPSCALLLOWERING_H This class represents lattice values for constants.
A description of a memory reference used in the backend.
bool assignVRegs(ArrayRef< unsigned > VRegs, ArrayRef< CCValAssign > ArgLocs, unsigned Index)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
MachineRegisterInfo & MRI
MipsCallLowering(const MipsTargetLowering &TLI)
virtual ~MipsHandler()=default
bool lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F, ArrayRef< unsigned > VRegs) const override
This hook must be implemented to lower the incoming (formal) arguments, described by Args...
Helper class to build MachineInstr.
void setLeastSignificantFirst(SmallVectorImpl< unsigned > &VRegs)
MipsHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
MachineOperand class - Representation of each machine instruction operand.
CCValAssign - Represent assignment of one arg/retval to a location.
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
bool lowerReturn(MachineIRBuilder &MIRBuilder, const Value *Val, ArrayRef< unsigned > VRegs) const override
This hook must be implemented to lower outgoing return values, described by Val, into the specified v...
MachineIRBuilder & MIRBuilder
LLVM Value Representation.
bool lowerCall(MachineIRBuilder &MIRBuilder, CallingConv::ID CallConv, const MachineOperand &Callee, const ArgInfo &OrigRet, ArrayRef< ArgInfo > OrigArgs) const override
This hook must be implemented to lower the given call instruction, including argument and return valu...
This file describes how to lower LLVM calls to machine code calls.
constexpr char Args[]
Key for Kernel::Metadata::mArgs.
bool handle(ArrayRef< CCValAssign > ArgLocs, ArrayRef< CallLowering::ArgInfo > Args)