LLVM  4.0.0
Public Member Functions | List of all members
IncomingArgHandler Struct Referenceabstract
Inheritance diagram for IncomingArgHandler:
[legend]
Collaboration diagram for IncomingArgHandler:
[legend]

Public Member Functions

 IncomingArgHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 
unsigned getStackAddress (uint64_t Size, int64_t Offset, MachinePointerInfo &MPO) override
 Materialize a VReg containing the address of the specified stack-based object. More...
 
void assignValueToReg (unsigned ValVReg, unsigned 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 (unsigned ValVReg, unsigned Addr, uint64_t Size, MachinePointerInfo &MPO, CCValAssign &VA) override
 The specified value has been assigned to a stack location. More...
 
virtual void markPhysRegUsed (unsigned PhysReg)=0
 How the physical register gets marked varies between formal parameters (it's a basic-block live-in), and a call instruction (it's an implicit-def of the BL). More...
 
- Public Member Functions inherited from llvm::CallLowering::ValueHandler
unsigned extendRegister (unsigned ValReg, CCValAssign &VA)
 
 ValueHandler (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 
virtual ~ValueHandler ()
 

Additional Inherited Members

- Public Attributes inherited from llvm::CallLowering::ValueHandler
MachineIRBuilderMIRBuilder
 
MachineRegisterInfoMRI
 

Detailed Description

Definition at line 37 of file AArch64CallLowering.cpp.

Constructor & Destructor Documentation

IncomingArgHandler::IncomingArgHandler ( MachineIRBuilder MIRBuilder,
MachineRegisterInfo MRI 
)
inline

Definition at line 38 of file AArch64CallLowering.cpp.

Member Function Documentation

void IncomingArgHandler::assignValueToAddress ( unsigned  ValVReg,
unsigned  Addr,
uint64_t  Size,
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 58 of file AArch64CallLowering.cpp.

References llvm::MachineMemOperand::MOInvariant, and llvm::MachineMemOperand::MOLoad.

void IncomingArgHandler::assignValueToReg ( unsigned  ValVReg,
unsigned  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 51 of file AArch64CallLowering.cpp.

unsigned IncomingArgHandler::getStackAddress ( uint64_t  Size,
int64_t  Offset,
MachinePointerInfo MPO 
)
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 41 of file AArch64CallLowering.cpp.

References llvm::MachinePointerInfo::getFixedStack(), MRI, and llvm::LLT::pointer().

virtual void IncomingArgHandler::markPhysRegUsed ( unsigned  PhysReg)
pure virtual

How the physical register gets marked varies between formal parameters (it's a basic-block live-in), and a call instruction (it's an implicit-def of the BL).

Implemented in CallReturnHandler, and FormalArgHandler.


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