LLVM: llvm::StatepointOpers Class Reference (original) (raw)

MI-level Statepoint operands. More...

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

Public Member Functions
StatepointOpers (const MachineInstr *MI)
unsigned getIDPos () const
Get index of statepoint ID operand.
unsigned getNBytesPos () const
Get index of Num Patch Bytes operand.
unsigned getNCallArgsPos () const
Get index of Num Call Arguments operand.
unsigned getVarIdx () const
Get starting index of non call related arguments (calling convention, statepoint flags, vm state and gc state).
unsigned getCCIdx () const
Get index of Calling Convention operand.
unsigned getFlagsIdx () const
Get index of Flags operand.
unsigned getNumDeoptArgsIdx () const
Get index of Number Deopt Arguments operand.
uint64_t getID () const
Return the ID for the given statepoint.
uint32_t getNumPatchBytes () const
Return the number of patchable bytes the given statepoint should emit.
const MachineOperand & getCallTarget () const
Return the target of the underlying call.
CallingConv::ID getCallingConv () const
Return the calling convention.
uint64_t getFlags () const
Return the statepoint flags.
uint64_t getNumDeoptArgs () const
LLVM_ABI unsigned getNumGcMapEntriesIdx ()
Get index of number of gc map entries.
LLVM_ABI unsigned getNumAllocaIdx ()
Get index of number of gc allocas.
LLVM_ABI unsigned getNumGCPtrIdx ()
Get index of number of GC pointers.
LLVM_ABI int getFirstGCPtrIdx ()
Get index of first GC pointer operand of -1 if there are none.
LLVM_ABI unsigned getGCPointerMap (SmallVectorImpl< std::pair< unsigned, unsigned > > &GCMap)
Get vector of base/derived pairs from statepoint.
LLVM_ABI bool isFoldableReg (Register Reg) const
Return true if Reg is used only in operands which can be folded to stack usage.

MI-level Statepoint operands.

Statepoint operands take the form: , , , , [call arguments...], StackMaps::ConstantOp, , StackMaps::ConstantOp, , StackMaps::ConstantOp, , [deopt args...], StackMaps::ConstantOp, , [gc pointer args...], StackMaps::ConstantOp, , [gc allocas args...], StackMaps::ConstantOp, , [base/derived pairs] base/derived pairs in gc map are logical indices into section. All gc pointers assigned to VRegs produce new value (in form of MI Def operand) and are tied to it.

Definition at line 159 of file StackMaps.h.

getCallingConv()

getCallTarget()

getCCIdx()

unsigned llvm::StatepointOpers::getCCIdx ( ) const inline

getFirstGCPtrIdx()

int StatepointOpers::getFirstGCPtrIdx ( )

getFlags()

uint64_t llvm::StatepointOpers::getFlags ( ) const inline

getFlagsIdx()

unsigned llvm::StatepointOpers::getFlagsIdx ( ) const inline

getGCPointerMap()

getID()

uint64_t llvm::StatepointOpers::getID ( ) const inline

getIDPos()

unsigned llvm::StatepointOpers::getIDPos ( ) const inline

getNBytesPos()

unsigned llvm::StatepointOpers::getNBytesPos ( ) const inline

Get index of Num Patch Bytes operand.

Definition at line 182 of file StackMaps.h.

getNCallArgsPos()

unsigned llvm::StatepointOpers::getNCallArgsPos ( ) const inline

Get index of Num Call Arguments operand.

Definition at line 185 of file StackMaps.h.

getNumAllocaIdx()

unsigned StatepointOpers::getNumAllocaIdx ( )

getNumDeoptArgs()

uint64_t llvm::StatepointOpers::getNumDeoptArgs ( ) const inline

getNumDeoptArgsIdx()

unsigned llvm::StatepointOpers::getNumDeoptArgsIdx ( ) const inline

getNumGcMapEntriesIdx()

unsigned StatepointOpers::getNumGcMapEntriesIdx ( )

getNumGCPtrIdx()

unsigned StatepointOpers::getNumGCPtrIdx ( )

getNumPatchBytes()

uint32_t llvm::StatepointOpers::getNumPatchBytes ( ) const inline

getVarIdx()

unsigned llvm::StatepointOpers::getVarIdx ( ) const inline

isFoldableReg() [1/2]

Return true if Reg is used only in operands of MI which can be folded to stack usage and MI is a statepoint instruction.

Definition at line 159 of file StackMaps.cpp.

References StatepointOpers().

isFoldableReg() [2/2]

Return true if Reg is used only in operands which can be folded to stack usage.

Definition at line 148 of file StackMaps.cpp.

References getVarIdx().


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