MI-level Statepoint operands
Declared in <llvm/CodeGen/StackMaps.h>
class StatepointOpers;
Statepoint operands take the form: <id>, <num patch bytes >, <num call arguments>, <call target>, [call arguments...], <StackMaps::ConstantOp>, <calling convention>, <StackMaps::ConstantOp>, <statepoint flags>, <StackMaps::ConstantOp>, <num deopt args>, [deopt args...], <StackMaps::ConstantOp>, <num gc pointer args>, [gc pointer args...], <StackMaps::ConstantOp>, <num gc allocas>, [gc allocas args...], <StackMaps::ConstantOp>, <num entries in gc map>, [base/derived pairs] base/derived pairs in gc map are logical indices into <gc pointer args> section. All gc pointers assigned to VRegs produce new value (in form of MI Def operand) and are tied to it.
| Name | Description |
|---|---|
StatepointOpers [constructor] | Construct an accessor for the operands of statepoint instruction MI. |
getCCIdx | Get index of Calling Convention operand. |
getCallTarget | Return the target of the underlying call. |
getCallingConv | Return the calling convention. |
getFirstGCPtrIdx | Get index of first GC pointer operand of -1 if there are none. |
getFlags | Return the statepoint flags. |
getFlagsIdx | Get index of Flags operand. |
getGCPointerMap | Get vector of base/derived pairs from statepoint. Elements are indices into GC Pointer operand list (logical). |
getID | Return the ID for the given statepoint. |
getIDPos | Get index of statepoint ID operand. |
getNBytesPos | Get index of Num Patch Bytes operand. |
getNCallArgsPos | Get index of Num Call Arguments operand. |
getNumAllocaIdx | Get index of number of gc allocas. |
getNumDeoptArgs | Return the number of deoptimization arguments. |
getNumDeoptArgsIdx | Get index of Number Deopt Arguments operand. |
getNumGCPtrIdx | Get index of number of GC pointers. |
getNumGcMapEntriesIdx | Get index of number of gc map entries. |
getNumPatchBytes | Return the number of patchable bytes the given statepoint should emit. |
getVarIdx | Get starting index of non call related arguments (calling convention, statepoint flags, vm state and gc state). |
isFoldableReg | Return true if Reg is used only in operands which can be folded to stack usage. |
| Name | Description |
|---|---|
isFoldableReg | Return true if Reg is used only in operands of MI which can be folded to stack usage and MI is a statepoint instruction. |