LLVM: llvm::MipsCCState Class Reference (original) (raw)
Public Member Functions
MipsCCState (CallingConv::ID CC, bool isVarArg, MachineFunction &MF, SmallVectorImpl< CCValAssign > &locs, LLVMContext &C, SpecialCallingConvType SpecialCC=NoSpecialCallingConv)
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)
getContext () const
Returns the size of the currently allocated portion of the stack.
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.
isAllocated (MCRegister Reg) const
isAllocated - Return true if the specified register (or an alias) is allocated.
LLVM_ABI 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.
LLVM_ABI 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.
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.
LLVM_ABI 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.
LLVM_ABI void
AnalyzeCallOperands (SmallVectorImpl< MVT > &ArgVTs, SmallVectorImpl< ISD::ArgFlagsTy > &Flags, SmallVectorImpl< Type * > &OrigTys, 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.
LLVM_ABI 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.
IsShadowAllocatedReg (MCRegister Reg) const
A shadow allocated register is a register that was allocated but wasn't added to the location list (Locs).
LLVM_ABI void
AnalyzeCallResult (MVT VT, Type *OrigTy, CCAssignFn Fn)
AnalyzeCallResult - Same as above except it's specialized for calls which produce a single value.
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
AllocateReg - Attempt to allocate one register.
AllocateReg (MCPhysReg Reg, MCPhysReg ShadowReg)
Version of AllocateReg with extra register to be shadowed.
AllocateReg (ArrayRef< MCPhysReg > Regs)
AllocateReg - Attempt to allocate one of the specified registers.
AllocateRegBlock (ArrayRef< MCPhysReg > Regs, unsigned RegsRequired)
Attempt to allocate a block of RegsRequired consecutive registers.
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.
LLVM_ABI 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.
LLVM_ABI 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.
getInRegsParamsProcessed () const
void
getInRegsParamInfo (unsigned InRegsParamRecordIndex, unsigned &BeginReg, unsigned &EndReg) const
void
addInRegsParamInfo (unsigned RegBegin, unsigned RegEnd)
void
void
SmallVectorImpl< CCValAssign > &
SmallVectorImpl< ISD::ArgFlagsTy > &
LLVM_ABI void
getRemainingRegParmsForType (SmallVectorImpl< MCRegister > &Regs, MVT VT, CCAssignFn Fn)
Compute the remaining unused register parameters that would be used for the given value type.
LLVM_ABI 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.
Definition at line 20 of file MipsCCState.h.