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)

SpecialCallingConvType

getSpecialCallingConv ()

Public Member Functions inherited from llvm::CCState

LLVM_ABI

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.

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.

LLVM_ABI 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.

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.

LLVM_ABI bool

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.

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.

MCRegister

AllocateReg (ArrayRef< MCPhysReg > Regs)

AllocateReg - Attempt to allocate one of the specified registers.

ArrayRef< MCPhysReg >

AllocateRegBlock (ArrayRef< MCPhysReg > Regs, unsigned RegsRequired)

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.

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.

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 ()

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.