class MachineOperand
Declaration
class MachineOperand { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:50
Method Overview
- public void ChangeToES(const char * SymName, unsigned int TargetFlags = 0)
- public void ChangeToFPImmediate(const llvm::ConstantFP * FPImm)
- public void ChangeToFrameIndex(int Idx)
- public void ChangeToGA(const llvm::GlobalValue * GV, int64_t Offset, unsigned int TargetFlags = 0)
- public void ChangeToImmediate(int64_t ImmVal)
- public void ChangeToMCSymbol(llvm::MCSymbol * Sym)
- public void ChangeToRegister(llvm::Register Reg, bool isDef, bool isImp = false, bool isKill = false, bool isDead = false, bool isUndef = false, bool isDebug = false)
- public void ChangeToTargetIndex(unsigned int Idx, int64_t Offset, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateBA(const llvm::BlockAddress * BA, int64_t Offset, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateCFIIndex(unsigned int CFIIndex)
- public static llvm::MachineOperand CreateCImm(const llvm::ConstantInt * CI)
- public static llvm::MachineOperand CreateCPI(unsigned int Idx, int Offset, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateES(const char * SymName, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateFI(int Idx)
- public static llvm::MachineOperand CreateFPImm(const llvm::ConstantFP * CFP)
- public static llvm::MachineOperand CreateGA(const llvm::GlobalValue * GV, int64_t Offset, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateImm(int64_t Val)
- public static llvm::MachineOperand CreateIntrinsicID(Intrinsic::ID ID)
- public static llvm::MachineOperand CreateJTI(unsigned int Idx, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateMBB(llvm::MachineBasicBlock * MBB, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateMCSymbol(llvm::MCSymbol * Sym, unsigned int TargetFlags = 0)
- public static llvm::MachineOperand CreateMetadata(const llvm::MDNode * Meta)
- public static llvm::MachineOperand CreatePredicate(unsigned int Pred)
- public static llvm::MachineOperand CreateReg(llvm::Register Reg, bool isDef, bool isImp = false, bool isKill = false, bool isDead = false, bool isUndef = false, bool isEarlyClobber = false, unsigned int SubReg = 0, bool isDebug = false, bool isInternalRead = false, bool isRenamable = false)
- public static llvm::MachineOperand CreateRegLiveOut(const uint32_t * Mask)
- public static llvm::MachineOperand CreateRegMask(const uint32_t * Mask)
- public static llvm::MachineOperand CreateShuffleMask(ArrayRef<int> Mask)
- public static llvm::MachineOperand CreateTargetIndex(unsigned int Idx, int64_t Offset, unsigned int TargetFlags = 0)
- public void addTargetFlag(unsigned int F)
- public void clearParent()
- public static bool clobbersPhysReg(const uint32_t * RegMask, unsigned int PhysReg)
- public bool clobbersPhysReg(unsigned int PhysReg) const
- public void dump() const
- public const llvm::BlockAddress * getBlockAddress() const
- public unsigned int getCFIIndex() const
- public const llvm::ConstantInt * getCImm() const
- public const llvm::ConstantFP * getFPImm() const
- public const llvm::GlobalValue * getGlobal() const
- public int64_t getImm() const
- public int getIndex() const
- public Intrinsic::ID getIntrinsicID() const
- public llvm::MachineBasicBlock * getMBB() const
- public llvm::MCSymbol * getMCSymbol() const
- public const llvm::MDNode * getMetadata() const
- public int64_t getOffset() const
- public const llvm::MachineInstr * getParent() const
- public llvm::MachineInstr * getParent()
- public unsigned int getPredicate() const
- public llvm::Register getReg() const
- public const uint32_t * getRegLiveOut() const
- public const uint32_t * getRegMask() const
- public static unsigned int getRegMaskSize(unsigned int NumRegs)
- public ArrayRef<int> getShuffleMask() const
- public unsigned int getSubReg() const
- public const char * getSymbolName() const
- public unsigned int getTargetFlags() const
- public llvm::MachineOperand::MachineOperandType getType() const
- public bool isBlockAddress() const
- public bool isCFIIndex() const
- public bool isCImm() const
- public bool isCPI() const
- public bool isDead() const
- public bool isDebug() const
- public bool isDef() const
- public bool isEarlyClobber() const
- public bool isFI() const
- public bool isFPImm() const
- public bool isGlobal() const
- public bool isIdenticalTo(const llvm::MachineOperand & Other) const
- public bool isImm() const
- public bool isImplicit() const
- public bool isInternalRead() const
- public bool isIntrinsicID() const
- public bool isJTI() const
- public bool isKill() const
- public bool isMBB() const
- public bool isMCSymbol() const
- public bool isMetadata() const
- public bool isPredicate() const
- public bool isReg() const
- public bool isRegLiveOut() const
- public bool isRegMask() const
- public bool isRenamable() const
- public bool isShuffleMask() const
- public bool isSymbol() const
- public bool isTargetIndex() const
- public bool isTied() const
- public bool isUndef() const
- public bool isUse() const
- public void print(llvm::raw_ostream & os, llvm::ModuleSlotTracker & MST, llvm::LLT TypeToPrint, Optional<unsigned int> OpIdx, bool PrintDef, bool IsStandalone, bool ShouldPrintRegisterTies, unsigned int TiedOperandIdx, const llvm::TargetRegisterInfo * TRI, const llvm::TargetIntrinsicInfo * IntrinsicInfo) const
- public void print(llvm::raw_ostream & os, llvm::LLT TypeToPrint, const llvm::TargetRegisterInfo * TRI = nullptr, const llvm::TargetIntrinsicInfo * IntrinsicInfo = nullptr) const
- public void print(llvm::raw_ostream & os, const llvm::TargetRegisterInfo * TRI = nullptr, const llvm::TargetIntrinsicInfo * IntrinsicInfo = nullptr) const
- public static void printIRSlotNumber(llvm::raw_ostream & OS, int Slot)
- public static void printOperandOffset(llvm::raw_ostream & OS, int64_t Offset)
- public static void printStackObjectReference(llvm::raw_ostream & OS, unsigned int FrameIndex, bool IsFixed, llvm::StringRef Name)
- public static void printSubRegIdx(llvm::raw_ostream & OS, uint64_t Index, const llvm::TargetRegisterInfo * TRI)
- public static void printSymbol(llvm::raw_ostream & OS, llvm::MCSymbol & Sym)
- public static void printTargetFlags(llvm::raw_ostream & OS, const llvm::MachineOperand & Op)
- public bool readsReg() const
- public void setCImm(const llvm::ConstantInt * CI)
- public void setFPImm(const llvm::ConstantFP * CFP)
- public void setImm(int64_t immVal)
- public void setImplicit(bool Val = true)
- public void setIndex(int Idx)
- public void setIsDead(bool Val = true)
- public void setIsDebug(bool Val = true)
- public void setIsDef(bool Val = true)
- public void setIsEarlyClobber(bool Val = true)
- public void setIsInternalRead(bool Val = true)
- public void setIsKill(bool Val = true)
- public void setIsRenamable(bool Val = true)
- public void setIsUndef(bool Val = true)
- public void setIsUse(bool Val = true)
- public void setMBB(llvm::MachineBasicBlock * MBB)
- public void setMetadata(const llvm::MDNode * MD)
- public void setOffset(int64_t Offset)
- public void setPredicate(unsigned int Predicate)
- public void setReg(llvm::Register Reg)
- public void setRegMask(const uint32_t * RegMaskPtr)
- public void setSubReg(unsigned int subReg)
- public void setTargetFlags(unsigned int F)
- public void substPhysReg(llvm::MCRegister Reg, const llvm::TargetRegisterInfo &)
- public void substVirtReg(llvm::Register Reg, unsigned int SubIdx, const llvm::TargetRegisterInfo &)
Methods
¶void ChangeToES(const char* SymName,
unsigned int TargetFlags = 0)
void ChangeToES(const char* SymName,
unsigned int TargetFlags = 0)
Description
ChangeToES - Replace this operand with a new external symbol operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:734
Parameters
- const char* SymName
- unsigned int TargetFlags = 0
¶void ChangeToFPImmediate(
const llvm::ConstantFP* FPImm)
void ChangeToFPImmediate(
const llvm::ConstantFP* FPImm)
Description
ChangeToFPImmediate - Replace this operand with a new FP immediate operand of the specified value. If an operand is known to be an FP immediate already, the setFPImm method should be used.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:731
Parameters
- const llvm::ConstantFP* FPImm
¶void ChangeToFrameIndex(int Idx)
void ChangeToFrameIndex(int Idx)
Description
Replace this operand with a frame index.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:744
Parameters
- int Idx
¶void ChangeToGA(const llvm::GlobalValue* GV,
int64_t Offset,
unsigned int TargetFlags = 0)
void ChangeToGA(const llvm::GlobalValue* GV,
int64_t Offset,
unsigned int TargetFlags = 0)
Description
ChangeToGA - Replace this operand with a new global address operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:737
Parameters
- const llvm::GlobalValue* GV
- int64_t Offset
- unsigned int TargetFlags = 0
¶void ChangeToImmediate(int64_t ImmVal)
void ChangeToImmediate(int64_t ImmVal)
Description
ChangeToImmediate - Replace this operand with a new immediate operand of the specified value. If an operand is known to be an immediate already, the setImm method should be used.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:726
Parameters
- int64_t ImmVal
¶void ChangeToMCSymbol(llvm::MCSymbol* Sym)
void ChangeToMCSymbol(llvm::MCSymbol* Sym)
Description
ChangeToMCSymbol - Replace this operand with a new MC symbol operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:741
Parameters
- llvm::MCSymbol* Sym
¶void ChangeToRegister(llvm::Register Reg,
bool isDef,
bool isImp = false,
bool isKill = false,
bool isDead = false,
bool isUndef = false,
bool isDebug = false)
void ChangeToRegister(llvm::Register Reg,
bool isDef,
bool isImp = false,
bool isKill = false,
bool isDead = false,
bool isUndef = false,
bool isDebug = false)
Description
ChangeToRegister - Replace this operand with a new register operand of the specified value. If an operand is known to be an register already, the setReg method should be used.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:753
Parameters
- llvm::Register Reg
- bool isDef
- bool isImp = false
- bool isKill = false
- bool isDead = false
- bool isUndef = false
- bool isDebug = false
¶void ChangeToTargetIndex(
unsigned int Idx,
int64_t Offset,
unsigned int TargetFlags = 0)
void ChangeToTargetIndex(
unsigned int Idx,
int64_t Offset,
unsigned int TargetFlags = 0)
Description
Replace this operand with a target index.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:747
Parameters
- unsigned int Idx
- int64_t Offset
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateBA(
const llvm::BlockAddress* BA,
int64_t Offset,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateBA(
const llvm::BlockAddress* BA,
int64_t Offset,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:854
Parameters
- const llvm::BlockAddress* BA
- int64_t Offset
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateCFIIndex(
unsigned int CFIIndex)
static llvm::MachineOperand CreateCFIIndex(
unsigned int CFIIndex)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:901
Parameters
- unsigned int CFIIndex
¶static llvm::MachineOperand CreateCImm(
const llvm::ConstantInt* CI)
static llvm::MachineOperand CreateCImm(
const llvm::ConstantInt* CI)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:767
Parameters
- const llvm::ConstantInt* CI
¶static llvm::MachineOperand CreateCPI(
unsigned int Idx,
int Offset,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateCPI(
unsigned int Idx,
int Offset,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:816
Parameters
- unsigned int Idx
- int Offset
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateES(
const char* SymName,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateES(
const char* SymName,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:846
Parameters
- const char* SymName
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateFI(int Idx)
static llvm::MachineOperand CreateFI(int Idx)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:811
Parameters
- int Idx
¶static llvm::MachineOperand CreateFPImm(
const llvm::ConstantFP* CFP)
static llvm::MachineOperand CreateFPImm(
const llvm::ConstantFP* CFP)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:773
Parameters
- const llvm::ConstantFP* CFP
¶static llvm::MachineOperand CreateGA(
const llvm::GlobalValue* GV,
int64_t Offset,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateGA(
const llvm::GlobalValue* GV,
int64_t Offset,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:838
Parameters
- const llvm::GlobalValue* GV
- int64_t Offset
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateImm(int64_t Val)
static llvm::MachineOperand CreateImm(int64_t Val)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:761
Parameters
- int64_t Val
¶static llvm::MachineOperand CreateIntrinsicID(
Intrinsic::ID ID)
static llvm::MachineOperand CreateIntrinsicID(
Intrinsic::ID ID)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:907
Parameters
- Intrinsic::ID ID
¶static llvm::MachineOperand CreateJTI(
unsigned int Idx,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateJTI(
unsigned int Idx,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:832
Parameters
- unsigned int Idx
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateMBB(
llvm::MachineBasicBlock* MBB,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateMBB(
llvm::MachineBasicBlock* MBB,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:804
Parameters
- llvm::MachineBasicBlock* MBB
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateMCSymbol(
llvm::MCSymbol* Sym,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateMCSymbol(
llvm::MCSymbol* Sym,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:892
Parameters
- llvm::MCSymbol* Sym
- unsigned int TargetFlags = 0
¶static llvm::MachineOperand CreateMetadata(
const llvm::MDNode* Meta)
static llvm::MachineOperand CreateMetadata(
const llvm::MDNode* Meta)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:886
Parameters
- const llvm::MDNode* Meta
¶static llvm::MachineOperand CreatePredicate(
unsigned int Pred)
static llvm::MachineOperand CreatePredicate(
unsigned int Pred)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:913
Parameters
- unsigned int Pred
¶static llvm::MachineOperand CreateReg(
llvm::Register Reg,
bool isDef,
bool isImp = false,
bool isKill = false,
bool isDead = false,
bool isUndef = false,
bool isEarlyClobber = false,
unsigned int SubReg = 0,
bool isDebug = false,
bool isInternalRead = false,
bool isRenamable = false)
static llvm::MachineOperand CreateReg(
llvm::Register Reg,
bool isDef,
bool isImp = false,
bool isKill = false,
bool isDead = false,
bool isUndef = false,
bool isEarlyClobber = false,
unsigned int SubReg = 0,
bool isDebug = false,
bool isInternalRead = false,
bool isRenamable = false)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:779
Parameters
- llvm::Register Reg
- bool isDef
- bool isImp = false
- bool isKill = false
- bool isDead = false
- bool isUndef = false
- bool isEarlyClobber = false
- unsigned int SubReg = 0
- bool isDebug = false
- bool isInternalRead = false
- bool isRenamable = false
¶static llvm::MachineOperand CreateRegLiveOut(
const uint32_t* Mask)
static llvm::MachineOperand CreateRegLiveOut(
const uint32_t* Mask)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:880
Parameters
- const uint32_t* Mask
¶static llvm::MachineOperand CreateRegMask(
const uint32_t* Mask)
static llvm::MachineOperand CreateRegMask(
const uint32_t* Mask)
Description
CreateRegMask - Creates a register mask operand referencing Mask. The operand does not take ownership of the memory referenced by Mask, it must remain valid for the lifetime of the operand. A RegMask operand represents a set of non-clobbered physical registers on an instruction that clobbers many registers, typically a call. The bit mask has a bit set for each physreg that is preserved by this instruction, as described in the documentation for TargetRegisterInfo::getCallPreservedMask(). Any physreg with a 0 bit in the mask is clobbered by the instruction.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:874
Parameters
- const uint32_t* Mask
¶static llvm::MachineOperand CreateShuffleMask(
ArrayRef<int> Mask)
static llvm::MachineOperand CreateShuffleMask(
ArrayRef<int> Mask)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:919
Parameters
- ArrayRef<int> Mask
¶static llvm::MachineOperand CreateTargetIndex(
unsigned int Idx,
int64_t Offset,
unsigned int TargetFlags = 0)
static llvm::MachineOperand CreateTargetIndex(
unsigned int Idx,
int64_t Offset,
unsigned int TargetFlags = 0)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:824
Parameters
- unsigned int Idx
- int64_t Offset
- unsigned int TargetFlags = 0
¶void addTargetFlag(unsigned int F)
void addTargetFlag(unsigned int F)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:227
Parameters
- unsigned int F
¶void clearParent()
void clearParent()
Description
clearParent - Reset the parent pointer. The MachineOperand copy constructor also copies ParentMI, expecting the original to be deleted. If a MachineOperand is ever stored outside a MachineInstr, the parent pointer must be cleared. Never call clearParent() on an operand in a MachineInstr.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:247
¶static bool clobbersPhysReg(
const uint32_t* RegMask,
unsigned int PhysReg)
static bool clobbersPhysReg(
const uint32_t* RegMask,
unsigned int PhysReg)
Description
clobbersPhysReg - Returns true if this RegMask clobbers PhysReg. It is sometimes necessary to detach the register mask pointer from its machine operand. This static method can be used for such detached bit mask pointers.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:615
Parameters
- const uint32_t* RegMask
- unsigned int PhysReg
¶bool clobbersPhysReg(unsigned int PhysReg) const
bool clobbersPhysReg(unsigned int PhysReg) const
Description
clobbersPhysReg - Returns true if this RegMask operand clobbers PhysReg.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:622
Parameters
- unsigned int PhysReg
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:312
¶const llvm::BlockAddress* getBlockAddress() const
const llvm::BlockAddress* getBlockAddress() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:566
¶unsigned int getCFIIndex() const
unsigned int getCFIIndex() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:576
¶const llvm::ConstantInt* getCImm() const
const llvm::ConstantInt* getCImm() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:540
¶const llvm::ConstantFP* getFPImm() const
const llvm::ConstantFP* getFPImm() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:545
¶const llvm::GlobalValue* getGlobal() const
const llvm::GlobalValue* getGlobal() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:561
¶int64_t getImm() const
int64_t getImm() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:535
¶int getIndex() const
int getIndex() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:555
¶Intrinsic::ID getIntrinsicID() const
Intrinsic::ID getIntrinsicID() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:581
¶llvm::MachineBasicBlock* getMBB() const
llvm::MachineBasicBlock* getMBB() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:550
¶llvm::MCSymbol* getMCSymbol() const
llvm::MCSymbol* getMCSymbol() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:571
¶const llvm::MDNode* getMetadata() const
const llvm::MDNode* getMetadata() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:644
¶int64_t getOffset() const
int64_t getOffset() const
Description
Return the offset from the symbol in this operand. This always returns 0 for ExternalSymbol operands.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:598
¶const llvm::MachineInstr* getParent() const
const llvm::MachineInstr* getParent() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:237
¶llvm::MachineInstr* getParent()
llvm::MachineInstr* getParent()
Description
getParent - Return the instruction that this operand belongs to.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:236
¶unsigned int getPredicate() const
unsigned int getPredicate() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:586
¶llvm::Register getReg() const
llvm::Register getReg() const
Description
getReg - Returns the register number.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:358
¶const uint32_t* getRegLiveOut() const
const uint32_t* getRegLiveOut() const
Description
getRegLiveOut - Returns a bit mask of live-out registers.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:639
¶const uint32_t* getRegMask() const
const uint32_t* getRegMask() const
Description
getRegMask - Returns a bit mask of registers preserved by this RegMask operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:628
¶static unsigned int getRegMaskSize(
unsigned int NumRegs)
static unsigned int getRegMaskSize(
unsigned int NumRegs)
Description
Returns number of elements needed for a regmask array.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:634
Parameters
- unsigned int NumRegs
¶ArrayRef<int> getShuffleMask() const
ArrayRef<int> getShuffleMask() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:591
¶unsigned int getSubReg() const
unsigned int getSubReg() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:363
¶const char* getSymbolName() const
const char* getSymbolName() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:606
¶unsigned int getTargetFlags() const
unsigned int getTargetFlags() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:219
¶llvm::MachineOperand::MachineOperandType getType()
const
llvm::MachineOperand::MachineOperandType getType()
const
Description
getType - Returns the MachineOperandType for this operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:217
¶bool isBlockAddress() const
bool isBlockAddress() const
Description
isBlockAddress - Tests if this is a MO_BlockAddress operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:341
¶bool isCFIIndex() const
bool isCFIIndex() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:349
¶bool isCImm() const
bool isCImm() const
Description
isCImm - Test if this is a MO_CImmediate operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:323
¶bool isCPI() const
bool isCPI() const
Description
isCPI - Tests if this is a MO_ConstantPoolIndex operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:331
¶bool isDead() const
bool isDead() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:383
¶bool isDebug() const
bool isDebug() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:444
¶bool isDef() const
bool isDef() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:373
¶bool isEarlyClobber() const
bool isEarlyClobber() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:434
¶bool isFI() const
bool isFI() const
Description
isFI - Tests if this is a MO_FrameIndex operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:329
¶bool isFPImm() const
bool isFPImm() const
Description
isFPImm - Tests if this is a MO_FPImmediate operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:325
¶bool isGlobal() const
bool isGlobal() const
Description
isGlobal - Tests if this is a MO_GlobalAddress operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:337
¶bool isIdenticalTo(
const llvm::MachineOperand& Other) const
bool isIdenticalTo(
const llvm::MachineOperand& Other) const
Description
Returns true if this operand is identical to the specified operand except for liveness related flags (isKill, isUndef and isDead). Note that this should stay in sync with the hash_value overload below.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:713
Parameters
- const llvm::MachineOperand& Other
¶bool isImm() const
bool isImm() const
Description
isImm - Tests if this is a MO_Immediate operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:321
¶bool isImplicit() const
bool isImplicit() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:378
¶bool isInternalRead() const
bool isInternalRead() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:429
¶bool isIntrinsicID() const
bool isIntrinsicID() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:350
¶bool isJTI() const
bool isJTI() const
Description
isJTI - Tests if this is a MO_JumpTableIndex operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:335
¶bool isKill() const
bool isKill() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:388
¶bool isMBB() const
bool isMBB() const
Description
isMBB - Tests if this is a MO_MachineBasicBlock operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:327
¶bool isMCSymbol() const
bool isMCSymbol() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:348
¶bool isMetadata() const
bool isMetadata() const
Description
isMetadata - Tests if this is a MO_Metadata operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:347
¶bool isPredicate() const
bool isPredicate() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:351
¶bool isReg() const
bool isReg() const
Description
isReg - Tests if this is a MO_Register operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:319
¶bool isRegLiveOut() const
bool isRegLiveOut() const
Description
isRegLiveOut - Tests if this is a MO_RegisterLiveOut operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:345
¶bool isRegMask() const
bool isRegMask() const
Description
isRegMask - Tests if this is a MO_RegisterMask operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:343
¶bool isRenamable() const
bool isRenamable() const
Description
isRenamable - Returns true if this register may be renamed, i.e. it does not generate a value that is somehow read in a way that is not represented by the Machine IR (e.g. to meet an ABI or ISA requirement). This is only valid on physical register operands. Virtual registers are assumed to always be renamable regardless of the value of this field. Operands that are renamable can freely be changed to any other register that is a member of the register class returned by MI->getRegClassConstraint(). isRenamable can return false for several different reasons: - ABI constraints (since liveness is not always precisely modeled). We conservatively handle these cases by setting all physical register operands that didn’t start out as virtual regs to not be renamable. Also any physical register operands created after register allocation or whose register is changed after register allocation will not be renamable. This state is tracked in the MachineOperand::IsRenamable bit. - Opcode/target constraints: for opcodes that have complex register class requirements (e.g. that depend on other operands/instructions), we set hasExtraSrcRegAllocReq/hasExtraDstRegAllocReq in the machine opcode description. Operands belonging to instructions with opcodes that are marked hasExtraSrcRegAllocReq/hasExtraDstRegAllocReq return false from isRenamable(). Additionally, the AllowRegisterRenaming target property prevents any operands from being marked renamable for targets that don't have detailed opcode hasExtraSrcRegAllocReq/hasExtraDstRegAllocReq values.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:427
¶bool isShuffleMask() const
bool isShuffleMask() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:352
¶bool isSymbol() const
bool isSymbol() const
Description
isSymbol - Tests if this is a MO_ExternalSymbol operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:339
¶bool isTargetIndex() const
bool isTargetIndex() const
Description
isTargetIndex - Tests if this is a MO_TargetIndex operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:333
¶bool isTied() const
bool isTied() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:439
¶bool isUndef() const
bool isUndef() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:393
¶bool isUse() const
bool isUse() const
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:368
¶void print(llvm::raw_ostream& os,
llvm::ModuleSlotTracker& MST,
llvm::LLT TypeToPrint,
Optional<unsigned int> OpIdx,
bool PrintDef,
bool IsStandalone,
bool ShouldPrintRegisterTies,
unsigned int TiedOperandIdx,
const llvm::TargetRegisterInfo* TRI,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo) const
void print(llvm::raw_ostream& os,
llvm::ModuleSlotTracker& MST,
llvm::LLT TypeToPrint,
Optional<unsigned int> OpIdx,
bool PrintDef,
bool IsStandalone,
bool ShouldPrintRegisterTies,
unsigned int TiedOperandIdx,
const llvm::TargetRegisterInfo* TRI,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo) const
Description
More complex way of printing a MachineOperand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:300
Parameters
- llvm::raw_ostream& os
- llvm::ModuleSlotTracker& MST
- llvm::LLT TypeToPrint
- specifies the generic type to be printed on uses and defs. It can be determined using MachineInstr::getTypeToPrint.
- Optional<unsigned int> OpIdx
- - specifies the index of the operand in machine instruction. This will be used by target dependent MIR formatter. Could be None if the index is unknown, e.g. called by dump().
- bool PrintDef
- - whether we want to print `def` on an operand which isDef. Sometimes, if the operand is printed before '=', we don't print `def`.
- bool IsStandalone
- - whether we want a verbose output of the MO. This prints extra information that can be easily inferred when printing the whole function, but not when printing only a fragment of it.
- bool ShouldPrintRegisterTies
- - whether we want to print register ties. Sometimes they are easily determined by the instruction's descriptor (MachineInstr::hasComplexRegiterTies can determine if it's needed).
- unsigned int TiedOperandIdx
- - if we need to print register ties this needs to provide the index of the tied register. If not, it will be ignored.
- const llvm::TargetRegisterInfo* TRI
- - provide more target-specific information to the printer. Unlike the previous function, this one will not try and get the information from it's parent.
- const llvm::TargetIntrinsicInfo* IntrinsicInfo
- - same as \p TRI.
¶void print(
llvm::raw_ostream& os,
llvm::LLT TypeToPrint,
const llvm::TargetRegisterInfo* TRI = nullptr,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo = nullptr) const
void print(
llvm::raw_ostream& os,
llvm::LLT TypeToPrint,
const llvm::TargetRegisterInfo* TRI = nullptr,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo = nullptr) const
Description
Same as print(os, TRI, IntrinsicInfo), but allows to specify the low-level type to be printed the same way the full version of print(...) does it.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:308
Parameters
- llvm::raw_ostream& os
- llvm::LLT TypeToPrint
- const llvm::TargetRegisterInfo* TRI = nullptr
- const llvm::TargetIntrinsicInfo* IntrinsicInfo = nullptr
¶void print(
llvm::raw_ostream& os,
const llvm::TargetRegisterInfo* TRI = nullptr,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo = nullptr) const
void print(
llvm::raw_ostream& os,
const llvm::TargetRegisterInfo* TRI = nullptr,
const llvm::TargetIntrinsicInfo*
IntrinsicInfo = nullptr) const
Description
Print the MachineOperand to \p os. Providing a valid \p TRI and \p IntrinsicInfo results in a more target-specific printing. If \p TRI and \p IntrinsicInfo are null, the function will try to pick it up from the parent.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:276
Parameters
- llvm::raw_ostream& os
- const llvm::TargetRegisterInfo* TRI = nullptr
- const llvm::TargetIntrinsicInfo* IntrinsicInfo = nullptr
¶static void printIRSlotNumber(
llvm::raw_ostream& OS,
int Slot)
static void printIRSlotNumber(
llvm::raw_ostream& OS,
int Slot)
Description
Print an IRSlotNumber.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:270
Parameters
- llvm::raw_ostream& OS
- int Slot
¶static void printOperandOffset(
llvm::raw_ostream& OS,
int64_t Offset)
static void printOperandOffset(
llvm::raw_ostream& OS,
int64_t Offset)
Description
Print the offset with explicit +/- signs.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:267
Parameters
- llvm::raw_ostream& OS
- int64_t Offset
¶static void printStackObjectReference(
llvm::raw_ostream& OS,
unsigned int FrameIndex,
bool IsFixed,
llvm::StringRef Name)
static void printStackObjectReference(
llvm::raw_ostream& OS,
unsigned int FrameIndex,
bool IsFixed,
llvm::StringRef Name)
Description
Print a stack object reference.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:263
Parameters
- llvm::raw_ostream& OS
- unsigned int FrameIndex
- bool IsFixed
- llvm::StringRef Name
¶static void printSubRegIdx(
llvm::raw_ostream& OS,
uint64_t Index,
const llvm::TargetRegisterInfo* TRI)
static void printSubRegIdx(
llvm::raw_ostream& OS,
uint64_t Index,
const llvm::TargetRegisterInfo* TRI)
Description
Print a subreg index operand. MO_Immediate operands can also be subreg idices. If it's the case, the subreg index name will be printed. MachineInstr::isOperandSubregIdx can be called to check this.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:253
Parameters
- llvm::raw_ostream& OS
- uint64_t Index
- const llvm::TargetRegisterInfo* TRI
¶static void printSymbol(llvm::raw_ostream& OS,
llvm::MCSymbol& Sym)
static void printSymbol(llvm::raw_ostream& OS,
llvm::MCSymbol& Sym)
Description
Print a MCSymbol as an operand.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:260
Parameters
- llvm::raw_ostream& OS
- llvm::MCSymbol& Sym
¶static void printTargetFlags(
llvm::raw_ostream& OS,
const llvm::MachineOperand& Op)
static void printTargetFlags(
llvm::raw_ostream& OS,
const llvm::MachineOperand& Op)
Description
Print operand target flags.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:257
Parameters
- llvm::raw_ostream& OS
- const llvm::MachineOperand& Op
¶bool readsReg() const
bool readsReg() const
Description
readsReg - Returns true if this operand reads the previous value of its register. A use operand with the <undef > flag set doesn't read its register. A sub-register def implicitly reads the other parts of the register being redefined unless the <undef > flag is set. This refers to reading the register value from before the current instruction or bundle. Internal bundle reads are not included.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:456
¶void setCImm(const llvm::ConstantInt* CI)
void setCImm(const llvm::ConstantInt* CI)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:658
Parameters
- const llvm::ConstantInt* CI
¶void setFPImm(const llvm::ConstantFP* CFP)
void setFPImm(const llvm::ConstantFP* CFP)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:663
Parameters
- const llvm::ConstantFP* CFP
¶void setImm(int64_t immVal)
void setImm(int64_t immVal)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:653
Parameters
- int64_t immVal
¶void setImplicit(bool Val = true)
void setImplicit(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:493
Parameters
- bool Val = true
¶void setIndex(int Idx)
void setIndex(int Idx)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:676
Parameters
- int Idx
¶void setIsDead(bool Val = true)
void setIsDead(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:504
Parameters
- bool Val = true
¶void setIsDebug(bool Val = true)
void setIsDebug(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:526
Parameters
- bool Val = true
¶void setIsDef(bool Val = true)
void setIsDef(bool Val = true)
Description
Change a def to a use, or a use to a def.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:491
Parameters
- bool Val = true
¶void setIsEarlyClobber(bool Val = true)
void setIsEarlyClobber(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:521
Parameters
- bool Val = true
¶void setIsInternalRead(bool Val = true)
void setIsInternalRead(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:516
Parameters
- bool Val = true
¶void setIsKill(bool Val = true)
void setIsKill(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:498
Parameters
- bool Val = true
¶void setIsRenamable(bool Val = true)
void setIsRenamable(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:514
Parameters
- bool Val = true
¶void setIsUndef(bool Val = true)
void setIsUndef(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:509
Parameters
- bool Val = true
¶void setIsUse(bool Val = true)
void setIsUse(bool Val = true)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:488
Parameters
- bool Val = true
¶void setMBB(llvm::MachineBasicBlock* MBB)
void setMBB(llvm::MachineBasicBlock* MBB)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:687
Parameters
¶void setMetadata(const llvm::MDNode* MD)
void setMetadata(const llvm::MDNode* MD)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:682
Parameters
- const llvm::MDNode* MD
¶void setOffset(int64_t Offset)
void setOffset(int64_t Offset)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:668
Parameters
- int64_t Offset
¶void setPredicate(unsigned int Predicate)
void setPredicate(unsigned int Predicate)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:701
Parameters
- unsigned int Predicate
¶void setReg(llvm::Register Reg)
void setReg(llvm::Register Reg)
Description
Change the register this operand corresponds to.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:467
Parameters
- llvm::Register Reg
¶void setRegMask(const uint32_t* RegMaskPtr)
void setRegMask(const uint32_t* RegMaskPtr)
Description
Sets value of register mask operand referencing Mask. The operand does not take ownership of the memory referenced by Mask, it must remain valid for the lifetime of the operand. See CreateRegMask(). Any physreg with a 0 bit in the mask is clobbered by the instruction.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:696
Parameters
- const uint32_t* RegMaskPtr
¶void setSubReg(unsigned int subReg)
void setSubReg(unsigned int subReg)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:469
Parameters
- unsigned int subReg
¶void setTargetFlags(unsigned int F)
void setTargetFlags(unsigned int F)
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:222
Parameters
- unsigned int F
¶void substPhysReg(llvm::MCRegister Reg,
const llvm::TargetRegisterInfo&)
void substPhysReg(llvm::MCRegister Reg,
const llvm::TargetRegisterInfo&)
Description
substPhysReg - Substitute the current register with the physical register Reg, taking any existing SubReg into account. For instance, substPhysReg(%eax) will change %reg1024:sub_8bit to %al.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:486
Parameters
- llvm::MCRegister Reg
- const llvm::TargetRegisterInfo&
¶void substVirtReg(llvm::Register Reg,
unsigned int SubIdx,
const llvm::TargetRegisterInfo&)
void substVirtReg(llvm::Register Reg,
unsigned int SubIdx,
const llvm::TargetRegisterInfo&)
Description
substVirtReg - Substitute the current register with the virtual subregister Reg:SubReg. Take any existing SubReg index into account, using TargetRegisterInfo to compose the subreg indices if necessary. Reg must be a virtual register, SubIdx can be 0.
Declared at: llvm/include/llvm/CodeGen/MachineOperand.h:480
Parameters
- llvm::Register Reg
- unsigned int SubIdx
- const llvm::TargetRegisterInfo&