MachineOperand class ‐ Representation of each machine instruction operand.
Synopsis
Declared in <llvm/CodeGen/MachineOperand.h>
class MachineOperand;
Description
This class isn't a POD type because it has a private constructor, but its destructor must be trivial. Functions like MachineInstr::addOperand(), MachineRegisterInfo::moveOperands(), and MF::DeleteMachineInstr() depend on not having to call the MachineOperand destructor.
Enums
Name |
Description |
Discriminator for the kind of value stored in a MachineOperand. |
Member Functions
Name |
Description |
Replace this operand with a new block address operand. |
|
Replace this operand with a new constant pool index operand. |
|
Replace this operand with an instruction reference. |
|
Replace this operand with a new external symbol operand. |
|
Replace this operand with an FP immediate of value |
|
Replace this operand with a frame index. |
|
Replace this operand with a new global address operand. |
|
Replace this operand with an immediate of value |
|
Replace this operand with a new MC symbol operand. |
|
Replace this operand with a register operand of value |
|
Replace this operand with a target index. |
|
Or the given flags into this operand's target‐specific flags. |
|
clearParent ‐ Reset the parent pointer. |
|
Return true if this RegMask operand clobbers |
|
Dump this MachineOperand to dbgs() for debugging. |
|
Return the BlockAddress referenced by this operand. |
|
Return the CFI instruction index of this MO_CFIIndex operand. |
|
Return the ConstantInt for this MO_CImmediate operand. |
|
Return the ConstantFP for this MO_FPImmediate operand. |
|
Return the GlobalValue referenced by this operand. |
|
Return the immediate integer value of this MO_Immediate operand. |
|
Return the frame index, constant‐pool index, target index, or jump‐table index stored in this operand. |
|
Return the instruction index of this MO_DbgInstrRef operand. |
|
Return the operand index of this MO_DbgInstrRef operand. |
|
Return the Intrinsic::ID of this MO_IntrinsicID operand. |
|
Return the lane mask of this MO_LaneMask operand. |
|
Return the MachineBasicBlock referenced by this operand. |
|
Return the MCSymbol referenced by this operand. |
|
Return the MDNode of this MO_Metadata operand. |
|
Return the offset from the symbol in this operand. This always returns 0 for ExternalSymbol operands. |
|
Returns the index of this operand in the instruction that it belongs to. |
|
|
|
Return the generic ISel predicate value of this operand. |
|
getReg ‐ Returns the register number. |
|
getRegLiveOut ‐ Returns a bit mask of live‐out registers. |
|
getRegMask ‐ Returns a bit mask of registers preserved by this RegMask operand. |
|
Return the shuffle mask of this MO_ShuffleMask operand. |
|
Return the subregister index for this register operand, or 0 if none. |
|
Return the external symbol name of this MO_ExternalSymbol operand. |
|
Return target‐specific flags carried by non‐register operands; always zero for register operands. |
|
Return the name of this TargetIndex operand, or nullptr if unnamed. |
|
getType ‐ Returns the MachineOperandType for this operand. |
|
isBlockAddress ‐ Tests if this is a MO_BlockAddress operand. |
|
Return true if this is a MO_CFIIndex operand. |
|
isCImm ‐ Test if this is a MO_CImmediate operand. |
|
isCPI ‐ Tests if this is a MO_ConstantPoolIndex operand. |
|
Tests if this is a MO_DbgInstrRef operand. |
|
Return true if this register definition is dead on exit from the instruction. |
|
Return true if this is a debug‐only register use. |
|
Return true if this register operand is a definition. |
|
Return true if this register definition is an early clobber. |
|
isFI ‐ Tests if this is a MO_FrameIndex operand. |
|
isFPImm ‐ Tests if this is a MO_FPImmediate operand. |
|
isGlobal ‐ Tests if this is a MO_GlobalAddress operand. |
|
Return true if this operand matches |
|
isImm ‐ Tests if this is a MO_Immediate operand. |
|
Return true if this register operand is an implicit use or definition. |
|
Return true if this register operand reads a value defined inside the same instruction or bundle. |
|
Return true if this is a MO_IntrinsicID operand. |
|
isJTI ‐ Tests if this is a MO_JumpTableIndex operand. |
|
Return true if this use is a kill (last use on this path). |
|
Return true if this is a MO_LaneMask operand. |
|
isMBB ‐ Tests if this is a MO_MachineBasicBlock operand. |
|
Return true if this is a MO_MCSymbol operand. |
|
isMetadata ‐ Tests if this is a MO_Metadata operand. |
|
Return true if this is a MO_Predicate operand. |
|
isReg ‐ Tests if this is a MO_Register operand. |
|
isRegLiveOut ‐ Tests if this is a MO_RegisterLiveOut operand. |
|
isRegMask ‐ Tests if this is a MO_RegisterMask operand. |
|
Return true if this physical register operand may be renamed. |
|
Return true if this is a MO_ShuffleMask operand. |
|
isSymbol ‐ Tests if this is a MO_ExternalSymbol operand. |
|
isTargetIndex ‐ Tests if this is a MO_TargetIndex operand. |
|
Return true if this register operand is tied to another operand. |
|
Return true if this register operand reads an undef (don't‐care) value. |
|
Return true if this register operand is a use rather than a definition. |
|
Return true if this operand can validly be appended to an arbitrary operand list. i.e. this behaves like an implicit operand. |
|
|
|
Return true if this operand reads the previous value of its register. |
|
Set the ConstantInt of this MO_CImmediate operand. |
|
Set the ConstantFP of this MO_FPImmediate operand. |
|
Set the immediate integer value of this MO_Immediate operand. |
|
Mark whether this register operand is implicit. |
|
Set the frame, constant‐pool, target, or jump‐table index. |
|
Set the instruction index of this MO_DbgInstrRef operand. |
|
Set the operand index of this MO_DbgInstrRef operand. |
|
Set the Intrinsic::ID of this MO_IntrinsicID operand. |
|
Mark whether this definition is dead. |
|
Mark whether this is a debug‐only register use. |
|
Change a def to a use, or a use to a def. |
|
Mark whether this definition is an early clobber. |
|
Mark whether this operand reads a value defined in the same instruction. |
|
Mark whether this use is a kill. |
|
Mark whether this physical register operand may be renamed. |
|
Set whether this register operand reads an undef (don't‐care) value. |
|
Mark this register operand as a use (or definition if |
|
Set the MachineBasicBlock referenced by this operand. |
|
Set the metadata node for a MO_Metadata operand. |
|
Set the symbol or address offset for this operand. |
|
Set the generic ISel predicate of this MO_Predicate operand. |
|
Change the register this operand corresponds to. |
|
Set the register mask for this MO_RegisterMask operand. |
|
Set the subregister index for this register operand. |
|
Set the target‐specific flags for this non‐register operand. |
|
Substitute the current register with physical register |
|
Substitute the current register with the virtual subregister Reg:SubIdx. |
Static Member Functions
Name |
Description |
Create a block‐address machine operand for |
|
Create a CFI instruction index machine operand. |
|
Create a constant‐integer machine operand from |
|
Create a constant‐pool index machine operand. |
|
Create a debug instruction‐reference machine operand. |
|
Create an external‐symbol machine operand. |
|
Create a frame‐index machine operand. |
|
Create a floating‐point immediate machine operand from |
|
Create a global‐address operand for |
|
Create an immediate integer machine operand with value |
|
Create an Intrinsic::ID machine operand. |
|
Create a jump‐table index machine operand. |
|
Create a lane‐mask machine operand. |
|
Create a MachineBasicBlock reference operand. |
|
Create an MCSymbol machine operand. |
|
Create a metadata machine operand. |
|
Create a generic ISel predicate machine operand. |
|
Create a register machine operand. |
|
Create a live‐out register mask operand. |
|
Create a register mask operand referencing |
|
Create a shuffle‐mask machine operand. |
|
Create a target‐index machine operand. |
|
Return true if register mask |
|
Returns number of elements needed for a regmask array. |
|
Print an IR slot number. |
|
Print the offset with explicit +/‐ signs. |
|
Print a stack object reference. |
|
Print a subreg index operand. |
|
Print a MCSymbol as an operand. |
|
Print operand target flags. |
Friends
Name |
Description |
DenseMapInfo specialization so MachineOperand can be used as a DenseMap key. |
|
MachineRegisterInfo ‐ Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc. |
|
Representation of each machine instruction. |
|
MachineOperand hash_value overload. |
Non-Member Functions
Name |
Description |
Get all register state flags from machine operand |
|
Return an iterator |
|
Return an iterator |
|
Compute a stable hash of machine operand |
Created with MrDocs