LLVM API Documentation
MI-level patchpoint operands. More...
#include <StackMaps.h>
Public Types | |
enum | { IDPos, NBytesPos, TargetPos, NArgPos, CCPos, MetaEnd } |
Enumerate the meta operands. More... | |
Public Member Functions | |
PatchPointOpers (const MachineInstr *MI) | |
bool | isAnyReg () const |
bool | hasDef () const |
unsigned | getMetaIdx (unsigned Pos=0) const |
const MachineOperand & | getMetaOper (unsigned Pos) |
unsigned | getArgIdx () const |
unsigned | getVarIdx () const |
unsigned | getStackMapStartIdx () const |
unsigned | getNextScratchIdx (unsigned StartIdx=0) const |
Get the next scratch register operand index. More... | |
MI-level patchpoint operands.
MI patchpoint operations take the form: [<def>], <id>, <numBytes>, <target>, <numArgs>, <cc>, ...
IR patchpoint intrinsics do not have the <cc> operand because calling convention is part of the subclass data.
SD patchpoint nodes do not have a def operand because it is part of the SDValue.
Patchpoints following the anyregcc convention are handled specially. For these, the stack map also records the location of the return value and arguments.
Definition at line 37 of file StackMaps.h.
anonymous enum |
Enumerate the meta operands.
Enumerator | |
---|---|
IDPos | |
NBytesPos | |
TargetPos | |
NArgPos | |
CCPos | |
MetaEnd |
Definition at line 40 of file StackMaps.h.
|
explicit |
Definition at line 31 of file StackMaps.cpp.
References getMetaIdx(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), and isReg().
|
inline |
Definition at line 60 of file StackMaps.h.
References getMetaIdx(), and MetaEnd.
Referenced by getStackMapStartIdx().
Definition at line 51 of file StackMaps.h.
References MetaEnd.
Referenced by getArgIdx(), getMetaOper(), getVarIdx(), and PatchPointOpers().
|
inline |
Definition at line 56 of file StackMaps.h.
References getMetaIdx(), and llvm::MachineInstr::getOperand().
Referenced by LowerPATCHPOINT().
Get the next scratch register operand index.
Definition at line 51 of file StackMaps.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), getVarIdx(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isEarlyClobber(), llvm::MachineOperand::isImplicit(), and llvm::MachineOperand::isReg().
Referenced by LowerPATCHPOINT().
|
inline |
Get the index at which stack map locations will be recorded. Arguments are not recorded unless the anyregcc convention is used.
Definition at line 71 of file StackMaps.h.
References getArgIdx(), and getVarIdx().
|
inline |
Get the operand index of the variable list of non-argument operands. These hold the "live state".
Definition at line 64 of file StackMaps.h.
References llvm::MachineOperand::getImm(), getMetaIdx(), llvm::MachineInstr::getOperand(), MetaEnd, and NArgPos.
Referenced by foldPatchpoint(), getNextScratchIdx(), and getStackMapStartIdx().
|
inline |
Definition at line 49 of file StackMaps.h.
|
inline |
Definition at line 48 of file StackMaps.h.