LLVM 20.0.0git
|
Custom state to propagate llvm type info to register CC assigner. More...
#include "Target/M68k/M68kCallingConv.h"
Public Member Functions | |
M68kCCState (ArrayRef< Type * > ArgTypes, CallingConv::ID CC, bool IsVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &Locs, LLVMContext &C) | |
Public Member Functions inherited from llvm::CCState | |
CCState (CallingConv::ID CC, bool IsVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &Locs, LLVMContext &Context, bool NegativeOffsets=false) | |
void | addLoc (const CCValAssign &V) |
LLVMContext & | getContext () const |
MachineFunction & | getMachineFunction () const |
CallingConv::ID | getCallingConv () const |
bool | isVarArg () const |
uint64_t | getStackSize () const |
Returns the size of the currently allocated portion of the stack. | |
uint64_t | getAlignedCallFrameSize () const |
getAlignedCallFrameSize - Return the size of the call frame needed to be able to store all arguments and such that the alignment requirement of each of the arguments is satisfied. | |
bool | isAllocated (MCRegister Reg) const |
isAllocated - Return true if the specified register (or an alias) is allocated. | |
void | AnalyzeFormalArguments (const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn) |
AnalyzeFormalArguments - Analyze an array of argument values, incorporating info about the formals into this state. | |
void | AnalyzeArguments (const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn) |
The function will invoke AnalyzeFormalArguments. | |
void | AnalyzeReturn (const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn) |
AnalyzeReturn - Analyze the returned values of a return, incorporating info about the result values into this state. | |
bool | CheckReturn (const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn) |
CheckReturn - Analyze the return values of a function, returning true if the return can be performed without sret-demotion, and false otherwise. | |
void | AnalyzeCallOperands (const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn) |
AnalyzeCallOperands - Analyze the outgoing arguments to a call, incorporating info about the passed values into this state. | |
void | AnalyzeCallOperands (SmallVectorImpl< MVT > &ArgVTs, SmallVectorImpl< ISD::ArgFlagsTy > &Flags, CCAssignFn Fn) |
AnalyzeCallOperands - Same as above except it takes vectors of types and argument flags. | |
void | AnalyzeArguments (const SmallVectorImpl< ISD::OutputArg > &Outs, CCAssignFn Fn) |
The function will invoke AnalyzeCallOperands. | |
void | AnalyzeCallResult (const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn Fn) |
AnalyzeCallResult - Analyze the return values of a call, incorporating info about the passed values into this state. | |
bool | IsShadowAllocatedReg (MCRegister Reg) const |
A shadow allocated register is a register that was allocated but wasn't added to the location list (Locs). | |
void | AnalyzeCallResult (MVT VT, CCAssignFn Fn) |
AnalyzeCallResult - Same as above except it's specialized for calls which produce a single value. | |
unsigned | getFirstUnallocated (ArrayRef< MCPhysReg > Regs) const |
getFirstUnallocated - Return the index of the first unallocated register in the set, or Regs.size() if they are all allocated. | |
void | DeallocateReg (MCPhysReg Reg) |
MCRegister | AllocateReg (MCPhysReg Reg) |
AllocateReg - Attempt to allocate one register. | |
MCRegister | AllocateReg (MCPhysReg Reg, MCPhysReg ShadowReg) |
Version of AllocateReg with extra register to be shadowed. | |
MCPhysReg | AllocateReg (ArrayRef< MCPhysReg > Regs) |
AllocateReg - Attempt to allocate one of the specified registers. | |
MCPhysReg | AllocateRegBlock (ArrayRef< MCPhysReg > Regs, unsigned RegsRequired) |
AllocateRegBlock - Attempt to allocate a block of RegsRequired consecutive registers. | |
MCRegister | AllocateReg (ArrayRef< MCPhysReg > Regs, const MCPhysReg *ShadowRegs) |
Version of AllocateReg with list of registers to be shadowed. | |
int64_t | AllocateStack (unsigned Size, Align Alignment) |
AllocateStack - Allocate a chunk of stack space with the specified size and alignment. | |
void | ensureMaxAlignment (Align Alignment) |
int64_t | AllocateStack (unsigned Size, Align Alignment, ArrayRef< MCPhysReg > ShadowRegs) |
Version of AllocateStack with list of extra registers to be shadowed. | |
void | HandleByVal (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, int MinSize, Align MinAlign, ISD::ArgFlagsTy ArgFlags) |
Allocate space on the stack large enough to pass an argument by value. | |
unsigned | getInRegsParamsCount () const |
unsigned | getInRegsParamsProcessed () const |
void | getInRegsParamInfo (unsigned InRegsParamRecordIndex, unsigned &BeginReg, unsigned &EndReg) const |
void | addInRegsParamInfo (unsigned RegBegin, unsigned RegEnd) |
bool | nextInRegsParam () |
void | clearByValRegsInfo () |
void | rewindByValRegsInfo () |
SmallVectorImpl< CCValAssign > & | getPendingLocs () |
SmallVectorImpl< ISD::ArgFlagsTy > & | getPendingArgFlags () |
void | getRemainingRegParmsForType (SmallVectorImpl< MCPhysReg > &Regs, MVT VT, CCAssignFn Fn) |
Compute the remaining unused register parameters that would be used for the given value type. | |
void | analyzeMustTailForwardedRegisters (SmallVectorImpl< ForwardedRegister > &Forwards, ArrayRef< MVT > RegParmTypes, CCAssignFn Fn) |
Compute the set of registers that need to be preserved and forwarded to any musttail calls. | |
template<class T > | |
void | AnalyzeArgumentsSecondPass (const SmallVectorImpl< T > &Args, CCAssignFn Fn) |
The function runs an additional analysis pass over function arguments. | |
Public Attributes | |
ArrayRef< Type * > | ArgTypeList |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::CCState | |
static bool | resultsCompatible (CallingConv::ID CalleeCC, CallingConv::ID CallerCC, MachineFunction &MF, LLVMContext &C, const SmallVectorImpl< ISD::InputArg > &Ins, CCAssignFn CalleeFn, CCAssignFn CallerFn) |
Returns true if the results of the two calling conventions are compatible. | |
Custom state to propagate llvm type info to register CC assigner.
Definition at line 27 of file M68kCallingConv.h.
|
inline |
Definition at line 30 of file M68kCallingConv.h.
Definition at line 28 of file M68kCallingConv.h.
Referenced by llvm::CC_M68k_Any_AssignToReg().