LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::M68kCCState Struct Reference

Custom state to propagate llvm type info to register CC assigner. More...

#include "Target/M68k/M68kCallingConv.h"

Inheritance diagram for llvm::M68kCCState:
Inheritance graph
[legend]

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)
 
LLVMContextgetContext () const
 
MachineFunctiongetMachineFunction () 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.
 

Detailed Description

Custom state to propagate llvm type info to register CC assigner.

Definition at line 27 of file M68kCallingConv.h.

Constructor & Destructor Documentation

◆ M68kCCState()

llvm::M68kCCState::M68kCCState ( ArrayRef< Type * >  ArgTypes,
CallingConv::ID  CC,
bool  IsVarArg,
MachineFunction MF,
SmallVectorImpl< CCValAssign > &  Locs,
LLVMContext C 
)
inline

Definition at line 30 of file M68kCallingConv.h.

Member Data Documentation

◆ ArgTypeList

ArrayRef<Type *> llvm::M68kCCState::ArgTypeList

Definition at line 28 of file M68kCallingConv.h.

Referenced by llvm::CC_M68k_Any_AssignToReg().


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