LLVM: llvm::CallLowering::ValueAssigner Struct Reference (original) (raw)

Argument handling is mostly uniform between the four places that make these decisions: function formal arguments, call instruction args, call instruction returns and function returns. More...

#include "[llvm/CodeGen/GlobalISel/CallLowering.h](CallLowering%5F8h%5Fsource.html)"

Public Member Functions
ValueAssigner (bool IsIncoming, CCAssignFn *AssignFn_, CCAssignFn *AssignFnVarArg_=nullptr)
virtual ~ValueAssigner ()=default
bool isIncomingArgumentHandler () const
Returns true if the handler is dealing with incoming arguments, i.e.
virtual bool assignArg (unsigned ValNo, EVT OrigVT, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, const ArgInfo &Info, ISD::ArgFlagsTy Flags, CCState &State)
Wrap call to (typically tablegenerated CCAssignFn).
CCAssignFn * getAssignFn (bool IsVarArg) const
Select the appropriate assignment function depending on whether this is a variadic call.
Public Attributes
CCAssignFn * AssignFn
Assignment function to use for a general call.
CCAssignFn * AssignFnVarArg
Assignment function to use for a variadic call.
uint64_t StackSize = 0
The size of the currently allocated portion of the stack.

Argument handling is mostly uniform between the four places that make these decisions: function formal arguments, call instruction args, call instruction returns and function returns.

However, once a decision has been made on where an argument should go, exactly what happens can vary slightly. This class abstracts the differences.

ValueAssigner should not depend on any specific function state, and only determine the types and locations for arguments.

Definition at line 175 of file CallLowering.h.

llvm::CallLowering::ValueAssigner::ValueAssigner ( bool IsIncoming, CCAssignFn * AssignFn_, CCAssignFn * AssignFnVarArg_ = nullptr ) inline

~ValueAssigner()

virtual llvm::CallLowering::ValueAssigner::~ValueAssigner ( ) virtualdefault

assignArg()

getAssignFn()

CCAssignFn * llvm::CallLowering::ValueAssigner::getAssignFn ( bool IsVarArg) const inline

isIncomingArgumentHandler()

bool llvm::CallLowering::ValueAssigner::isIncomingArgumentHandler ( ) const inline

Returns true if the handler is dealing with incoming arguments, i.e.

those that move values from some physical location to vregs.

Definition at line 191 of file CallLowering.h.

AssignFn

CCAssignFn* llvm::CallLowering::ValueAssigner::AssignFn

AssignFnVarArg

CCAssignFn* llvm::CallLowering::ValueAssigner::AssignFnVarArg

StackSize

uint64_t llvm::CallLowering::ValueAssigner::StackSize = 0


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