LLVM  14.0.0git
Public Member Functions | Public Attributes | List of all members
OutgoingArgHandler Struct Reference
Inheritance diagram for OutgoingArgHandler:
Inheritance graph
[legend]
Collaboration diagram for OutgoingArgHandler:
Collaboration graph
[legend]

Public Member Functions

 OutgoingArgHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, MachineInstrBuilder MIB)
 
void assignValueToReg (Register ValVReg, Register PhysReg, CCValAssign &VA) override
 The specified value has been assigned to a physical register, handle the appropriate COPY (either to or from) and mark any relevant uses/defines as needed. More...
 
void assignValueToAddress (Register ValVReg, Register Addr, LLT MemTy, MachinePointerInfo &MPO, CCValAssign &VA) override
 The specified value has been assigned to a stack location. More...
 
Register getStackAddress (uint64_t Size, int64_t Offset, MachinePointerInfo &MPO, ISD::ArgFlagsTy Flags) override
 Materialize a VReg containing the address of the specified stack-based object. More...
 
- Public Member Functions inherited from llvm::CallLowering::OutgoingValueHandler
 OutgoingValueHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 
- Public Member Functions inherited from llvm::CallLowering::ValueHandler
 ValueHandler (bool IsIncoming, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 
virtual ~ValueHandler ()=default
 
bool isIncomingArgumentHandler () const
 Returns true if the handler is dealing with incoming arguments, i.e. More...
 
virtual LLT getStackValueStoreType (const DataLayout &DL, const CCValAssign &VA, ISD::ArgFlagsTy Flags) const
 Return the in-memory size to write for the argument at VA. More...
 
virtual void assignValueToAddress (const ArgInfo &Arg, unsigned ValRegIndex, Register Addr, LLT MemTy, MachinePointerInfo &MPO, CCValAssign &VA)
 An overload which takes an ArgInfo if additional information about the arg is needed. More...
 
virtual unsigned assignCustomValue (ArgInfo &Arg, ArrayRef< CCValAssign > VAs)
 Handle custom values, which may be passed into one or more of VAs. More...
 
void copyArgumentMemory (const ArgInfo &Arg, Register DstPtr, Register SrcPtr, const MachinePointerInfo &DstPtrInfo, Align DstAlign, const MachinePointerInfo &SrcPtrInfo, Align SrcAlign, uint64_t MemSize, CCValAssign &VA) const
 Do a memory copy of MemSize bytes from SrcPtr to DstPtr. More...
 
Register extendRegister (Register ValReg, CCValAssign &VA, unsigned MaxSizeBits=0)
 Extend a register to the location type given in VA, capped at extending to at most MaxSize bits. More...
 

Public Attributes

MachineInstrBuilder MIB
 
- Public Attributes inherited from llvm::CallLowering::ValueHandler
MachineIRBuilderMIRBuilder
 
MachineRegisterInfoMRI
 
const bool IsIncomingArgumentHandler
 

Detailed Description

Definition at line 30 of file M68kCallLowering.cpp.

Constructor & Destructor Documentation

◆ OutgoingArgHandler()

OutgoingArgHandler::OutgoingArgHandler ( MachineIRBuilder MIRBuilder,
MachineRegisterInfo MRI,
MachineInstrBuilder  MIB 
)
inline

Definition at line 31 of file M68kCallLowering.cpp.

Member Function Documentation

◆ assignValueToAddress()

void OutgoingArgHandler::assignValueToAddress ( Register  ValVReg,
Register  Addr,
LLT  MemTy,
MachinePointerInfo MPO,
CCValAssign VA 
)
inlineoverridevirtual

The specified value has been assigned to a stack location.

Load or store it there, with appropriate extension if necessary.

Implements llvm::CallLowering::ValueHandler.

Definition at line 42 of file M68kCallLowering.cpp.

References llvm_unreachable.

◆ assignValueToReg()

void OutgoingArgHandler::assignValueToReg ( Register  ValVReg,
Register  PhysReg,
CCValAssign VA 
)
inlineoverridevirtual

The specified value has been assigned to a physical register, handle the appropriate COPY (either to or from) and mark any relevant uses/defines as needed.

Implements llvm::CallLowering::ValueHandler.

Definition at line 35 of file M68kCallLowering.cpp.

References llvm::RegState::Implicit.

◆ getStackAddress()

Register OutgoingArgHandler::getStackAddress ( uint64_t  MemSize,
int64_t  Offset,
MachinePointerInfo MPO,
ISD::ArgFlagsTy  Flags 
)
inlineoverridevirtual

Materialize a VReg containing the address of the specified stack-based object.

This is either based on a FrameIndex or direct SP manipulation, depending on the context. MPO should be initialized to an appropriate description of the address created.

Implements llvm::CallLowering::ValueHandler.

Definition at line 47 of file M68kCallLowering.cpp.

References llvm_unreachable.

Member Data Documentation

◆ MIB

MachineInstrBuilder OutgoingArgHandler::MIB

Definition at line 53 of file M68kCallLowering.cpp.


The documentation for this struct was generated from the following file: