LLVM
8.0.1
|
MachineOperand class - Representation of each machine instruction operand. More...
#include "llvm/CodeGen/MachineOperand.h"
Public Types | |
enum | MachineOperandType : unsigned char { MO_Register, MO_Immediate, MO_CImmediate, MO_FPImmediate, MO_MachineBasicBlock, MO_FrameIndex, MO_ConstantPoolIndex, MO_TargetIndex, MO_JumpTableIndex, MO_ExternalSymbol, MO_GlobalAddress, MO_BlockAddress, MO_RegisterMask, MO_RegisterLiveOut, MO_Metadata, MO_MCSymbol, MO_CFIIndex, MO_IntrinsicID, MO_Predicate, MO_Last = MO_Predicate } |
Public Member Functions | |
MachineOperandType | getType () const |
getType - Returns the MachineOperandType for this operand. More... | |
unsigned | getTargetFlags () const |
void | setTargetFlags (unsigned F) |
void | addTargetFlag (unsigned F) |
MachineInstr * | getParent () |
getParent - Return the instruction that this operand belongs to. More... | |
const MachineInstr * | getParent () const |
void | clearParent () |
clearParent - Reset the parent pointer. More... | |
void | print (raw_ostream &os, const TargetRegisterInfo *TRI=nullptr, const TargetIntrinsicInfo *IntrinsicInfo=nullptr) const |
Print the MachineOperand to os . More... | |
void | print (raw_ostream &os, ModuleSlotTracker &MST, LLT TypeToPrint, bool PrintDef, bool IsStandalone, bool ShouldPrintRegisterTies, unsigned TiedOperandIdx, const TargetRegisterInfo *TRI, const TargetIntrinsicInfo *IntrinsicInfo) const |
More complex way of printing a MachineOperand. More... | |
void | print (raw_ostream &os, LLT TypeToPrint, const TargetRegisterInfo *TRI=nullptr, const TargetIntrinsicInfo *IntrinsicInfo=nullptr) const |
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. More... | |
void | dump () const |
bool | isReg () const |
isReg - Tests if this is a MO_Register operand. More... | |
bool | isImm () const |
isImm - Tests if this is a MO_Immediate operand. More... | |
bool | isCImm () const |
isCImm - Test if this is a MO_CImmediate operand. More... | |
bool | isFPImm () const |
isFPImm - Tests if this is a MO_FPImmediate operand. More... | |
bool | isMBB () const |
isMBB - Tests if this is a MO_MachineBasicBlock operand. More... | |
bool | isFI () const |
isFI - Tests if this is a MO_FrameIndex operand. More... | |
bool | isCPI () const |
isCPI - Tests if this is a MO_ConstantPoolIndex operand. More... | |
bool | isTargetIndex () const |
isTargetIndex - Tests if this is a MO_TargetIndex operand. More... | |
bool | isJTI () const |
isJTI - Tests if this is a MO_JumpTableIndex operand. More... | |
bool | isGlobal () const |
isGlobal - Tests if this is a MO_GlobalAddress operand. More... | |
bool | isSymbol () const |
isSymbol - Tests if this is a MO_ExternalSymbol operand. More... | |
bool | isBlockAddress () const |
isBlockAddress - Tests if this is a MO_BlockAddress operand. More... | |
bool | isRegMask () const |
isRegMask - Tests if this is a MO_RegisterMask operand. More... | |
bool | isRegLiveOut () const |
isRegLiveOut - Tests if this is a MO_RegisterLiveOut operand. More... | |
bool | isMetadata () const |
isMetadata - Tests if this is a MO_Metadata operand. More... | |
bool | isMCSymbol () const |
bool | isCFIIndex () const |
bool | isIntrinsicID () const |
bool | isPredicate () const |
unsigned | getReg () const |
getReg - Returns the register number. More... | |
unsigned | getSubReg () const |
bool | isUse () const |
bool | isDef () const |
bool | isImplicit () const |
bool | isDead () const |
bool | isKill () const |
bool | isUndef () const |
bool | isRenamable () const |
isRenamable - Returns true if this register may be renamed, i.e. More... | |
bool | isInternalRead () const |
bool | isEarlyClobber () const |
bool | isTied () const |
bool | isDebug () const |
bool | readsReg () const |
readsReg - Returns true if this operand reads the previous value of its register. More... | |
void | setReg (unsigned Reg) |
Change the register this operand corresponds to. More... | |
void | setSubReg (unsigned subReg) |
void | substVirtReg (unsigned Reg, unsigned SubIdx, const TargetRegisterInfo &) |
substVirtReg - Substitute the current register with the virtual subregister Reg:SubReg. More... | |
void | substPhysReg (unsigned Reg, const TargetRegisterInfo &) |
substPhysReg - Substitute the current register with the physical register Reg, taking any existing SubReg into account. More... | |
void | setIsUse (bool Val=true) |
void | setIsDef (bool Val=true) |
Change a def to a use, or a use to a def. More... | |
void | setImplicit (bool Val=true) |
void | setIsKill (bool Val=true) |
void | setIsDead (bool Val=true) |
void | setIsUndef (bool Val=true) |
void | setIsRenamable (bool Val=true) |
void | setIsInternalRead (bool Val=true) |
void | setIsEarlyClobber (bool Val=true) |
void | setIsDebug (bool Val=true) |
int64_t | getImm () const |
const ConstantInt * | getCImm () const |
const ConstantFP * | getFPImm () const |
MachineBasicBlock * | getMBB () const |
int | getIndex () const |
const GlobalValue * | getGlobal () const |
const BlockAddress * | getBlockAddress () const |
MCSymbol * | getMCSymbol () const |
unsigned | getCFIIndex () const |
Intrinsic::ID | getIntrinsicID () const |
unsigned | getPredicate () const |
int64_t | getOffset () const |
Return the offset from the symbol in this operand. More... | |
const char * | getSymbolName () const |
bool | clobbersPhysReg (unsigned PhysReg) const |
clobbersPhysReg - Returns true if this RegMask operand clobbers PhysReg. More... | |
const uint32_t * | getRegMask () const |
getRegMask - Returns a bit mask of registers preserved by this RegMask operand. More... | |
const uint32_t * | getRegLiveOut () const |
getRegLiveOut - Returns a bit mask of live-out registers. More... | |
const MDNode * | getMetadata () const |
void | setImm (int64_t immVal) |
void | setCImm (const ConstantInt *CI) |
void | setFPImm (const ConstantFP *CFP) |
void | setOffset (int64_t Offset) |
void | setIndex (int Idx) |
void | setMetadata (const MDNode *MD) |
void | setMBB (MachineBasicBlock *MBB) |
void | setRegMask (const uint32_t *RegMaskPtr) |
Sets value of register mask operand referencing Mask. More... | |
bool | isIdenticalTo (const MachineOperand &Other) const |
Returns true if this operand is identical to the specified operand except for liveness related flags (isKill, isUndef and isDead). More... | |
void | ChangeToImmediate (int64_t ImmVal) |
ChangeToImmediate - Replace this operand with a new immediate operand of the specified value. More... | |
void | ChangeToFPImmediate (const ConstantFP *FPImm) |
ChangeToFPImmediate - Replace this operand with a new FP immediate operand of the specified value. More... | |
void | ChangeToES (const char *SymName, unsigned char TargetFlags=0) |
ChangeToES - Replace this operand with a new external symbol operand. More... | |
void | ChangeToMCSymbol (MCSymbol *Sym) |
ChangeToMCSymbol - Replace this operand with a new MC symbol operand. More... | |
void | ChangeToFrameIndex (int Idx) |
Replace this operand with a frame index. More... | |
void | ChangeToTargetIndex (unsigned Idx, int64_t Offset, unsigned char TargetFlags=0) |
Replace this operand with a target index. More... | |
void | ChangeToRegister (unsigned Reg, bool isDef, bool isImp=false, bool isKill=false, bool isDead=false, bool isUndef=false, bool isDebug=false) |
ChangeToRegister - Replace this operand with a new register operand of the specified value. More... | |
Friends | |
class | MachineInstr |
class | MachineRegisterInfo |
struct | DenseMapInfo< MachineOperand > |
hash_code | hash_value (const MachineOperand &MO) |
MachineOperand hash_value overload. More... | |
MachineOperand class - Representation of each machine instruction operand.
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.
Definition at line 49 of file MachineOperand.h.
Enumerator | |
---|---|
MO_Register | Register operand. |
MO_Immediate | Immediate operand. |
MO_CImmediate | Immediate >64bit operand. |
MO_FPImmediate | Floating-point immediate operand. |
MO_MachineBasicBlock | MachineBasicBlock reference. |
MO_FrameIndex | Abstract Stack Frame Index. |
MO_ConstantPoolIndex | |
MO_TargetIndex | Target-dependent index+offset operand. |
MO_JumpTableIndex | Address of indexed Jump Table for switch. |
MO_ExternalSymbol | Name of external global symbol. |
MO_GlobalAddress | Address of a global value. |
MO_BlockAddress | Address of a basic block. |
MO_RegisterMask | Mask of preserved registers. |
MO_RegisterLiveOut | Mask of live-out registers. |
MO_Metadata | Metadata reference (for debug info) |
MO_MCSymbol | MCSymbol reference (for debug/eh info) |
MO_CFIIndex | MCCFIInstruction index. |
MO_IntrinsicID | Intrinsic ID for ISel. |
MO_Predicate | Generic predicate for ISel. |
MO_Last |
Definition at line 51 of file MachineOperand.h.
|
inline |
Definition at line 223 of file MachineOperand.h.
References assert(), F(), and isReg().
Referenced by llvm::HexagonInstrInfo::immediateExtend(), and INITIALIZE_PASS().
ChangeToES - Replace this operand with a new external symbol operand.
Definition at line 171 of file MachineOperand.cpp.
References assert(), isReg(), isTied(), MO_ExternalSymbol, setOffset(), and setTargetFlags().
Referenced by getRetpolineSymbol(), and setRegMask().
void MachineOperand::ChangeToFPImmediate | ( | const ConstantFP * | FPImm | ) |
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.
Definition at line 162 of file MachineOperand.cpp.
References assert(), isReg(), isTied(), and MO_FPImmediate.
Referenced by setRegMask().
void MachineOperand::ChangeToFrameIndex | ( | int | Idx | ) |
Replace this operand with a frame index.
Definition at line 194 of file MachineOperand.cpp.
References assert(), isReg(), isTied(), MO_FrameIndex, and setIndex().
Referenced by changeFCMPPredToAArch64CC(), setRegMask(), swapRegAndNonRegOperand(), llvm::updateDbgValueForSpill(), and updateOperand().
void MachineOperand::ChangeToImmediate | ( | int64_t | ImmVal | ) |
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.
Definition at line 153 of file MachineOperand.cpp.
References assert(), ImmVal, isReg(), isTied(), and MO_Immediate.
Referenced by buildEXP(), changeFCMPPredToAArch64CC(), llvm::createX86OptimizeLEAs(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SystemZInstrInfo::FoldImmediate(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getLeaOP(), getLoadStoreOffsetAlign(), hoistAndMergeSGPRInits(), llvm::Mips16RegisterInfo::intRegClass(), llvm::SIInstrInfo::legalizeOperandsVOP2(), replaceFI(), llvm::PPCInstrInfo::replaceInstrOperandWithImm(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::rewriteAArch64FrameIndex(), llvm::rewriteARMFrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), setRegMask(), shrinkScalarLogicOp(), swapRegAndNonRegOperand(), tryConstantFoldOp(), llvm::updateDbgValueForSpill(), and updateOperand().
void MachineOperand::ChangeToMCSymbol | ( | MCSymbol * | Sym | ) |
ChangeToMCSymbol - Replace this operand with a new MC symbol operand.
Definition at line 184 of file MachineOperand.cpp.
References assert(), isReg(), isTied(), MO_MCSymbol, and Sym.
Referenced by setRegMask().
void MachineOperand::ChangeToRegister | ( | unsigned | Reg, |
bool | isDef, | ||
bool | isImp = false , |
||
bool | isKill = false , |
||
bool | isDead = false , |
||
bool | isUndef = false , |
||
bool | isDebug = false |
||
) |
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.
Definition at line 220 of file MachineOperand.cpp.
References llvm::MachineRegisterInfo::addRegOperandToUseList(), assert(), getMFIfAvailable(), isDead(), isDebug(), isDef(), isReg(), isUndef(), MO_Register, Reg, and llvm::MachineRegisterInfo::removeRegOperandFromUseList().
Referenced by AssignProtectedObjSet(), llvm::createX86OptimizeLEAs(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), findSingleRegDef(), getLoadStoreOffsetAlign(), llvm::Mips16RegisterInfo::intRegClass(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOpWithMove(), replaceFI(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::rewriteAArch64FrameIndex(), llvm::rewriteARMFrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), setRegMask(), swapMIOperands(), swapRegAndNonRegOperand(), and llvm::X86InstrInfo::unfoldMemoryOperand().
void MachineOperand::ChangeToTargetIndex | ( | unsigned | Idx, |
int64_t | Offset, | ||
unsigned char | TargetFlags = 0 |
||
) |
Replace this operand with a target index.
Definition at line 204 of file MachineOperand.cpp.
References assert(), isReg(), isTied(), MO_TargetIndex, setIndex(), setOffset(), and setTargetFlags().
Referenced by setRegMask().
|
inline |
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.
Definition at line 243 of file MachineOperand.h.
References dump(), llvm::ISD::FrameIndex, Index, Name, print(), printIRSlotNumber(), printOperandOffset(), printStackObjectReference(), printSubRegIdx(), printSymbol(), printTargetFlags(), Sym, and TRI.
|
inlinestatic |
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.
Definition at line 601 of file MachineOperand.h.
References assert().
Referenced by llvm::LiveRegUnits::addRegsInMask(), llvm::MachineOperandIteratorBase::analyzePhysReg(), canClobberPhysRegDefs(), canClobberReachingPhysRegUse(), CheckForLiveRegDefMasked(), clobbersAllYmmAndZmmRegs(), clobbersCTR(), clobbersPhysReg(), llvm::createRegUsageInfoCollector(), CriticalPathStep(), llvm::ARMBaseInstrInfo::DefinesPredicate(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::X86RegisterInfo::getReservedRegs(), handleRegMaskClobber(), llvm::LiveVariables::HandleVirtRegDef(), isNopCopy(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isVirtualRegisterOperand(), matchPair(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::TargetLowering::parametersInCSRMatch(), llvm::PhysicalRegisterUsageInfo::print(), llvm::LivePhysRegs::removeRegsInMask(), llvm::LiveRegUnits::removeRegsNotPreserved(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::LivePhysRegs::stepForward(), and false::Chain::str().
clobbersPhysReg - Returns true if this RegMask operand clobbers PhysReg.
Definition at line 608 of file MachineOperand.h.
References clobbersPhysReg(), and getRegMask().
|
inlinestatic |
Definition at line 831 of file MachineOperand.h.
References BA, MO_BlockAddress, OffsetedInfo, setOffset(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addBlockAddress().
|
inlinestatic |
Definition at line 878 of file MachineOperand.h.
References CFIIndex, and MO_CFIIndex.
Referenced by llvm::MachineInstrBuilder::addCFIIndex().
|
inlinestatic |
Definition at line 744 of file MachineOperand.h.
References CI, and MO_CImmediate.
Referenced by llvm::MachineInstrBuilder::addCImm(), and llvm::CSEMIRBuilder::buildConstant().
|
inlinestatic |
Definition at line 793 of file MachineOperand.h.
References MO_ConstantPoolIndex, setIndex(), setOffset(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::X86InstrInfo::foldMemoryOperandImpl(), and getUnconditionalBrDisp().
|
inlinestatic |
Definition at line 823 of file MachineOperand.h.
References MO_ExternalSymbol, OffsetedInfo, setOffset(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addExternalSymbol(), llvm::createLibcall(), and getOffsetFromIndices().
|
inlinestatic |
Definition at line 788 of file MachineOperand.h.
References MO_FrameIndex, and setIndex().
Referenced by llvm::MachineInstrBuilder::addFrameIndex(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86AddressMode::getFullAddress(), getUnderlyingArgReg(), llvm::FastISel::selectGetElementPtr(), and llvm::LiveDebugVariables::splitRegister().
|
inlinestatic |
Definition at line 750 of file MachineOperand.h.
References CFP, and MO_FPImmediate.
Referenced by llvm::MachineInstrBuilder::addFPImm(), llvm::CSEMIRBuilder::buildFConstant(), and ConvertImplicitDefToConstZero().
|
inlinestatic |
Definition at line 815 of file MachineOperand.h.
References GV, MO_GlobalAddress, OffsetedInfo, setOffset(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addGlobalAddress(), llvm::X86AddressMode::getFullAddress(), llvm::CallLowering::lowerCall(), and llvm::FastISel::selectPatchpoint().
|
inlinestatic |
Definition at line 738 of file MachineOperand.h.
References MO_Immediate, and setImm().
Referenced by llvm::MachineInstrBuilder::addImm(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::WebAssemblyInstrInfo::analyzeBranch(), llvm::XCoreInstrInfo::analyzeBranch(), llvm::MSP430InstrInfo::analyzeBranch(), llvm::LanaiInstrInfo::analyzeBranch(), llvm::AVRInstrInfo::analyzeBranch(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::SystemZInstrInfo::analyzeBranch(), llvm::PPCInstrInfo::analyzeBranch(), llvm::SIInstrInfo::analyzeBranchImpl(), llvm::X86InstrInfo::analyzeBranchPredicate(), AppendEndToFunction(), llvm::SIInstrInfo::buildExtractSubRegOrImm(), canMoveInstsAcrossMemOp(), llvm::X86InstrInfo::commuteInstructionImpl(), ConvertImplicitDefToConstZero(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getFallThroughMBB(), llvm::X86AddressMode::getFullAddress(), llvm::MipsInstrInfo::GetMemOperand(), getUnconditionalBrDisp(), isImplicitOperandIn(), IsPseudoCallIndirect(), isUseSafeToFold(), llvm::CallLowering::lowerCall(), llvm::SIInstrInfo::moveToVALU(), parseCondBranch(), llvm::predOps(), llvm::HexagonInstrInfo::reduceLoopCount(), llvm::WebAssemblyInstrInfo::reverseBranchCondition(), llvm::FastISel::selectGetElementPtr(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::HexagonInstrInfo::setBundleNoShuf(), and toString().
|
inlinestatic |
Definition at line 884 of file MachineOperand.h.
References IntrinsicID, and MO_IntrinsicID.
Referenced by llvm::MachineInstrBuilder::addIntrinsicID().
|
inlinestatic |
Definition at line 809 of file MachineOperand.h.
References MO_JumpTableIndex, setIndex(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addJumpTableIndex().
|
inlinestatic |
Definition at line 781 of file MachineOperand.h.
References MO_MachineBasicBlock, setMBB(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addMBB(), isImmValidForOpcode(), splitBlock(), and splitEdge().
|
inlinestatic |
Definition at line 869 of file MachineOperand.h.
References MO_MCSymbol, setOffset(), setTargetFlags(), and Sym.
Referenced by llvm::MachineInstrBuilder::addSym(), and EmitNops().
|
inlinestatic |
Definition at line 863 of file MachineOperand.h.
References MD, and MO_Metadata.
Referenced by llvm::MachineInstrBuilder::addMetadata().
|
inlinestatic |
Definition at line 890 of file MachineOperand.h.
References MO_Predicate, and Pred.
Referenced by llvm::MachineInstrBuilder::addPredicate().
|
inlinestatic |
Definition at line 756 of file MachineOperand.h.
References assert(), isDead(), isDebug(), isDef(), isEarlyClobber(), isInternalRead(), isKill(), isRenamable(), isUndef(), MO_Register, Reg, RegNo, setSubReg(), and SubReg.
Referenced by llvm::MachineInstr::addImplicitDefUseOperands(), llvm::GISelInstProfileBuilder::addNodeIDRegType(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterDefined(), llvm::MachineInstr::addRegisterKilled(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::R600InstrInfo::analyzeBranch(), llvm::PPCInstrInfo::analyzeBranch(), llvm::SIInstrInfo::buildExtractSubRegOrImm(), canMoveInstsAcrossMemOp(), llvm::condCodeOp(), ConvertImplicitDefToConstZero(), llvm::X86InstrInfo::convertToThreeAddress(), createPHIsForSelects(), llvm::createSIFixWWMLivenessPass(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::HexagonFrameLowering::emitPrologue(), enableAllocFrameElim(), findNextInsertLocation(), fixupGlobalSaddr(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::HexagonFrameLowering::getAlignaInstr(), llvm::X86AddressMode::getFullAddress(), getUnderlyingArgReg(), llvm::LiveVariables::HandleVirtRegDef(), ImposeStackOrdering(), INITIALIZE_PASS(), isCopy(), isFunctionEntryBlock(), isImmValidForOpcode(), isImplicitOperandIn(), llvm::CallLowering::lowerCall(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::predOps(), printExtendedName(), removeExternalCFGEdges(), llvm::rewriteT2FrameIndex(), llvm::FastISel::selectGetElementPtr(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FastISel::selectXRayCustomEvent(), llvm::FastISel::selectXRayTypedEvent(), llvm::t1CondCodeOp(), llvm::tryFoldSPUpdateIntoPushPop(), and llvm::LiveDebugVariables::~LiveDebugVariables().
|
inlinestatic |
Definition at line 857 of file MachineOperand.h.
References assert(), llvm::BitmaskEnumDetail::Mask(), MO_RegisterLiveOut, and RegMask.
Referenced by INITIALIZE_PASS().
|
inlinestatic |
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.
Definition at line 851 of file MachineOperand.h.
References assert(), llvm::BitmaskEnumDetail::Mask(), MO_RegisterMask, and RegMask.
Referenced by llvm::MachineInstrBuilder::addRegMask(), and llvm::FastISel::selectPatchpoint().
|
inlinestatic |
Definition at line 801 of file MachineOperand.h.
References MO_TargetIndex, setIndex(), setOffset(), and setTargetFlags().
Referenced by llvm::MachineInstrBuilder::addTargetIndex().
LLVM_DUMP_METHOD void MachineOperand::dump | ( | ) | const |
Definition at line 930 of file MachineOperand.cpp.
References llvm::dbgs().
Referenced by clearParent(), doCandidateWalk(), GetVRegRenameMap(), rescheduleCanonically(), and runOnBasicBlock().
|
inline |
Definition at line 557 of file MachineOperand.h.
References assert(), and isBlockAddress().
Referenced by llvm::ARCMCInstLower::ARCMCInstLower(), changeFCMPPredToAArch64CC(), EmitHiLo(), llvm::LanaiMCInstLower::GetBlockAddressSymbol(), llvm::MSP430MCInstLower::GetBlockAddressSymbol(), llvm::SystemZMCInstLower::getExpr(), getRetOpcode(), llvm::hash_value(), llvm::HexagonLowerToMC(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), isIdenticalTo(), isSimilarDispOp(), llvm::AArch64MCInstLower::lowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), print(), and llvm::MipsAsmPrinter::printOperand().
|
inline |
Definition at line 567 of file MachineOperand.h.
References assert(), and isCFIIndex().
Referenced by llvm::AsmPrinter::emitCFIInstruction(), getRegsUsedByPHIs(), llvm::hash_value(), INITIALIZE_PASS(), isIdenticalTo(), and print().
|
inline |
Definition at line 531 of file MachineOperand.h.
References assert(), and isCImm().
Referenced by llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), buildEXP(), changeFCMPPredToAArch64CC(), emitDebugValueComment(), llvm::InstructionSelector::executeMatchTable(), getConstant(), llvm::getConstantVRegVal(), getDebugLocValue(), getLeaOP(), llvm::hash_value(), isConstant(), isIdenticalTo(), llvm::LegalizerHelper::narrowScalar(), print(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 536 of file MachineOperand.h.
References assert(), and isFPImm().
Referenced by llvm::DwarfUnit::addConstantFPValue(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), buildEXP(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), ConvertDoubleToBytes(), emitDebugValueComment(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::getConstantFPVRegVal(), getDebugLocValue(), llvm::hash_value(), llvm::HexagonLowerToMC(), isIdenticalTo(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::WebAssemblyMCInstLower::Lower(), llvm::ARMAsmPrinter::lowerOperand(), print(), VisitGlobalVariableForEmission(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 552 of file MachineOperand.h.
References assert(), and isGlobal().
Referenced by llvm::MachineInstrBuilder::addDisp(), addExclusiveRegPair(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARCMCInstLower::ARCMCInstLower(), llvm::EHStreamer::callToNoUnwindFunction(), changeFCMPPredToAArch64CC(), ConvertDoubleToBytes(), createPHIsForCMOVsInSinkBB(), llvm::PPCFrameLowering::emitEpilogue(), EmitHiLo(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), eraseDeadBBsAndChildren(), llvm::getAddressFromInstr(), llvm::SystemZMCInstLower::getExpr(), llvm::MSP430MCInstLower::GetGlobalAddressSymbol(), llvm::BPFMCInstLower::GetGlobalAddressSymbol(), llvm::LanaiMCInstLower::GetGlobalAddressSymbol(), llvm::AArch64MCInstLower::GetGlobalAddressSymbol(), getLeaOP(), GetSymbolFromOperand(), getVariantKind(), hasAnyNonFlatUseOfReg(), llvm::hash_value(), llvm::HexagonLowerToMC(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), INITIALIZE_PASS(), llvm::WebAssembly::isCatchAllTerminatePad(), llvm::WebAssembly::isCatchTerminatePad(), isIdenticalTo(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimilarDispOp(), llvm::WebAssemblyMCInstLower::Lower(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), makeImplicit(), llvm::WebAssembly::mayThrow(), llvm::rdf::operator<<(), print(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::AVRAsmPrinter::printOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printSymbolOperand(), llvm::ARMBaseInstrInfo::produceSameValue(), QueryCallee(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::DwarfDebug::shareAcrossDWOCUs(), swapMIOperands(), trySequenceOfOnes(), and VisitGlobalVariableForEmission().
|
inline |
Definition at line 526 of file MachineOperand.h.
References assert(), and isImm().
Referenced by llvm::DwarfUnit::addConstantValue(), llvm::MachineInstrBuilder::addDisp(), addExclusiveRegPair(), llvm::R600InstrInfo::addFlag(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), adjustDefLatency(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::LanaiInstrInfo::analyzeCompare(), llvm::AArch64InstrInfo::analyzeCompare(), llvm::SystemZInstrInfo::analyzeCompare(), llvm::HexagonInstrInfo::analyzeCompare(), llvm::ARMBaseInstrInfo::analyzeCompare(), llvm::PPCInstrInfo::analyzeCompare(), llvm::X86InstrInfo::analyzeCompare(), llvm::SwingSchedulerDAG::applyInstrChange(), areCandidatesToMergeOrPair(), llvm::HexagonInstrInfo::areMemAccessesTriviallyDisjoint(), AssignProtectedObjSet(), buildEXP(), llvm::SIInstrInfo::buildExtractSubRegOrImm(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canBeExpandedToORR(), canCompareBeNewValueJump(), canFoldIntoCSel(), llvm::X86InstrInfo::canMakeTailCallConditional(), canMoveInstsAcrossMemOp(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), llvm::X86InstrInfo::classifyLEAReg(), llvm::R600InstrInfo::clearFlag(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), compareMachineOp(), CompareMBBNumbers(), computeExprForSpill(), ConvertDoubleToBytes(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createSIAddIMGInitPass(), llvm::createSIModeRegisterPass(), llvm::createSparcDelaySlotFillerPass(), llvm::createX86OptimizeLEAs(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::SparcFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitClzero(), emitDebugValueComment(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AsmPrinter::emitFrameAlloc(), EmitGCCInlineAsmStr(), EmitHiLo(), emitIndirectDst(), emitIndirectSrc(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), EmitMSInlineAsmStr(), EmitNop(), EmitNops(), emitPostSt(), llvm::HexagonEvaluator::evaluate(), llvm::BitTracker::MachineEvaluator::evaluate(), ExpandMOVImmSExti8(), llvm::R600InstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::SystemZInstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), llvm::X86InstrInfo::findCommutedOpIndices(), findCondCodeUsedByInstr(), llvm::MachineInstr::findInlineAsmFlagIdx(), findSingleRegDef(), findStartOfTree(), llvm::MachineInstr::findTiedOperandIdx(), findUncondBrI(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), fixupSEHOpcode(), llvm::foldFrameOffset(), llvm::SystemZInstrInfo::FoldImmediate(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), foldImmediates(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), followSubRegDef(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), genFusedMultiply(), llvm::getAddressFromInstr(), getADDriFromLEA(), getAdjustedCmp(), llvm::HexagonInstrInfo::getBaseAndOffset(), llvm::SystemZInstrInfo::getBranchInfo(), getCmpForPseudo(), getComparePred(), getCompareSourceReg(), llvm::HexagonInstrInfo::getCompoundCandidateGroup(), llvm::HexagonInstrInfo::getCompoundOpcode(), llvm::getConstantVRegVal(), getDebugLocValue(), getDPPOp(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getDwarfRegNum(), llvm::X86InstrInfo::getExecutionDomainCustom(), llvm::TargetInstrInfo::getExtractSubregInputs(), llvm::X86InstrInfo::getFrameAdjustment(), llvm::ARMBaseRegisterInfo::getFrameIndexInstrOffset(), llvm::MSP430InstrInfo::getFramePoppedByCallee(), llvm::TargetInstrInfo::getFrameSize(), llvm::TargetInstrInfo::getFrameTotalSize(), llvm::SystemZInstrInfo::getFusedCompare(), getHWReg(), llvm::StackMapOpers::getID(), GetImm(), llvm::HexagonInstrInfo::getIncrementValue(), llvm::MachineInstr::getInlineAsmDialect(), llvm::TargetInstrInfo::getInsertSubregInputs(), llvm::ARMBaseInstrInfo::getInsertSubregLikeInputs(), llvm::getInstrPredicate(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::MipsInstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), getLeaOP(), getLoadStoreOffsetAlign(), getLoadStoreOffsetSizeInBits(), getLSMultipleTransferSize(), getMappedOp(), llvm::SIInstrInfo::getMemOperandWithOffset(), llvm::X86InstrInfo::getMemOperandWithOffset(), llvm::LanaiInstrInfo::getMemOperandWithOffsetWidth(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getMemoryOpOffset(), llvm::SIRegisterInfo::getMUBUFInstrOffset(), llvm::SIInstrInfo::getNamedImmOperand(), getNewValueJumpOpcode(), llvm::PatchPointOpers::getNumCallArgs(), getNumMicroOpsSwiftLdSt(), llvm::StackMapOpers::getNumPatchBytes(), llvm::SIInstrInfo::getNumWaitStates(), getOModValue(), getPostIndexedLoadStoreOpcode(), llvm::ARMBaseInstrInfo::getPredicate(), getReassignedChan(), llvm::MachineInstr::getRegClassConstraint(), llvm::TargetInstrInfo::getRegSequenceInputs(), llvm::getRegSequenceSubReg(), getRetOpcode(), llvm::X86InstrInfo::getSPAdjust(), getSrcFromCopy(), llvm::R600InstrInfo::getSrcs(), getStoreOffset(), getTruncatedShiftCount(), getUnconditionalBrDisp(), getVariantKind(), llvm::NVPTXAsmPrinter::getVirtualRegisterName(), getWinAllocaAmount(), llvm::hash_value(), HashMachineInstr(), hasLEAOffset(), llvm::SIInstrInfo::hasModifiersSet(), llvm::MachineInstr::hasUnmodeledSideEffects(), llvm::HexagonLowerToMC(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), insertUndefLaneMask(), llvm::Mips16RegisterInfo::intRegClass(), llvm::isAArch64FrameOffsetLegal(), llvm::ARMBaseInstrInfo::isAddrMode3OpMinusReg(), llvm::ARMBaseInstrInfo::isAm2ScaledReg(), llvm::AArch64InstrInfo::isAsCheapAsAMove(), llvm::AArch64InstrInfo::isCoalescableExtInstr(), isCompareZero(), llvm::HexagonInstrInfo::isConstExtended(), llvm::MachineInstr::isConvergent(), llvm::MipsSEInstrInfo::isCopyInstrImpl(), isCrossCopy(), llvm::AArch64InstrInfo::isFalkorShiftExtFast(), isFpMulInstruction(), llvm::PPCRegisterInfo::isFrameOffsetLegal(), llvm::AArch64InstrInfo::isGPRCopy(), llvm::AArch64InstrInfo::isGPRZero(), isGreaterThanNBitTFRI(), isIdenticalTo(), isImmValidForOpcode(), isImplicitlyDef(), isIncrementOrDecrement(), llvm::SIInstrInfo::isInlineConstant(), isKImmOperand(), isKImmOrKUImmOperand(), isKUImmOperand(), isLdOffsetInRangeOfSt(), llvm::ARMBaseInstrInfo::isLdstScaledReg(), llvm::ARMBaseInstrInfo::isLdstScaledRegNotPlusLsl2(), llvm::ARMBaseInstrInfo::isLdstSoMinusReg(), isLEASimpleIncOrDec(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::LanaiInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::HexagonInstrInfo::isLoadFromStackSlot(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::AVRInstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), isMergeableLdStUpdate(), llvm::R600InstrInfo::isPredicable(), llvm::ARMBaseInstrInfo::isPredicated(), isRedundantFlagInstr(), isRelevantAddressingMode(), isReverseInlineImm(), isSafeToFoldImmIntoCopy(), llvm::isScale(), llvm::AArch64InstrInfo::isSchedulingBoundary(), isSendMsgTraceDataOrGDS(), isSignExtendingOp(), isSimpleBD12Move(), isSimpleIf(), isSimpleMove(), llvm::MachineInstr::isStackAligningInlineAsm(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::LanaiInstrInfo::isStoreToStackSlot(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::HexagonInstrInfo::isStoreToStackSlot(), llvm::AVRInstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), isSuitableForMask(), llvm::ARMBaseInstrInfo::isSwiftFastImmShift(), llvm::PPCInstrInfo::isTOCSaveMI(), isUseSafeToFold(), isZeroExtendingOp(), isZeroImm(), llvm::MipsInstrInfo::isZeroImm(), llvm::AArch64LegalizerInfo::legalizeCustom(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::Lower(), llvm::XCoreMCInstLower::LowerOperand(), llvm::ARCMCInstLower::LowerOperand(), llvm::SystemZMCInstLower::lowerOperand(), llvm::AArch64MCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), lowerRIEfLow(), lowerRIHigh(), lowerRILow(), llvm::LowerRISCVMachineOperandToMCOperand(), lowerSubvectorLoad(), lowerSubvectorStore(), makeImplicit(), matchPair(), matchSwap(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), Mips16WhichOp8uOr16simm(), llvm::SIInstrInfo::moveToVALU(), llvm::LegalizerHelper::narrowScalar(), llvm::PPCRegisterInfo::needsFrameBaseReg(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), optimizeVcndVcmpPair(), parseCond(), parseCondBranch(), performCustomAdjustments(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), llvm::SystemZAsmPrinter::PrintAsmMemoryOperand(), llvm::AVRAsmPrinter::PrintAsmMemoryOperand(), llvm::HexagonAsmPrinter::PrintAsmMemoryOperand(), llvm::MipsAsmPrinter::PrintAsmMemoryOperand(), llvm::SystemZAsmPrinter::PrintAsmOperand(), llvm::AVRAsmPrinter::PrintAsmOperand(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::X86AsmPrinter::PrintAsmOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), llvm::AsmPrinter::PrintAsmOperand(), printConstant(), printExtendedName(), llvm::MipsAsmPrinter::printFCCOperand(), printIntelMemReference(), printLeaMemReference(), llvm::AVRAsmPrinter::printOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printOperand(), printPCRelImm(), profitImm(), readsVCCZ(), llvm::StackMaps::recordStackMap(), llvm::HexagonInstrInfo::reduceLoopCount(), registerDefinedBetween(), removePhis(), removeRedundantBlockingStores(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::WebAssemblyInstrInfo::reverseBranchCondition(), llvm::R600InstrInfo::reverseBranchCondition(), llvm::rewriteAArch64FrameIndex(), llvm::rewriteARMFrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), RewriteP2Align(), llvm::rewriteT2FrameIndex(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::X86InstrInfo::setExecutionDomainCustom(), llvm::AArch64InstrInfo::shouldClusterMemOps(), shrinkScalarLogicOp(), swapMIOperands(), swapRegAndNonRegOperand(), llvm::SIInstrInfo::swapSourceModifiers(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tieOpsIfNeeded(), tryConstantFoldOp(), tryOptimizeLEAtoMOV(), trySequenceOfOnes(), llvm::X86InstrInfo::unfoldMemoryOperand(), updateKillStatus(), updateOperand(), llvm::HexagonPacketizerList::useCalleesSP(), llvm::HexagonPacketizerList::useCallersSP(), verifyInsExtInstruction(), llvm::SIInstrInfo::verifyInstruction(), VerifyLowRegs(), and VisitGlobalVariableForEmission().
|
inline |
Definition at line 546 of file MachineOperand.h.
References assert(), isCPI(), isFI(), isJTI(), and isTargetIndex().
Referenced by llvm::MachineInstrBuilder::addDisp(), llvm::ARCMCInstLower::ARCMCInstLower(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), BBHasFallthrough(), BBIsJumpedOver(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitDebugValueComment(), EmitHiLo(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::ARMAsmPrinter::EmitJumpTableInsts(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::TargetLoweringBase::emitPatchPoint(), foldImmediates(), llvm::getAddressFromInstr(), getConstantFromPool(), llvm::MSP430MCInstLower::GetConstantPoolIndexSymbol(), llvm::LanaiMCInstLower::GetConstantPoolIndexSymbol(), llvm::SystemZMCInstLower::getExpr(), llvm::MSP430MCInstLower::GetJumpTableSymbol(), llvm::LanaiMCInstLower::GetJumpTableSymbol(), getRetOpcode(), llvm::X86InstrInfo::getSPAdjust(), getStartOrEndSlot(), getUnconditionalBrDisp(), llvm::hash_value(), HashMachineInstr(), hasSameBaseOpValue(), llvm::HexagonLowerToMC(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), INITIALIZE_PASS(), isIdenticalTo(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::MipsSEInstrInfo::isLoadFromStackSlot(), llvm::ARCInstrInfo::isLoadFromStackSlot(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::LanaiInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::HexagonInstrInfo::isLoadFromStackSlot(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::AVRInstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), llvm::SIInstrInfo::isSGPRStackAccess(), isSimilarDispOp(), isSimpleMove(), llvm::SIInstrInfo::isStackAccess(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::MipsSEInstrInfo::isStoreToStackSlot(), llvm::LanaiInstrInfo::isStoreToStackSlot(), llvm::ARCInstrInfo::isStoreToStackSlot(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::HexagonInstrInfo::isStoreToStackSlot(), llvm::AVRInstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), lookupCandidateBaseReg(), llvm::AArch64MCInstLower::lowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), MatchingStackOffset(), matchPair(), false::IntervalSorter::operator()(), llvm::MIPrinter::print(), print(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printSymbolOperand(), llvm::ARMBaseInstrInfo::produceSameValue(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::AArch64InstrInfo::shouldClusterMemOps(), swapRegAndNonRegOperand(), trySequenceOfOnes(), and X86SelectAddress().
|
inline |
Definition at line 572 of file MachineOperand.h.
References assert(), and isIntrinsicID().
Referenced by buildEXP(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), llvm::InstructionSelector::executeMatchTable(), getConstant(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::hash_value(), isIdenticalTo(), and print().
|
inline |
Definition at line 541 of file MachineOperand.h.
References assert(), and isMBB().
Referenced by addIncomingValuesToPHIs(), allPhiOperandsUndefined(), llvm::XCoreInstrInfo::analyzeBranch(), llvm::NVPTXInstrInfo::analyzeBranch(), llvm::SparcInstrInfo::analyzeBranch(), llvm::MipsInstrInfo::analyzeBranch(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::AArch64InstrInfo::analyzeBranch(), llvm::R600InstrInfo::analyzeBranch(), llvm::SystemZInstrInfo::analyzeBranch(), llvm::PPCInstrInfo::analyzeBranch(), AppendEndToFunction(), llvm::ARCMCInstLower::ARCMCInstLower(), BBIsJumpedOver(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), ConvertDoubleToBytes(), llvm::LiveRangeCalc::createDeadDefs(), llvm::createHexagonHardwareLoops(), createPHIsForCMOVsInSinkBB(), EmitGCCInlineAsmStr(), EmitHiLo(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), EmitNops(), llvm::SystemZPostRASchedStrategy::enterMBB(), eraseDeadBBsAndChildren(), llvm::HexagonEvaluator::evaluate(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::AArch64InstrInfo::expandPostRAPseudo(), findCorrespondingPred(), fixPHIsInSucc(), llvm::RISCVInstrInfo::getBranchDestBlock(), llvm::AVRInstrInfo::getBranchDestBlock(), llvm::AArch64InstrInfo::getBranchDestBlock(), llvm::SIInstrInfo::getBranchDestBlock(), getCmpForPseudo(), llvm::HexagonInstrInfo::getDotNewPredJumpOp(), llvm::SystemZMCInstLower::getExpr(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::getIncomingBlock(), getInitPhiReg(), getLoopPhiReg(), llvm::MipsInstrInfo::GetMemOperand(), getNewValueJumpOpcode(), getPHIDeps(), getPHIPred(), getPhiRegs(), getPHISrcRegOpIdx(), getRegsUsedByPHIs(), getTargetMBB(), getUnconditionalBrDisp(), getVariantKind(), llvm::hash_value(), HashMachineInstr(), hasVulnerableLoad(), llvm::HexagonLowerToMC(), hoistAndMergeSGPRInits(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), INITIALIZE_PASS(), insertPHI(), isIdenticalTo(), isImmValidForOpcode(), isIntersect(), isSimilarDispOp(), IsUnconditionalJump(), llvm::SIInstrInfo::legalizeOperands(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::AArch64MCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), matchPair(), llvm::rdf::operator<<(), llvm::AArch64InstrInfo::optimizeCondBranch(), parseCondBranch(), llvm::PPCInstrInfo::PredicateInstruction(), print(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::AVRAsmPrinter::printOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), llvm::HexagonInstrInfo::reduceLoopCount(), removePhis(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), splitBlock(), splitEdge(), splitMBB(), llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), llvm::CombinerHelper::tryCombineCopy(), updatePHIs(), VisitGlobalVariableForEmission(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 562 of file MachineOperand.h.
References assert(), and isMCSymbol().
Referenced by emitDirectiveRelocJalr(), llvm::AsmPrinter::emitFrameAlloc(), llvm::MipsInstrInfo::genInstrWithNewOpc(), getRetOpcode(), getRetpolineSymbol(), llvm::hash_value(), llvm::MipsMCInstLower::Initialize(), isIdenticalTo(), isSimilarDispOp(), llvm::WebAssemblyMCInstLower::Lower(), llvm::AArch64MCInstLower::lowerOperand(), and print().
Definition at line 630 of file MachineOperand.h.
References assert(), and isMetadata().
Referenced by EmitGCCInlineAsmStr(), EmitHiLo(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugLabel(), llvm::MachineInstr::getDebugVariable(), llvm::hash_value(), isIdenticalTo(), print(), and llvm::MachineInstr::print().
|
inline |
Return the offset from the symbol in this operand.
This always returns 0 for ExternalSymbol operands.
Definition at line 584 of file MachineOperand.h.
References assert(), isBlockAddress(), isCPI(), isGlobal(), isMCSymbol(), isSymbol(), and isTargetIndex().
Referenced by llvm::MachineInstrBuilder::addDisp(), addExclusiveRegPair(), llvm::ARCMCInstLower::ARCMCInstLower(), changeFCMPPredToAArch64CC(), llvm::createX86OptimizeLEAs(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::PPCFrameLowering::emitEpilogue(), getConstantFromPool(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), llvm::SystemZMCInstLower::getExpr(), GetSymbolRef(), getVariantKind(), llvm::hash_value(), HashMachineInstr(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), isIdenticalTo(), llvm::WebAssemblyMCInstLower::Lower(), lowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::BPFMCInstLower::LowerSymbolOperand(), llvm::LanaiMCInstLower::LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandCOFF(), llvm::AArch64MCInstLower::lowerSymbolOperandDarwin(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), makeImplicit(), print(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printSymbolOperand(), llvm::ARMBaseInstrInfo::produceSameValue(), and trySequenceOfOnes().
|
inline |
getParent - Return the instruction that this operand belongs to.
Definition at line 232 of file MachineOperand.h.
Referenced by addSegmentsWithValNo(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::MachineOperandIteratorBase::analyzeVirtReg(), changeFCMPPredToAArch64CC(), createBBSelectReg(), createDeadDef(), llvm::createSIFixWWMLivenessPass(), llvm::createX86OptimizeLEAs(), CriticalPathStep(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::SMSchedule::finalizeSchedule(), findSingleRegDef(), findSingleRegUse(), llvm::Localizer::getAnalysisUsage(), llvm::RegBankSelect::getAnalysisUsage(), getFoldableImm(), getLoadStoreOffsetSizeInBits(), getMFIfAvailable(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::getOperandNo(), GetSymbolRef(), getUsedRegMask(), getVariantKind(), INITIALIZE_PASS(), isConstant(), isCrossCopy(), llvm::SIInstrInfo::isInlineConstant(), isKilled(), isKImmOperand(), isKUImmOperand(), isNoReturnDef(), isRenamable(), isUseSafeToFold(), isVirtualRegisterOperand(), matchPair(), MoveForSingleUse(), OneUseDominatesOtherUses(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator*(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), llvm::MIPrinter::print(), RematerializeCheapDef(), removeExternalCFGEdges(), removePhis(), ReplaceDominatedUses(), llvm::CombinerHelper::replaceRegOpWith(), replaceRegUsesAfterLoop(), llvm::MachineSSAUpdater::RewriteUse(), llvm::Localizer::runOnMachineFunction(), scavengeVReg(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::AArch64InstrInfo::shouldClusterMemOps(), llvm::SIInstrInfo::shouldClusterMemOps(), false::Chain::str(), llvm::TailDuplicator::tailDuplicateAndUpdate(), llvm::CombinerHelper::tryCombineCopy(), llvm::CombinerHelper::tryCombineExtendingLoads(), tryFoldInst(), llvm::FastISel::tryToFoldLoad(), updateKillStatus(), UpdatePredRedefs(), llvm::MachineTraceMetrics::Ensemble::verify(), llvm::MachineFunction::verify(), and llvm::MachineRegisterInfo::verifyUseList().
|
inline |
Definition at line 233 of file MachineOperand.h.
|
inline |
Definition at line 577 of file MachineOperand.h.
References assert(), and isPredicate().
Referenced by llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), llvm::hash_value(), isIdenticalTo(), llvm::ARMLegalizerInfo::legalizeCustom(), print(), and llvm::LegalizerHelper::widenScalar().
|
inline |
getReg - Returns the register number.
Definition at line 349 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), addExclusiveRegPair(), addLiveInRegs(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), llvm::MachineRegisterInfo::addRegOperandToUseList(), addRegsToSet(), addSegmentsWithValNo(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::HexagonSubtarget::adjustSchedDependency(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::analyzeArguments(), llvm::LanaiInstrInfo::analyzeCompare(), llvm::AArch64InstrInfo::analyzeCompare(), llvm::SystemZInstrInfo::analyzeCompare(), llvm::HexagonInstrInfo::analyzeCompare(), llvm::ARMBaseInstrInfo::analyzeCompare(), llvm::PPCInstrInfo::analyzeCompare(), llvm::X86InstrInfo::analyzeCompare(), llvm::MachineOperandIteratorBase::analyzePhysReg(), llvm::MachineOperandIteratorBase::analyzeVirtReg(), AnyAliasLiveIn(), llvm::LiveRangeEdit::anyRematerializable(), llvm::HexagonSubtarget::CallMutation::apply(), llvm::HexagonSubtarget::BankConflictMutation::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::SwingSchedulerDAG::applyInstrChange(), areCandidatesToMergeOrPair(), llvm::HexagonInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::biasPhysReg(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), buildEXP(), llvm::SIInstrInfo::buildExtractSubReg(), llvm::BuildMI(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::SIInstrInfo::buildShrunkInst(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canCombine(), canCompareBeNewValueJump(), llvm::HexagonInstrInfo::canExecuteInBundle(), canFoldCopy(), canFoldIntoCSel(), canFoldIntoMOVCC(), canFoldIntoSelect(), canMoveInstsAcrossMemOp(), llvm::HexagonPacketizerList::canPromoteToDotCur(), llvm::HexagonPacketizerList::canPromoteToNewValueStore(), llvm::SIInstrInfo::canShrink(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), CheckXWPInstr(), llvm::X86InstrInfo::classifyLEAReg(), llvm::HexagonPacketizerList::cleanUpDotCur(), clearKillFlags(), clobbersCTR(), llvm::MachineInstr::collectDebugValues(), CombineCVTAToLocal(), llvm::WebAssemblyInstrInfo::commuteInstructionImpl(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), compareMachineOp(), computeBranchTargetAndInversion(), computeBytesPoppedByCalleeForSRet(), llvm::TargetSchedModel::computeOutputLatency(), ConsecutiveInstr(), llvm::constrainOperandRegClass(), llvm::InstructionSelector::constrainOperandRegToRegClass(), llvm::constrainSelectedInstRegOperands(), ContainsReg(), conversionLibcall(), ConvertDoubleToBytes(), ConvertImplicitDefToConstZero(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), copyHint(), copyRegOperand(), llvm::createBreakFalseDeps(), llvm::createCopyConstrainDAGMutation(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::CreateEmptyPHI(), llvm::createHexagonHardwareLoops(), llvm::createLanaiDelaySlotFillerPass(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createSIFixWWMLivenessPass(), llvm::createSIWholeQuadModePass(), llvm::createSparcDelaySlotFillerPass(), llvm::createX86FixupBWInsts(), llvm::createX86FixupLEAs(), llvm::createX86FixupSetCC(), llvm::createX86OptimizeLEAs(), llvm::createXCoreFrameToArgsOffsetEliminationPass(), CriticalPathStep(), definesFullReg(), llvm::ARMBaseInstrInfo::DefinesPredicate(), llvm::HexagonInstrInfo::DefinesPredicate(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::HexagonFrameLowering::determineCalleeSaves(), doCandidateWalk(), dumpMachineInstrRangeWithSlotIndex(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBuildPairF64Pseudo(), emitClzero(), emitDebugValueComment(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), EmitGCCInlineAsmStr(), EmitHiLo(), llvm::AsmPrinter::emitImplicitDef(), emitIndirectDst(), emitIndirectSrc(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), emitKill(), emitLoadM0FromVGPRLoop(), emitLoadSRsrcFromVGPRLoop(), emitMonitor(), EmitNop(), EmitNops(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostSt(), emitRDPKRU(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSplitF64Pseudo(), emitWRPKRU(), emitXBegin(), eraseDeadBBsAndChildren(), eraseGPOpnd(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::InstructionSelector::executeMatchTable(), Expand2AddrUndef(), expandLoadStackGuard(), expandMOV32r1(), ExpandMOVImmSExti8(), expandNOVLXLoad(), expandNOVLXStore(), llvm::R600InstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SystemZInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), llvm::PPCInstrInfo::expandVSXMemPseudo(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::DbgVariableLocation::extractFromMachineInstruction(), llvm::LegalizerHelper::fewerElementsVector(), llvm::finalizeBundle(), llvm::SMSchedule::finalizeSchedule(), findDeadCallerSavedReg(), findIncDecAfter(), findNextInsertLocation(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::MachineInstr::findRegisterUseOperandIdx(), findSingleRegDef(), findSingleRegUse(), findSRegBaseAndIndex(), findStartOfTree(), findUncondBrI(), finishConvertToThreeAddress(), llvm::fixStackStores(), fixupCalleeSaveRestoreStackOffset(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), llvm::foldFrameOffset(), llvm::SystemZInstrInfo::FoldImmediate(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), foldVGPRCopyIntoRegSequence(), for(), forceReg(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), genFusedMultiply(), genMaddR(), llvm::getAddressFromInstr(), llvm::RegBankSelect::getAnalysisUsage(), getBaseAddressRegister(), getCallTargetRegOpnd(), getCmpForPseudo(), getComparePred(), getCompareSourceReg(), llvm::HexagonInstrInfo::getCompoundCandidateGroup(), llvm::HexagonInstrInfo::getCompoundOpcode(), getConstant(), llvm::SIRegisterInfo::getConstrainedRegClassForOperand(), getCopyRegClasses(), getDataDeps(), getDefRegMask(), getDPPOp(), GetDSubRegs(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getDwarfRegNum(), llvm::X86InstrInfo::getExecutionDomainCustom(), llvm::TargetInstrInfo::getExtractSubregInputs(), llvm::ARMBaseInstrInfo::getExtractSubregLikeInputs(), getFoldableImm(), getFPReg(), llvm::ARMBaseInstrInfo::getFramePred(), llvm::NVPTXAsmPrinter::getFunctionFrameSymbol(), llvm::SystemZInstrInfo::getFusedCompare(), llvm::HexagonHazardRecognizer::getHazardType(), getImmOrMaterializedImm(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::getIncomingValue(), getInitPhiReg(), llvm::TargetInstrInfo::getInsertSubregInputs(), llvm::ARMBaseInstrInfo::getInsertSubregLikeInputs(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::X86RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RegisterBankInfo::getInstrMappingImpl(), llvm::getInstrPredicate(), getInstrVecReg(), llvm::ScheduleDAGInstrs::getLaneMaskForMO(), getLeaOP(), getLiveLanesAt(), getLoadInfo(), getLoopPhiReg(), getLSMultipleTransferSize(), getMappedOp(), llvm::X86InstrInfo::getMemOperandWithOffset(), getMopState(), getNewSource(), getNewValueJumpOpcode(), llvm::rdf::DataFlowGraph::getNextShadow(), getNumMicroOpsSwiftLdSt(), getOffsetFromIndices(), getOModValue(), llvm::getOpcodeDef(), llvm::PPCInstrInfo::getOperandLatency(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::HexagonInstrInfo::getOperandLatency(), llvm::SIInstrInfo::getOpRegClass(), llvm::SIInstrInfo::getOpSize(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), llvm::AArch64InstrInfo::getOutliningType(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), llvm::ARMBaseInstrInfo::getPartialRegUpdateClearance(), llvm::X86InstrInfo::getPartialRegUpdateClearance(), llvm::R600AsmPrinter::getPassName(), getPHIDeps(), getPHIDestReg(), getPhiRegs(), getPHISourceReg(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetPHIValue(), getPostIndexedLoadStoreOpcode(), getRC32(), getReassignedChan(), llvm::SystemZRegisterInfo::getRegAllocationHints(), llvm::MachineInstr::getRegClassConstraintEffectForVReg(), getRegClassForUnfoldedLoad(), getRegClassFromGRPhysReg(), llvm::TargetInstrInfo::getRegSequenceInputs(), llvm::ARMBaseInstrInfo::getRegSequenceLikeInputs(), llvm::getRegState(), llvm::getRegSubRegPair(), getRegsUsedByPHIs(), getRetOpcode(), getRetpolineSymbol(), getShuffleComment(), getSingleDef(), getSmrdOpcode(), llvm::X86InstrInfo::getSPAdjust(), getSrcFromCopy(), llvm::R600InstrInfo::getSrcs(), getSubOpcode(), getTag(), getTypeFromTypeIdx(), llvm::MachineInstr::getTypeToPrint(), getUnconditionalBrDisp(), llvm::X86InstrInfo::getUndefRegClearance(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::GetUndefVal(), getUnderlyingArgReg(), getUnderlyingObjects(), getUsedRegMask(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), getVariantKind(), getWinAllocaAmount(), llvm::MipsTargetLowering::HandleByVal(), handleNormalInst(), llvm::LiveVariables::HandleVirtRegDef(), HandleVRSaveUpdate(), llvm::hash_value(), HashMachineInstr(), hasInefficientLEABaseReg(), llvm::X86InstrInfo::hasLiveCondCodeDef(), hasOneNonDBGUseInst(), hasRAWHazard(), llvm::X86InstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableSibling(), hasRegisterDependency(), llvm::MachineInstr::hasRegisterImplicitUseOperand(), hasSameBaseOpValue(), hasUseAfterLoop(), hasVGPROperands(), llvm::HexagonLowerToMC(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), llvm::HexagonInstrInfo::insertBranch(), insertCopy(), insertDivByZeroTrap(), InsertLDR_STR(), insertPHI(), insertUndefLaneMask(), llvm::PPCInstrInfo::instrHasImmForm(), llvm::rdf::CopyPropagation::interpretAsCopy(), llvm::Mips16RegisterInfo::intRegClass(), llvm::ARMBaseInstrInfo::isAddrMode3OpImm(), llvm::ARMBaseInstrInfo::isAddrMode3OpMinusReg(), llvm::AArch64InstrInfo::isAsCheapAsAMove(), llvm::InstructionSelector::isBaseWithConstantOffset(), isCallerPreservedOrConstPhysReg(), isCandidateStore(), llvm::AArch64InstrInfo::isCandidateToMergeOrPair(), llvm::WebAssembly::isChild(), llvm::AArch64InstrInfo::isCoalescableExtInstr(), llvm::X86InstrInfo::isCoalescableExtInstr(), llvm::PPCInstrInfo::isCoalescableExtInstr(), isCompareZero(), isConstant(), llvm::MachineInstr::isConstantValuePHI(), isCopy(), isCopyFeedingInvariantStore(), isCopyFromExec(), llvm::ARMBaseInstrInfo::isCopyInstrImpl(), isCopyToExec(), isCopyToReg(), llvm::IsCPSRDead< MachineInstr >(), isCrossCopy(), isCSRestore(), isDbgValueDescribedByReg(), isDebug(), isDefInSubRange(), isDescribedByReg(), isEFLAGSLive(), llvm::rdf::TargetOperandInfo::isFixedReg(), isFpMulInstruction(), llvm::AArch64InstrInfo::isFPRCopy(), isFullCopyOf(), isFullExecCopy(), llvm::AArch64InstrInfo::isGPRCopy(), llvm::AArch64InstrInfo::isGPRZero(), isIdenticalOp(), isIdenticalTo(), llvm::MachineInstr::isIdenticalTo(), llvm::MachineInstr::isIdentityCopy(), isImmValidForOpcode(), isImplicitlyDef(), isIncrementOrDecrement(), isInstrUniform(), llvm::ARMBaseInstrInfo::isLDMBaseRegInList(), isLEASimpleIncOrDec(), llvm::SIInstrInfo::isLegalRegOperand(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), isLiveOut(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::MipsSEInstrInfo::isLoadFromStackSlot(), llvm::ARCInstrInfo::isLoadFromStackSlot(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::LanaiInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::HexagonInstrInfo::isLoadFromStackSlot(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::AVRInstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), isLocalCopy(), isLogicalOpOnExec(), llvm::SMSchedule::isLoopCarriedDefOfUse(), llvm::SwingSchedulerDAG::isLoopCarriedDep(), isMergeableLdStUpdate(), isMMSourceRegister(), isMMThreeBitGPRegister(), IsMovepDestinationRegPair(), isNonFoldablePartialRegisterLoad(), isNopCopy(), llvm::InstructionSelector::isOperandImmEqual(), isOperandKill(), llvm::SIInstrInfo::isOperandLegal(), isORCopyInst(), isPhysicalRegCopy(), llvm::R600InstrInfo::isPredicated(), isPreISelGenericFloatingPointOpcode(), isPromotableZeroStoreInst(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isRedundantFlagInstr(), isRegOperand(), isRelevantAddressingMode(), isRematerializable(), isRenamable(), IsSafeAndProfitableToMove(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSameReg(), isSecondInstructionInSequence(), isSExtLoad(), llvm::SIInstrInfo::isSGPRStackAccess(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimpleBD12Move(), isSimpleIf(), isSimpleIndexCalc(), isSimpleMove(), llvm::SIInstrInfo::isStackAccess(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::MipsSEInstrInfo::isStoreToStackSlot(), llvm::LanaiInstrInfo::isStoreToStackSlot(), llvm::ARCInstrInfo::isStoreToStackSlot(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::HexagonInstrInfo::isStoreToStackSlot(), llvm::AVRInstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), isSubRegOf(), isSuitableForMask(), llvm::HexagonInstrInfo::isToBeScheduledASAP(), llvm::PPCInstrInfo::isTOCSaveMI(), isTransformable(), isTwoAddrUse(), isUseSafeToFold(), llvm::SIInstrInfo::isVGPRCopy(), isVirtualRegisterOperand(), llvm::AArch64LegalizerInfo::legalizeCustom(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsSMRD(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::LegalizerHelper::libcall(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), loadM0FromVGPR(), llvm::TargetRegisterInfo::lookThruCopyLike(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::Lower(), llvm::LegalizerHelper::lower(), llvm::ARMCallLowering::lowerCall(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), LowerFPToInt(), llvm::XCoreMCInstLower::LowerOperand(), llvm::ARCMCInstLower::LowerOperand(), llvm::SystemZMCInstLower::lowerOperand(), llvm::AArch64MCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::AArch64CallLowering::lowerReturn(), lowerRIEfLow(), lowerRIHigh(), lowerRILow(), llvm::LowerRISCVMachineOperandToMCOperand(), lowerSubvectorLoad(), lowerSubvectorStore(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), makeImplicit(), llvm::rdf::DataFlowGraph::makeRegRef(), llvm::MIPatternMatch::BinaryOp_match< LHS_P, RHS_P, Opcode, Commutable >::match(), llvm::MIPatternMatch::UnaryOp_match< SrcTy, Opcode >::match(), matchPair(), matchSwap(), mayAlias(), mayCombineMisaligned(), MIIsInTerminatorSequence(), Mips16WhichOp8uOr16simm(), MoveAndTeeForMultiUse(), llvm::MachineRegisterInfo::moveOperands(), llvm::SIInstrInfo::moveToVALU(), llvm::LegalizerHelper::narrowScalar(), llvm::AggressiveAntiDepBreaker::Observe(), OneUseDominatesOtherUses(), optimizeCall(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::X86InstrInfo::optimizeLoadInstr(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), optimizeVcndVcmpPair(), llvm::SMSchedule::orderDependence(), parseCond(), parseOperands(), performSink(), phiHasBreakDef(), phiHasVGPROperands(), populateCandidates(), preservesValueOf(), print(), llvm::SystemZAsmPrinter::PrintAsmMemoryOperand(), llvm::AVRAsmPrinter::PrintAsmMemoryOperand(), llvm::ARMAsmPrinter::PrintAsmMemoryOperand(), printAsmMRegister(), llvm::AVRAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), printExtendedName(), printIntelMemReference(), printLeaMemReference(), printMemReference(), llvm::AVRAsmPrinter::printOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printOperand(), llvm::ARMBaseInstrInfo::produceSameValue(), profitImm(), pushDepHeight(), readsVCCZ(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::TargetInstrInfo::reassociateOps(), llvm::HexagonInstrInfo::reduceLoopCount(), registerDefinedBetween(), regOverlapsSet(), llvm::WebAssemblyAsmPrinter::regToString(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::TargetInstrInfo::reMaterialize(), removeCopies(), RemoveDeadAddBetweenLEAAndJT(), removeKillInfo(), removePhis(), llvm::MachineRegisterInfo::removeRegOperandFromUseList(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::PPCInstrInfo::replaceInstrOperandWithImm(), llvm::PPCInstrInfo::replaceInstrWithLI(), rescheduleCanonically(), resultTests(), llvm::R600InstrInfo::reverseBranchCondition(), llvm::rewriteAArch64FrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), llvm::UnreachableBlockElimPass::run(), runOnBasicBlock(), llvm::InstructionSelect::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::R600SchedStrategy::schedNode(), llvm::ScheduleDAGMILive::scheduleMI(), selectCopy(), selectMergeValues(), selectUnmergeValues(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::X86InstrInfo::setExecutionDomainCustom(), setIsRenamable(), setM0ToIndexFromSGPR(), setReg(), llvm::X86InstrInfo::setSpecialOperandAttr(), llvm::AArch64InstrInfo::shouldClusterMemOps(), llvm::SIInstrInfo::shouldClusterMemOps(), llvm::HexagonRegisterInfo::shouldCoalesce(), llvm::SystemZRegisterInfo::shouldCoalesce(), shouldPreventUndefRegUpdateMemFold(), shrinkScalarLogicOp(), simpleLibcall(), SinkingPreventsImplicitNullCheck(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitMBB(), llvm::LiveDebugVariables::splitRegister(), false::Chain::str(), swapMIOperands(), swapRegAndNonRegOperand(), llvm::SystemZInstrInfo::SystemZInstrInfo(), llvm::TailDuplicator::tailDuplicateAndUpdate(), tieOpsIfNeeded(), TrackDefUses(), tryAddToFoldList(), tryChangeVGPRtoSGPRinCopy(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::CombinerHelper::tryCombineCopy(), llvm::CombinerHelper::tryCombineExtendingLoads(), llvm::LegalizationArtifactCombiner::tryCombineInstruction(), llvm::LegalizationArtifactCombiner::tryCombineMerges(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), tryConstantFoldOp(), llvm::LegalizationArtifactCombiner::tryFoldImplicitDef(), tryFoldInst(), llvm::tryFoldSPUpdateIntoPushPop(), tryOptimizeLEAtoMOV(), trySequenceOfOnes(), llvm::X86InstrInfo::unfoldMemoryOperand(), unsupportedBinOp(), llvm::AntiDepBreaker::UpdateDbgValue(), updateLiveIn(), llvm::HexagonPacketizerList::updateOffset(), updateOperand(), UpdateOperandRegClass(), updateOperandRegConstraints(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), llvm::HexagonSubtarget::usePredicatedCalls(), UseReg(), llvm::SIInstrInfo::usesConstantBus(), llvm::RegisterBankInfo::InstructionMapping::verify(), llvm::SIInstrInfo::verifyInstruction(), VerifyLowRegs(), llvm::MachineRegisterInfo::verifyUseList(), VisitGlobalVariableForEmission(), llvm::LegalizerHelper::widenScalar(), llvm::X86CallLowering::X86CallLowering(), X86SelectAddress(), and llvm::LiveDebugVariables::~LiveDebugVariables().
getRegLiveOut - Returns a bit mask of live-out registers.
Definition at line 625 of file MachineOperand.h.
References assert(), and isRegLiveOut().
Referenced by getDwarfRegNum(), and print().
getRegMask - Returns a bit mask of registers preserved by this RegMask operand.
Definition at line 614 of file MachineOperand.h.
References assert(), and isRegMask().
Referenced by clobbersPhysReg(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::hash_value(), INITIALIZE_PASS(), isIdenticalTo(), llvm::rdf::DataFlowGraph::makeRegRef(), matchPair(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::MIPrinter::print(), and print().
Returns number of elements needed for a regmask array.
Definition at line 620 of file MachineOperand.h.
Referenced by llvm::MachineFunction::allocateRegMask(), llvm::createRegUsageInfoCollector(), getMOVL(), and llvm::AArch64RegisterInfo::UpdateCustomCallPreservedMask().
|
inline |
Definition at line 354 of file MachineOperand.h.
References assert(), and isReg().
Referenced by addSegmentsWithValNo(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::HexagonInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::SIInstrInfo::buildExtractSubReg(), canFoldCopy(), canMoveInstsAcrossMemOp(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), computeBranchTargetAndInversion(), llvm::SystemZInstrInfo::convertToThreeAddress(), copyHint(), copyRegOperand(), definesFullReg(), llvm::HexagonFrameLowering::determineCalleeSaves(), dumpMachineInstrRangeWithSlotIndex(), emitLoadM0FromVGPRLoop(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::HexagonInstrInfo::expandPostRAPseudo(), findSingleRegDef(), findSRegBaseAndIndex(), llvm::SIInstrInfo::FoldImmediate(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), foldVGPRCopyIntoRegSequence(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::HexagonInstrInfo::getBaseAndOffset(), getDefRegMask(), getDwarfRegNum(), llvm::X86InstrInfo::getExecutionDomainCustom(), llvm::TargetInstrInfo::getExtractSubregInputs(), llvm::ARMBaseInstrInfo::getExtractSubregLikeInputs(), getImmOrMaterializedImm(), llvm::TargetInstrInfo::getInsertSubregInputs(), llvm::ARMBaseInstrInfo::getInsertSubregLikeInputs(), llvm::ScheduleDAGInstrs::getLaneMaskForMO(), getLiveLanesAt(), getNewSource(), getOModValue(), llvm::SIInstrInfo::getOpSize(), llvm::ARMBaseInstrInfo::getPartialRegUpdateClearance(), getRC32(), llvm::MachineInstr::getRegClassConstraintEffect(), llvm::TargetInstrInfo::getRegSequenceInputs(), llvm::ARMBaseInstrInfo::getRegSequenceLikeInputs(), llvm::getRegSubRegPair(), getRegsUsedByPHIs(), getSrcFromCopy(), getUsedRegMask(), llvm::hash_value(), INITIALIZE_PASS(), insertPHI(), insertUndefLaneMask(), llvm::rdf::CopyPropagation::interpretAsCopy(), llvm::X86InstrInfo::isCoalescableExtInstr(), isCopy(), isCrossCopy(), isDebug(), llvm::rdf::TargetOperandInfo::isFixedReg(), llvm::MachineInstr::isFullCopy(), isFullUndefDef(), isIdenticalTo(), llvm::MachineInstr::isIdentityCopy(), isImmValidForOpcode(), llvm::SIInstrInfo::isLegalRegOperand(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SIInstrInfo::isOperandLegal(), isSafeToFoldImmIntoCopy(), isSameReg(), isSExtLoad(), isSimpleIf(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), isSubRegOf(), isUseSafeToFold(), isVirtualRegisterOperand(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::rdf::DataFlowGraph::makeRegRef(), matchPair(), matchSwap(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeLoadInstr(), optimizeVcndVcmpPair(), print(), llvm::ARMAsmPrinter::printOperand(), profitImm(), readsReg(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::UnreachableBlockElimPass::run(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::X86InstrInfo::setExecutionDomainCustom(), llvm::TailDuplicator::shouldTailDuplicate(), llvm::LiveDebugVariables::splitRegister(), substPhysReg(), substVirtReg(), swapRegAndNonRegOperand(), tryFoldInst(), and updateOperand().
Definition at line 592 of file MachineOperand.h.
References assert(), and isSymbol().
Referenced by addExclusiveRegPair(), llvm::ARCMCInstLower::ARCMCInstLower(), llvm::BTFDebug::beginInstruction(), EmitGCCInlineAsmStr(), EmitHiLo(), llvm::SystemZMCInstLower::getExpr(), llvm::MSP430MCInstLower::GetExternalSymbolSymbol(), llvm::BPFMCInstLower::GetExternalSymbolSymbol(), llvm::LanaiMCInstLower::GetExternalSymbolSymbol(), llvm::AArch64MCInstLower::GetExternalSymbolSymbol(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::ARCInstrInfo::getInstSizeInBytes(), llvm::RISCVInstrInfo::getInstSizeInBytes(), llvm::MSP430InstrInfo::getInstSizeInBytes(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::MipsInstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::getInstSizeInBytes(), llvm::SIInstrInfo::getInstSizeInBytes(), llvm::HexagonInstrInfo::getSize(), GetSymbolFromOperand(), getVariantKind(), llvm::hash_value(), llvm::HexagonLowerToMC(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), isIdenticalTo(), isSimilarDispOp(), llvm::MipsCallLowering::lowerCall(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), makeImplicit(), llvm::rdf::operator<<(), optimizeCall(), print(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::AVRAsmPrinter::printOperand(), Query(), trySequenceOfOnes(), and VisitGlobalVariableForEmission().
|
inline |
Definition at line 215 of file MachineOperand.h.
References isReg().
Referenced by llvm::MachineInstrBuilder::addDisp(), addExclusiveRegPair(), canDefBePartOfLOH(), createPHIsForCMOVsInSinkBB(), emitDirectiveRelocJalr(), EmitHiLo(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::MipsInstrInfo::genInstrWithNewOpc(), llvm::MSP430MCInstLower::GetBlockAddressSymbol(), llvm::MSP430MCInstLower::GetConstantPoolIndexSymbol(), llvm::MSP430MCInstLower::GetExternalSymbolSymbol(), llvm::MSP430MCInstLower::GetGlobalAddressSymbol(), llvm::AArch64MCInstLower::GetGlobalAddressSymbol(), llvm::MSP430MCInstLower::GetJumpTableSymbol(), GetSymbolFromOperand(), GetSymbolRef(), getVariantKind(), handleMiddleInst(), handleUse(), llvm::hash_value(), llvm::HexagonLowerToMC(), llvm::MipsMCInstLower::Initialize(), INITIALIZE_PASS(), isCandidateLoad(), llvm::HexagonInstrInfo::isConstExtended(), isIdenticalTo(), llvm::WebAssemblyMCInstLower::Lower(), llvm::SystemZMCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), lowerSymbolOperand(), LowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::LanaiMCInstLower::LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandCOFF(), llvm::AArch64MCInstLower::lowerSymbolOperandDarwin(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), makeImplicit(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printSymbolOperand(), printTargetFlags(), and trySequenceOfOnes().
|
inline |
getType - Returns the MachineOperandType for this operand.
Definition at line 213 of file MachineOperand.h.
Referenced by llvm::MachineInstrBuilder::addDisp(), llvm::MachineInstr::addOperand(), canDefBePartOfLOH(), compareMachineOp(), ConvertDoubleToBytes(), EmitHiLo(), EmitNops(), llvm::SystemZMCInstLower::getExpr(), getRetOpcode(), getVariantKind(), llvm::hash_value(), HashMachineInstr(), llvm::HexagonLowerToMC(), INITIALIZE_PASS(), IsAnAddressOperand(), llvm::DenseMapInfo< MachineOperand >::isEqual(), isIdenticalTo(), llvm::SIInstrInfo::isLiteralConstantLike(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::Lower(), llvm::XCoreMCInstLower::LowerOperand(), llvm::ARCMCInstLower::LowerOperand(), llvm::SystemZMCInstLower::lowerOperand(), llvm::AArch64MCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineOperandToMCOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), LowerSymbolOperand(), makeImplicit(), matchPair(), llvm::MIPrinter::print(), print(), llvm::WebAssemblyAsmPrinter::PrintAsmOperand(), llvm::X86AsmPrinter::PrintAsmOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), llvm::AsmPrinter::PrintAsmOperand(), printLeaMemReference(), llvm::AVRAsmPrinter::printOperand(), llvm::HexagonAsmPrinter::printOperand(), llvm::ARMAsmPrinter::printOperand(), llvm::MipsAsmPrinter::printOperand(), printOperand(), printPCRelImm(), printSymbolOperand(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::AArch64InstrInfo::shouldClusterMemOps(), and VisitGlobalVariableForEmission().
|
inline |
isBlockAddress - Tests if this is a MO_BlockAddress operand.
Definition at line 333 of file MachineOperand.h.
References MO_BlockAddress.
Referenced by getBlockAddress(), getOffset(), llvm::HexagonInstrInfo::isConstExtended(), isSimilarDispOp(), isValidDispOp(), and setOffset().
|
inline |
Definition at line 341 of file MachineOperand.h.
References MO_CFIIndex.
Referenced by getCFIIndex().
|
inline |
isCImm - Test if this is a MO_CImmediate operand.
Definition at line 315 of file MachineOperand.h.
References MO_CImmediate.
Referenced by llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), buildEXP(), changeFCMPPredToAArch64CC(), emitDebugValueComment(), llvm::InstructionSelector::executeMatchTable(), getCImm(), llvm::getConstantVRegVal(), getDebugLocValue(), getLeaOP(), and setCImm().
|
inline |
isCPI - Tests if this is a MO_ConstantPoolIndex operand.
Definition at line 323 of file MachineOperand.h.
References MO_ConstantPoolIndex.
Referenced by BBIsJumpedOver(), canFoldIntoMOVCC(), canFoldIntoSelect(), EmitHiLo(), getConstantFromPool(), getIndex(), getOffset(), getUnconditionalBrDisp(), isAnImmediateOperand(), llvm::HexagonInstrInfo::isConstExtended(), llvm::isLeaMem(), isSimilarDispOp(), isValidDispOp(), setIndex(), setOffset(), and trySequenceOfOnes().
|
inline |
Definition at line 374 of file MachineOperand.h.
References assert(), and isReg().
Referenced by addExclusiveRegPair(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::MachineInstr::addRegisterDead(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::MachineOperandIteratorBase::analyzePhysReg(), canFoldIntoMOVCC(), canFoldIntoSelect(), ChangeToRegister(), llvm::X86InstrInfo::classifyLEAReg(), llvm::PPCInstrInfo::commuteInstructionImpl(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), copyRegOperand(), llvm::createCopyConstrainDAGMutation(), CreateReg(), definesFullReg(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::finalizeBundle(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::ARMBaseInstrInfo::FoldImmediate(), GetDSubRegs(), getFPReg(), getLiveLanesAt(), getMopState(), getNewSource(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::getRegState(), llvm::LiveVariables::HandleVirtRegDef(), llvm::X86InstrInfo::hasLiveCondCodeDef(), llvm::X86InstrInfo::hasReassociableOperands(), INITIALIZE_PASS(), InsertLDR_STR(), isCallerPreservedOrConstPhysReg(), llvm::rdf::TargetOperandInfo::isClobbering(), llvm::IsCPSRDead< MachineInstr >(), isCrossCopy(), isDataInvariant(), isDataInvariantLoad(), isFpMulInstruction(), isFullUndefDef(), llvm::MachineInstr::isIdenticalTo(), isLoadAndTestAsCmp(), isNopCopy(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSimpleIf(), isVirtualRegisterOperand(), makeImplicit(), matchPair(), MoveAndTeeForMultiUse(), print(), setRegMask(), llvm::X86InstrInfo::setSpecialOperandAttr(), swapRegAndNonRegOperand(), trySequenceOfOnes(), UpdateCPSRUse(), updatePhysDepsDownwards(), and VerifyLowRegs().
|
inline |
Definition at line 435 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::MachineInstr::addRegisterKilled(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), ChangeToRegister(), CreateReg(), llvm::getRegState(), matchPair(), setIsDef(), setIsKill(), setRegMask(), and swapRegAndNonRegOperand().
|
inline |
Definition at line 364 of file MachineOperand.h.
References assert(), and isReg().
Referenced by addLiveInRegs(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::MachineInstr::addRegisterDead(), llvm::MachineRegisterInfo::addRegOperandToUseList(), addRegsToSet(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::MachineOperandIteratorBase::analyzePhysReg(), llvm::MachineOperandIteratorBase::analyzeVirtReg(), llvm::HexagonSubtarget::CallMutation::apply(), llvm::BTFDebug::beginInstruction(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::HexagonInstrInfo::canExecuteInBundle(), canFoldIntoMOVCC(), canFoldIntoSelect(), ChangeToRegister(), clobbersCTR(), computeBytesPoppedByCalleeForSRet(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), createBBSelectReg(), llvm::createLanaiDelaySlotFillerPass(), CreateReg(), llvm::createSparcDelaySlotFillerPass(), llvm::createX86FixupLEAs(), CriticalPathStep(), definesFullReg(), llvm::ARMBaseInstrInfo::DefinesPredicate(), llvm::HexagonInstrInfo::DefinesPredicate(), llvm::PPCInstrInfo::DefinesPredicate(), dumpMachineInstrRangeWithSlotIndex(), EmitGCCInlineAsmStr(), emitKill(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::HexagonEvaluator::evaluate(), llvm::finalizeBundle(), llvm::SMSchedule::finalizeSchedule(), findDeadCallerSavedReg(), findDefIdx(), llvm::MachineInstr::findRegisterDefOperandIdx(), findSingleRegUse(), findUseIdx(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::RegBankSelect::getAnalysisUsage(), getDefRegMask(), llvm::PPCInstrInfo::getInstrLatency(), getInstrVecReg(), getLiveLanesAt(), getNewSource(), getNewValueJumpOpcode(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::MachineInstr::getNumExplicitDefs(), llvm::getRegState(), getRegsUsedByPHIs(), llvm::HexagonInstrInfo::getSize(), handleNormalInst(), llvm::LiveVariables::HandleVirtRegDef(), llvm::hash_value(), llvm::X86InstrInfo::hasLiveCondCodeDef(), hasRegisterDependency(), hasUseAfterLoop(), INITIALIZE_PASS(), isCallerPreservedOrConstPhysReg(), llvm::WebAssembly::isChild(), llvm::rdf::TargetOperandInfo::isClobbering(), isCopyFeedingInvariantStore(), isCrossCopy(), isDebug(), llvm::rdf::TargetOperandInfo::isFixedReg(), isIdenticalTo(), llvm::MachineInstr::isIdenticalTo(), llvm::SMSchedule::isLoopCarriedDefOfUse(), isNopCopy(), isOperandKill(), llvm::MachineInstr::isRegTiedToUseOperand(), isRenamable(), IsSafeAndProfitableToMove(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSimpleIf(), isSimpleIndexCalc(), isVirtualRegisterOperand(), llvm::Mips16InstrInfo::loadImmediate(), matchPair(), MIIsInTerminatorSequence(), llvm::SIInstrInfo::moveToVALU(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeLoadInstr(), llvm::SMSchedule::orderDependence(), parseOperands(), llvm::PatchPointOpers::PatchPointOpers(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), printImplicitRegisterFlag(), llvm::R600SchedStrategy::releaseBottomNode(), RemoveDeadAddBetweenLEAAndJT(), removePhis(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), rescheduleCanonically(), resultTests(), setRegMask(), substPhysReg(), llvm::MachineInstr::tieOperands(), tryAddToFoldList(), updateOperand(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), and llvm::HexagonSubtarget::usePredicatedCalls().
|
inline |
Definition at line 425 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), createDeadDef(), llvm::LiveRangeCalc::createDeadDefs(), CreateReg(), CriticalPathStep(), definesFullReg(), dumpMachineInstrRangeWithSlotIndex(), getMopState(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::LiveVariables::HandleVirtRegDef(), INITIALIZE_PASS(), matchPair(), and print().
|
inline |
isFI - Tests if this is a MO_FrameIndex operand.
Definition at line 321 of file MachineOperand.h.
References MO_FrameIndex.
Referenced by llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), canFoldIntoMOVCC(), canFoldIntoSelect(), llvm::HexagonFrameLowering::determineCalleeSaves(), doCandidateWalk(), llvm::BPFRegisterInfo::eliminateFrameIndex(), emitDebugValueComment(), llvm::TargetLoweringBase::emitPatchPoint(), findNextInsertLocation(), foldImmediates(), llvm::HexagonFrameLowering::getAlignaInstr(), getFrameIndexOperandNum(), getIndex(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getOModValue(), llvm::X86InstrInfo::getSPAdjust(), llvm::AArch64InstrInfo::isCandidateToMergeOrPair(), isCSRestore(), isEFLAGSLive(), llvm::PPCRegisterInfo::isFrameOffsetLegal(), llvm::ARMBaseRegisterInfo::isFrameOffsetLegal(), llvm::SIInstrInfo::isImmOperandLegal(), llvm::isLeaMem(), llvm::SIInstrInfo::isLegalVSrcOperand(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::MipsSEInstrInfo::isLoadFromStackSlot(), llvm::ARCInstrInfo::isLoadFromStackSlot(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::LanaiInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::HexagonInstrInfo::isLoadFromStackSlot(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::AVRInstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), llvm::isMem(), llvm::SIInstrInfo::isOperandLegal(), isRelevantAddressingMode(), llvm::SIInstrInfo::isSGPRStackAccess(), isSimpleMove(), llvm::SIInstrInfo::isStackAccess(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::MipsSEInstrInfo::isStoreToStackSlot(), llvm::LanaiInstrInfo::isStoreToStackSlot(), llvm::ARCInstrInfo::isStoreToStackSlot(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::HexagonInstrInfo::isStoreToStackSlot(), llvm::AVRInstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), lookupCandidateBaseReg(), MatchingStackOffset(), llvm::AArch64RegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), false::IntervalSorter::operator()(), llvm::ThumbRegisterInfo::resolveFrameIndex(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::AArch64RegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), runOnBasicBlock(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ScheduleDAGMILive::scheduleMI(), setIndex(), llvm::AArch64InstrInfo::shouldClusterMemOps(), swapRegAndNonRegOperand(), tryAddToFoldList(), tryFoldInst(), UpdateOperandRegClass(), and llvm::SIInstrInfo::verifyInstruction().
|
inline |
isFPImm - Tests if this is a MO_FPImmediate operand.
Definition at line 317 of file MachineOperand.h.
References MO_FPImmediate.
Referenced by llvm::DwarfUnit::addConstantFPValue(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), buildEXP(), emitDebugValueComment(), llvm::SIInstrInfo::expandPostRAPseudo(), getDebugLocValue(), getFPImm(), llvm::HexagonInstrInfo::isConstExtended(), setFPImm(), and llvm::SIInstrInfo::verifyInstruction().
|
inline |
isGlobal - Tests if this is a MO_GlobalAddress operand.
Definition at line 329 of file MachineOperand.h.
References MO_GlobalAddress.
Referenced by addExclusiveRegPair(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::EHStreamer::callToNoUnwindFunction(), createPHIsForCMOVsInSinkBB(), llvm::createSparcDelaySlotFillerPass(), EmitHiLo(), EmitNop(), eraseDeadBBsAndChildren(), llvm::getAddressFromInstr(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getGlobal(), llvm::rdf::DataFlowGraph::getNextShadow(), getOffset(), llvm::R600InstrInfo::getSrcs(), GetSymbolFromOperand(), hasLEAOffset(), isAnImmediateOperand(), llvm::WebAssembly::isCatchAllTerminatePad(), llvm::WebAssembly::isCatchTerminatePad(), llvm::HexagonInstrInfo::isConstExtended(), llvm::isLeaMem(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimilarDispOp(), isValidDispOp(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), llvm::WebAssembly::mayThrow(), llvm::rdf::operator<<(), QueryCallee(), llvm::DetectRoundChange::runOnMachineFunction(), setOffset(), llvm::DwarfDebug::shareAcrossDWOCUs(), swapMIOperands(), and trySequenceOfOnes().
bool MachineOperand::isIdenticalTo | ( | const MachineOperand & | Other | ) | const |
Returns true if this operand is identical to the specified operand except for liveness related flags (isKill, isUndef and isDead).
isIdenticalTo - Return true if this operand is identical to the specified operand.
Note that this should stay in sync with the hash_value overload below.
Definition at line 261 of file MachineOperand.cpp.
References llvm::lltok::equal, getBlockAddress(), getCFIIndex(), getCImm(), getFPImm(), getGlobal(), getImm(), getIndex(), getIntrinsicID(), getMBB(), getMCSymbol(), getMetadata(), getMFIfAvailable(), llvm::MCRegisterInfo::getNumRegs(), getOffset(), getPredicate(), getReg(), getRegMask(), getSubReg(), getSymbolName(), getTargetFlags(), getType(), isDef(), llvm_unreachable, MO_BlockAddress, MO_CFIIndex, MO_CImmediate, MO_ConstantPoolIndex, MO_ExternalSymbol, MO_FPImmediate, MO_FrameIndex, MO_GlobalAddress, MO_Immediate, MO_IntrinsicID, MO_JumpTableIndex, MO_MachineBasicBlock, MO_MCSymbol, MO_Metadata, MO_Predicate, MO_Register, MO_RegisterLiveOut, MO_RegisterMask, MO_TargetIndex, RegMask, and TRI.
Referenced by llvm::X86InstrInfo::analyzeBranchPredicate(), llvm::LanaiInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::AArch64InstrInfo::areMemAccessesTriviallyDisjoint(), createPHIsForSelects(), getUnderlyingObjects(), llvm::DenseMapInfo< MachineOperand >::isEqual(), isIdenticalOp(), llvm::MachineInstr::isIdenticalTo(), isImplicitOperandIn(), llvm::SwingSchedulerDAG::isLoopCarriedDep(), memOpsHaveSameBasePtr(), offsetsDoNotOverlap(), llvm::ARMBaseInstrInfo::produceSameValue(), setRegMask(), llvm::AArch64InstrInfo::shouldClusterMemOps(), and tryFoldInst().
|
inline |
isImm - Tests if this is a MO_Immediate operand.
Definition at line 313 of file MachineOperand.h.
References MO_Immediate.
Referenced by llvm::DwarfUnit::addConstantValue(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::SystemZInstrInfo::analyzeCompare(), llvm::HexagonInstrInfo::analyzeCompare(), llvm::X86InstrInfo::analyzeCompare(), areCandidatesToMergeOrPair(), areCombinableOperations(), llvm::HexagonInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::SIInstrInfo::buildExtractSubRegOrImm(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canCompareBeNewValueJump(), canFoldIntoCSel(), canMoveInstsAcrossMemOp(), changeFCMPPredToAArch64CC(), ConvertDoubleToBytes(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::createHexagonHardwareLoops(), llvm::createSparcDelaySlotFillerPass(), llvm::createX86OptimizeLEAs(), llvm::X86RegisterInfo::eliminateFrameIndex(), emitDebugValueComment(), llvm::PPCFrameLowering::emitEpilogue(), EmitGCCInlineAsmStr(), EmitHiLo(), EmitNop(), EmitNops(), llvm::HexagonEvaluator::evaluate(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::MachineInstr::findInlineAsmFlagIdx(), findSingleRegDef(), llvm::MachineInstr::findTiedOperandIdx(), findUncondBrI(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), foldImmediates(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), getADDriFromLEA(), llvm::HexagonInstrInfo::getBaseAndOffset(), llvm::HexagonInstrInfo::getBaseAndOffsetPosition(), llvm::HexagonInstrInfo::getCompoundCandidateGroup(), llvm::HexagonInstrInfo::getCompoundOpcode(), llvm::getConstantVRegVal(), getDebugLocValue(), getDPPOp(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getDwarfRegNum(), llvm::X86InstrInfo::getExecutionDomainCustom(), llvm::TargetInstrInfo::getExtractSubregInputs(), llvm::R600InstrInfo::getFlagOp(), GetImm(), getImm(), getImmOrMaterializedImm(), llvm::HexagonInstrInfo::getIncrementValue(), llvm::TargetInstrInfo::getInsertSubregInputs(), getLeaOP(), llvm::X86InstrInfo::getMemOperandWithOffset(), llvm::LanaiInstrInfo::getMemOperandWithOffsetWidth(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getOModValue(), llvm::AArch64InstrInfo::getOutliningType(), llvm::TargetInstrInfo::getRegSequenceInputs(), llvm::X86InstrInfo::getSPAdjust(), llvm::R600InstrInfo::getSrcs(), getStoreOffset(), getUnconditionalBrDisp(), getWinAllocaAmount(), hasLEAOffset(), llvm::HexagonInstrInfo::immediateExtend(), INITIALIZE_PASS(), insertUndefLaneMask(), llvm::ARMBaseInstrInfo::isAddrMode3OpMinusReg(), isAnImmediateOperand(), llvm::AArch64InstrInfo::isCandidateToMergeOrPair(), isCompareZero(), llvm::HexagonInstrInfo::isConstExtended(), llvm::MipsSEInstrInfo::isCopyInstrImpl(), llvm::AArch64InstrInfo::isGPRZero(), isGreaterThanNBitTFRI(), llvm::SIInstrInfo::isImmOperandLegal(), isImmValidForOpcode(), llvm::MachineInstr::isIndirectDebugValue(), llvm::SIInstrInfo::isInlineConstant(), llvm::isLeaMem(), isLEASimpleIncOrDec(), llvm::SIInstrInfo::isLegalVSrcOperand(), llvm::SIInstrInfo::isLiteralConstant(), llvm::RISCVInstrInfo::isLoadFromStackSlot(), llvm::MipsSEInstrInfo::isLoadFromStackSlot(), llvm::ARCInstrInfo::isLoadFromStackSlot(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::LanaiInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::HexagonInstrInfo::isLoadFromStackSlot(), llvm::AArch64InstrInfo::isLoadFromStackSlot(), llvm::AVRInstrInfo::isLoadFromStackSlot(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), llvm::SIInstrInfo::isOperandLegal(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isRelevantAddressingMode(), isSafeToFoldImmIntoCopy(), llvm::isScale(), isSimilarDispOp(), llvm::RISCVInstrInfo::isStoreToStackSlot(), llvm::MipsSEInstrInfo::isStoreToStackSlot(), llvm::LanaiInstrInfo::isStoreToStackSlot(), llvm::ARCInstrInfo::isStoreToStackSlot(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::AArch64InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::HexagonInstrInfo::isStoreToStackSlot(), llvm::AVRInstrInfo::isStoreToStackSlot(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isTOCSaveMI(), isUseSafeToFold(), isValidDispOp(), isZeroImm(), llvm::MipsInstrInfo::isZeroImm(), llvm::SIInstrInfo::legalizeOperandsVOP2(), makeImplicit(), matchPair(), matchSwap(), llvm::SIInstrInfo::moveToVALU(), optimizeVcndVcmpPair(), llvm::TargetInstrInfo::PredicateInstruction(), llvm::MachineInstr::print(), llvm::HexagonAsmPrinter::PrintAsmMemoryOperand(), llvm::MipsAsmPrinter::PrintAsmMemoryOperand(), llvm::SystemZAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::X86AsmPrinter::PrintAsmOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), printExtendedName(), printIntelMemReference(), profitImm(), llvm::X86InstrInfo::setExecutionDomainCustom(), setImm(), llvm::R600InstrInfo::setImmOperand(), shrinkScalarCompare(), shrinkScalarLogicOp(), swapMIOperands(), swapRegAndNonRegOperand(), tryAddToFoldList(), tryConstantFoldOp(), tryFoldInst(), llvm::SIInstrInfo::usesConstantBus(), validThroughout(), verifyInsExtInstruction(), llvm::SIInstrInfo::verifyInstruction(), VerifyLowRegs(), and VisitGlobalVariableForEmission().
|
inline |
Definition at line 369 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), llvm::MachineInstr::addOperand(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::TargetSchedModel::computeOperandLatency(), ContainsReg(), copyExtraImplicitOps(), llvm::MachineInstr::copyImplicitOps(), llvm::createSparcDelaySlotFillerPass(), definesFullReg(), dumpMachineInstrRangeWithSlotIndex(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), getDwarfRegNum(), llvm::PPCInstrInfo::getInstrLatency(), getMopState(), getNewSource(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::MachineInstr::getNumExplicitDefs(), llvm::MachineInstr::getNumExplicitOperands(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::HexagonInstrInfo::getOperandLatency(), llvm::getRegState(), getRetOpcode(), llvm::MachineInstr::hasRegisterImplicitUseOperand(), hasVulnerableLoad(), llvm::HexagonLowerToMC(), INITIALIZE_PASS(), isCallerPreservedOrConstPhysReg(), llvm::WebAssembly::isChild(), isCopyFeedingInvariantStore(), isImmValidForOpcode(), isNopCopy(), isOperandKill(), isUseSafeToFold(), isVirtualRegisterOperand(), llvm::SystemZMCInstLower::lower(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::Lower(), llvm::XCoreMCInstLower::LowerOperand(), llvm::ARCMCInstLower::LowerOperand(), llvm::AArch64MCInstLower::lowerOperand(), llvm::MipsMCInstLower::LowerOperand(), LowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerRISCVMachineOperandToMCOperand(), matchPair(), MoveAndTeeForMultiUse(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::PatchPointOpers::PatchPointOpers(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), printImplicitRegisterFlag(), llvm::PPCInstrInfo::replaceInstrOperandWithImm(), llvm::PPCInstrInfo::replaceInstrWithLI(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SIInstrInfo::usesConstantBus(), llvm::SIInstrInfo::verifyInstruction(), and VerifyLowRegs().
|
inline |
Definition at line 420 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::TargetInstrInfo::commuteInstructionImpl(), CreateReg(), getLiveLanesAt(), llvm::getRegState(), INITIALIZE_PASS(), matchPair(), print(), readsReg(), and VerifyLowRegs().
|
inline |
Definition at line 342 of file MachineOperand.h.
References MO_IntrinsicID.
Referenced by changeFCMPPredToAArch64CC(), llvm::InstructionSelector::executeMatchTable(), getIntrinsicID(), and isInstrUniform().
|
inline |
isJTI - Tests if this is a MO_JumpTableIndex operand.
Definition at line 327 of file MachineOperand.h.
References MO_JumpTableIndex.
Referenced by canFoldIntoMOVCC(), canFoldIntoSelect(), llvm::createX86OptimizeLEAs(), getIndex(), GetSymbolRef(), llvm::HexagonInstrInfo::isConstExtended(), llvm::isLeaMem(), isSimilarDispOp(), isValidDispOp(), lowerSymbolOperand(), llvm::AVRMCInstLower::lowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::BPFMCInstLower::LowerSymbolOperand(), llvm::LanaiMCInstLower::LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandCOFF(), llvm::AArch64MCInstLower::lowerSymbolOperandDarwin(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), and setIndex().
|
inline |
Definition at line 379 of file MachineOperand.h.
References assert(), and isReg().
Referenced by addExclusiveRegPair(), llvm::MachineInstr::addRegisterKilled(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::MachineOperandIteratorBase::analyzePhysReg(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::X86InstrInfo::classifyLEAReg(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), ContainsReg(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), copyFlagsToImplicitVCC(), copyRegOperand(), createBBSelectReg(), CreateReg(), llvm::SIRegisterInfo::eliminateFrameIndex(), emitBuildPairF64Pseudo(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), emitSplitF64Pseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::finalizeBundle(), findIncDecAfter(), findPotentialBlockers(), llvm::MachineInstr::findRegisterUseOperandIdx(), findSingleRegDef(), finishConvertToThreeAddress(), llvm::fixStackStores(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), genFusedMultiply(), genMaddR(), GetDSubRegs(), getMopState(), getNewValueJumpOpcode(), getPostIndexedLoadStoreOpcode(), llvm::getRegState(), INITIALIZE_PASS(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertSPConstInst(), InsertSPImmInst(), isFpMulInstruction(), llvm::MachineInstr::isIdenticalTo(), isLEASimpleIncOrDec(), isOperandKill(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSimpleIndexCalc(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), matchPair(), preserveCondRegFlags(), print(), llvm::TargetInstrInfo::reassociateOps(), registerDefinedBetween(), removeKillInfo(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), ReplaceFrameIndex(), setRegMask(), false::Chain::str(), swapMIOperands(), swapRegAndNonRegOperand(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tryOptimizeLEAtoMOV(), UpdateCPSRUse(), updateKillStatus(), updatePhysDepsDownwards(), and VerifyLowRegs().
|
inline |
isMBB - Tests if this is a MO_MachineBasicBlock operand.
Definition at line 319 of file MachineOperand.h.
References MO_MachineBasicBlock.
Referenced by llvm::HexagonInstrInfo::analyzeBranch(), llvm::SystemZInstrInfo::analyzeBranch(), llvm::PPCInstrInfo::analyzeBranch(), llvm::HexagonInstrInfo::getDotNewPredJumpOp(), getMBB(), getNewValueJumpOpcode(), getTargetMBB(), llvm::HexagonInstrInfo::immediateExtend(), INITIALIZE_PASS(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::HexagonInstrInfo::isConstExtended(), isSimilarDispOp(), isValidDispOp(), lowerSymbolOperand(), matchPair(), llvm::rdf::operator<<(), llvm::TargetInstrInfo::PredicateInstruction(), llvm::SystemZInstrInfo::removeBranch(), setMBB(), splitBlock(), and splitEdge().
|
inline |
Definition at line 340 of file MachineOperand.h.
References MO_MCSymbol.
Referenced by emitDirectiveRelocJalr(), llvm::MipsInstrInfo::genInstrWithNewOpc(), getMCSymbol(), getOffset(), isSimilarDispOp(), isValidDispOp(), and setOffset().
|
inline |
isMetadata - Tests if this is a MO_Metadata operand.
Definition at line 339 of file MachineOperand.h.
References MO_Metadata.
Referenced by EmitGCCInlineAsmStr(), EmitMSInlineAsmStr(), getMetadata(), matchPair(), llvm::MachineInstr::print(), printExtendedName(), and setMetadata().
|
inline |
Definition at line 343 of file MachineOperand.h.
References MO_Predicate.
Referenced by llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), and getPredicate().
|
inline |
isReg - Tests if this is a MO_Register operand.
Definition at line 311 of file MachineOperand.h.
References MO_Register.
Referenced by addLiveInRegs(), llvm::GISelInstProfileBuilder::addNodeIDMachineOperand(), llvm::MachineInstr::addOperand(), llvm::MachineInstr::addRegisterDead(), llvm::MachineInstr::addRegisterKilled(), addRegsToSet(), addTargetFlag(), llvm::HexagonSubtarget::adjustSchedDependency(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::AArch64InstrInfo::analyzeCompare(), llvm::SystemZInstrInfo::analyzeCompare(), llvm::MachineOperandIteratorBase::analyzePhysReg(), llvm::MachineOperandIteratorBase::analyzeVirtReg(), AnyAliasLiveIn(), llvm::LiveRangeEdit::anyRematerializable(), llvm::HexagonSubtarget::CallMutation::apply(), llvm::HexagonSubtarget::BankConflictMutation::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::BTFDebug::beginInstruction(), llvm::BuildMI(), llvm::ScheduleDAGInstrs::buildSchedGraph(), canCombine(), llvm::HexagonInstrInfo::canExecuteInBundle(), canFoldIntoMOVCC(), canFoldIntoSelect(), canMoveInstsAcrossMemOp(), llvm::HexagonPacketizerList::canPromoteToNewValueStore(), llvm::SIInstrInfo::canShrink(), changeFCMPPredToAArch64CC(), ChangeToES(), ChangeToFPImmediate(), ChangeToFrameIndex(), ChangeToImmediate(), ChangeToMCSymbol(), ChangeToRegister(), ChangeToTargetIndex(), checkRegOnlyPHIInputs(), clobbersCTR(), llvm::MachineInstr::collectDebugValues(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::SIInstrInfo::commuteInstructionImpl(), llvm::HexagonEvaluator::composeWithSubRegIndex(), computeBytesPoppedByCalleeForSRet(), computeExprForSpill(), llvm::constrainSelectedInstRegOperands(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), copyExtraImplicitOps(), llvm::MachineInstr::copyImplicitOps(), copyRegOperand(), llvm::createBreakFalseDeps(), llvm::createHexagonHardwareLoops(), llvm::createLanaiDelaySlotFillerPass(), createPHIsForCMOVsInSinkBB(), llvm::createSIWholeQuadModePass(), llvm::createSparcDelaySlotFillerPass(), llvm::createX86FixupLEAs(), CriticalPathStep(), definesFullReg(), llvm::ARMBaseInstrInfo::DefinesPredicate(), llvm::HexagonInstrInfo::DefinesPredicate(), llvm::PPCInstrInfo::DefinesPredicate(), doCandidateWalk(), dumpMachineInstrRangeWithSlotIndex(), earlyUseOperand(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), emitDebugValueComment(), EmitGCCInlineAsmStr(), EmitHiLo(), emitIndirectDst(), emitKill(), llvm::SystemZPostRASchedStrategy::enterMBB(), eraseGPOpnd(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::HexagonEvaluator::evaluate(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::InstructionSelector::executeMatchTable(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::DbgVariableLocation::extractFromMachineInstruction(), llvm::finalizeBundle(), llvm::SMSchedule::finalizeSchedule(), llvm::MipsInstrInfo::findCommutedOpIndices(), llvm::X86InstrInfo::findCommutedOpIndices(), llvm::TargetInstrInfo::findCommutedOpIndices(), findDeadCallerSavedReg(), findDefIdx(), findNextInsertLocation(), findPotentialBlockers(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::MachineInstr::findRegisterUseOperandIdx(), findSingleRegDef(), findSingleRegUse(), findSRegBaseAndIndex(), llvm::MachineInstr::findTiedOperandIdx(), findUseIdx(), finishConvertToThreeAddress(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), llvm::SIInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), llvm::X86InstrInfo::foldMemoryOperandImpl(), for(), forceReg(), FuseInst(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::getAddressFromInstr(), llvm::RegBankSelect::getAnalysisUsage(), getBaseAddressRegister(), llvm::HexagonInstrInfo::getBaseAndOffsetPosition(), getCallTargetRegOpnd(), getConstant(), getDataDeps(), getDebugLocValue(), getDefRegMask(), getDPPOp(), getDwarfRegNum(), getFMAPatterns(), getFoldableImm(), getFPReg(), llvm::HexagonHazardRecognizer::getHazardType(), getImmOrMaterializedImm(), llvm::PPCInstrInfo::getInstrLatency(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RegisterBankInfo::getInstrMappingImpl(), getInstrVecReg(), getLiveLanesAt(), getMaddPatterns(), llvm::SIInstrInfo::getMemOperandWithOffset(), llvm::HexagonInstrInfo::getMemOperandWithOffset(), llvm::X86InstrInfo::getMemOperandWithOffset(), llvm::LanaiInstrInfo::getMemOperandWithOffsetWidth(), llvm::AArch64InstrInfo::getMemOperandWithOffsetWidth(), getNewSource(), getNewValueJumpOpcode(), llvm::PatchPointOpers::getNextScratchIdx(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::MachineInstr::getNumExplicitDefs(), llvm::MachineInstr::getNumExplicitOperands(), getOModValue(), llvm::HexagonInstrInfo::getOperandLatency(), llvm::SIInstrInfo::getOpSize(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), llvm::AArch64InstrInfo::getOutliningType(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), llvm::R600AsmPrinter::getPassName(), getPostIncrementOperand(), getReg(), llvm::MachineInstr::getRegClassConstraintEffect(), llvm::MachineInstr::getRegClassConstraintEffectForVReg(), getRegOrUndef(), llvm::getRegState(), llvm::getRegSubRegPair(), getRegsUsedByPHIs(), getRetpolineSymbol(), getShuffleComment(), llvm::HexagonInstrInfo::getSize(), llvm::X86InstrInfo::getSPAdjust(), getStoreTarget(), getSubOpcode(), getSubReg(), getTag(), getTargetFlags(), llvm::MachineInstr::getTypeToPrint(), getUnderlyingArgReg(), getUsedRegMask(), llvm::SIInstrInfo::getVALUOp(), getWinAllocaAmount(), handleNormalInst(), llvm::LiveVariables::HandleVirtRegDef(), HandleVRSaveUpdate(), hasInefficientLEABaseReg(), llvm::X86InstrInfo::hasLiveCondCodeDef(), llvm::X86InstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableOperands(), hasRegisterDependency(), llvm::MachineInstr::hasRegisterImplicitUseOperand(), hasSameBaseOpValue(), hasUseAfterLoop(), hasVGPROperands(), INITIALIZE_PASS(), llvm::Mips16RegisterInfo::intRegClass(), llvm::ARMBaseInstrInfo::isAddrMode3OpMinusReg(), llvm::InstructionSelector::isBaseWithConstantOffset(), isCallerPreservedOrConstPhysReg(), llvm::AArch64InstrInfo::isCandidateToMergeOrPair(), llvm::WebAssembly::isChild(), llvm::rdf::TargetOperandInfo::isClobbering(), isCompareZero(), isCopyFeedingInvariantStore(), isCopyFromExec(), isCopyToExec(), llvm::IsCPSRDead< MachineInstr >(), isCrossCopy(), isDbgValueDescribedByReg(), isDead(), isDebug(), isDebug(), isDef(), isDescribedByReg(), isEarlyClobber(), isEFLAGSLive(), llvm::AArch64InstrInfo::isFPRCopy(), isFullCopyOf(), isIdenticalOp(), llvm::MachineInstr::isIdenticalTo(), isImmValidForOpcode(), isImplicit(), llvm::MachineInstr::isIndirectDebugValue(), isInstrUniform(), isInternalRead(), isKill(), llvm::isLeaMem(), isLEASimpleIncOrDec(), llvm::SIInstrInfo::isLegalRegOperand(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::SIInstrInfo::isLegalVSrcOperand(), isLiveOut(), llvm::ARMBaseInstrInfo::isLoadFromStackSlot(), isLogicalOpOnExec(), llvm::SMSchedule::isLoopCarriedDefOfUse(), llvm::isMem(), isMemoryOp(), isMMSourceRegister(), isMMThreeBitGPRegister(), isNopCopy(), llvm::InstructionSelector::isOperandImmEqual(), isOperandKill(), llvm::SIInstrInfo::isOperandLegal(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isRedundantFlagInstr(), isRegOperand(), llvm::MachineInstr::isRegTiedToDefOperand(), llvm::MachineInstr::isRegTiedToUseOperand(), isRelevantAddressingMode(), isRenamable(), IsSafeAndProfitableToMove(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSameReg(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimpleIndexCalc(), llvm::ARMBaseInstrInfo::isStoreToStackSlot(), isTied(), llvm::HexagonInstrInfo::isToBeScheduledASAP(), llvm::PPCInstrInfo::isTOCSaveMI(), isTwoAddrUse(), isUndef(), isUse(), isUseSafeToFold(), isVirtualRegisterOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::Mips16InstrInfo::loadImmediate(), llvm::SystemZMCInstLower::lower(), llvm::WebAssemblyMCInstLower::Lower(), llvm::X86CallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::rdf::DataFlowGraph::makeRegRef(), llvm::MIPatternMatch::operand_type_match::match(), matchPair(), matchSwap(), memOpsHaveSameBasePtr(), mergeOperations(), MIIsInTerminatorSequence(), MoveAndTeeForMultiUse(), llvm::MachineRegisterInfo::moveOperands(), llvm::SIInstrInfo::moveToVALU(), llvm::AggressiveAntiDepBreaker::Observe(), OneUseDominatesOtherUses(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeLoadInstr(), optimizeVcndVcmpPair(), llvm::SMSchedule::orderDependence(), parseCond(), parseOperands(), performSink(), populateCandidates(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::TargetInstrInfo::PredicateInstruction(), llvm::MIPrinter::print(), llvm::MachineInstr::print(), llvm::AVRAsmPrinter::PrintAsmMemoryOperand(), llvm::HexagonAsmPrinter::PrintAsmMemoryOperand(), llvm::ARMAsmPrinter::PrintAsmMemoryOperand(), llvm::AVRAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::X86AsmPrinter::PrintAsmOperand(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), printExtendedName(), readsReg(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::R600SchedStrategy::releaseBottomNode(), RemoveDeadAddBetweenLEAAndJT(), removeKillInfo(), removePhis(), removeRegisterOperands(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::PPCInstrInfo::replaceInstrOperandWithImm(), llvm::PPCInstrInfo::replaceInstrWithLI(), rescheduleCanonically(), resultTests(), runOnBasicBlock(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::R600SchedStrategy::schedNode(), llvm::ScheduleDAGMILive::scheduleMI(), setImplicit(), setIsDead(), setIsDebug(), setIsDef(), setIsEarlyClobber(), setIsInternalRead(), setIsKill(), setIsRenamable(), setIsUndef(), llvm::X86InstrInfo::setSpecialOperandAttr(), setSubReg(), setTargetFlags(), llvm::AArch64InstrInfo::shouldClusterMemOps(), shouldPreventUndefRegUpdateMemFold(), shrinkScalarCompare(), shrinkScalarLogicOp(), SinkingPreventsImplicitNullCheck(), splitBlock(), llvm::LiveDebugVariables::splitRegister(), false::Chain::str(), llvm::SystemZInstrInfo::SystemZInstrInfo(), toString(), TrackDefUses(), tryAddToFoldList(), tryConstantFoldOp(), tryFoldInst(), llvm::tryFoldSPUpdateIntoPushPop(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::MachineInstr::untieRegOperand(), llvm::AntiDepBreaker::UpdateDbgValue(), updateKillStatus(), updateOperand(), UpdateOperandRegClass(), updateOperandRegConstraints(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), llvm::HexagonSubtarget::usePredicatedCalls(), UseReg(), llvm::SIInstrInfo::usesConstantBus(), llvm::RegisterBankInfo::InstructionMapping::verify(), llvm::SIInstrInfo::verifyInstruction(), VerifyLowRegs(), llvm::MachineRegisterInfo::verifyUseList(), X86SelectAddress(), and llvm::LiveDebugVariables::~LiveDebugVariables().
|
inline |
isRegLiveOut - Tests if this is a MO_RegisterLiveOut operand.
Definition at line 337 of file MachineOperand.h.
References MO_RegisterLiveOut.
Referenced by getDwarfRegNum(), and getRegLiveOut().
|
inline |
isRegMask - Tests if this is a MO_RegisterMask operand.
Definition at line 335 of file MachineOperand.h.
References MO_RegisterMask.
Referenced by llvm::MachineInstr::addOperand(), llvm::MachineOperandIteratorBase::analyzePhysReg(), clobbersCTR(), copyExtraImplicitOps(), llvm::MachineInstr::copyImplicitOps(), CriticalPathStep(), llvm::ARMBaseInstrInfo::DefinesPredicate(), llvm::HexagonInstrInfo::DefinesPredicate(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::rdf::DataFlowGraph::getNextShadow(), getRegMask(), llvm::LiveVariables::HandleVirtRegDef(), INITIALIZE_PASS(), llvm::rdf::TargetOperandInfo::isClobbering(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), llvm::rdf::DataFlowGraph::makeRegRef(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::ThumbRegisterInfo::saveScavengerRegister(), setRegMask(), false::Chain::str(), and UpdatePredRedefs().
bool MachineOperand::isRenamable | ( | ) | const |
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:
Definition at line 115 of file MachineOperand.cpp.
References assert(), getParent(), getReg(), llvm::MachineInstr::hasExtraDefRegAllocReq(), llvm::MachineInstr::hasExtraSrcRegAllocReq(), llvm::MachineInstr::IgnoreBundle, isDef(), llvm::TargetRegisterInfo::isPhysicalRegister(), isReg(), isUse(), and MI.
Referenced by llvm::TargetInstrInfo::commuteInstructionImpl(), CreateReg(), getMopState(), llvm::getRegState(), hasRegisterDependency(), isNopCopy(), isUndef(), matchPair(), and print().
|
inline |
isSymbol - Tests if this is a MO_ExternalSymbol operand.
Definition at line 331 of file MachineOperand.h.
References MO_ExternalSymbol.
Referenced by addExclusiveRegPair(), EmitGCCInlineAsmStr(), EmitHiLo(), llvm::rdf::DataFlowGraph::getNextShadow(), getOffset(), llvm::HexagonInstrInfo::getSize(), GetSymbolFromOperand(), getSymbolName(), llvm::HexagonInstrInfo::isConstExtended(), isSimilarDispOp(), isValidDispOp(), llvm::MipsCallLowering::lowerCall(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), matchPair(), llvm::rdf::operator<<(), optimizeCall(), setOffset(), and trySequenceOfOnes().
|
inline |
isTargetIndex - Tests if this is a MO_TargetIndex operand.
Definition at line 325 of file MachineOperand.h.
References MO_TargetIndex.
Referenced by getIndex(), getOffset(), llvm::SIInstrInfo::isImmOperandLegal(), llvm::SIInstrInfo::isLegalVSrcOperand(), llvm::SIInstrInfo::isOperandLegal(), setIndex(), and setOffset().
|
inline |
Definition at line 430 of file MachineOperand.h.
References assert(), and isReg().
Referenced by canFoldIntoMOVCC(), canFoldIntoSelect(), ChangeToES(), ChangeToFPImmediate(), ChangeToFrameIndex(), ChangeToImmediate(), ChangeToMCSymbol(), ChangeToTargetIndex(), llvm::MachineInstr::findTiedOperandIdx(), INITIALIZE_PASS(), isNopCopy(), llvm::MachineInstr::isRegTiedToDefOperand(), llvm::MachineInstr::isRegTiedToUseOperand(), isUseSafeToFold(), matchPair(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), llvm::rdf::CopyPropagation::run(), false::Chain::str(), llvm::MachineInstr::tieOperands(), tieOpsIfNeeded(), llvm::MachineInstr::untieRegOperand(), and llvm::SIInstrInfo::verifyInstruction().
|
inline |
Definition at line 384 of file MachineOperand.h.
References assert(), isReg(), and isRenamable().
Referenced by addExclusiveRegPair(), llvm::MachineInstr::addRegisterKilled(), addSegmentsWithValNo(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), ChangeToRegister(), llvm::X86InstrInfo::classifyLEAReg(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::convertToThreeAddress(), copyFlagsToImplicitVCC(), copyRegOperand(), llvm::createBreakFalseDeps(), CreateReg(), llvm::createSIWholeQuadModePass(), definesFullReg(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), emitLoadM0FromVGPRLoop(), emitLoadSRsrcFromVGPRLoop(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::finalizeBundle(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), GetDSubRegs(), llvm::TargetInstrInfo::getExtractSubregInputs(), llvm::ARMBaseInstrInfo::getExtractSubregLikeInputs(), llvm::TargetInstrInfo::getInsertSubregInputs(), llvm::ARMBaseInstrInfo::getInsertSubregLikeInputs(), getLiveLanesAt(), getMopState(), llvm::rdf::DataFlowGraph::getNextShadow(), getRegOrUndef(), llvm::TargetInstrInfo::getRegSequenceInputs(), llvm::ARMBaseInstrInfo::getRegSequenceLikeInputs(), llvm::getRegState(), llvm::X86InstrInfo::getUndefRegClearance(), INITIALIZE_PASS(), llvm::HexagonInstrInfo::insertBranch(), InsertLDR_STR(), llvm::IsCPSRDead< MachineInstr >(), isLocalCopy(), isMemoryOp(), isNopCopy(), isUseSafeToFold(), isVirtualRegisterOperand(), makeImplicit(), matchPair(), mayCombineMisaligned(), mergeOperations(), preserveCondRegFlags(), print(), readsReg(), readsVCCZ(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::R600SchedStrategy::releaseBottomNode(), ReplaceDominatedUses(), llvm::UnreachableBlockElimPass::run(), llvm::ThumbRegisterInfo::saveScavengerRegister(), setRegMask(), shouldPreventUndefRegUpdateMemFold(), llvm::MachineBasicBlock::SplitCriticalEdge(), swapRegAndNonRegOperand(), llvm::SystemZInstrInfo::SystemZInstrInfo(), trySequenceOfOnes(), and updateOperand().
|
inline |
Definition at line 359 of file MachineOperand.h.
References assert(), and isReg().
Referenced by llvm::MachineInstr::addOperand(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::MachineInstr::addRegisterKilled(), llvm::HexagonSubtarget::adjustSchedDependency(), llvm::HexagonSubtarget::CallMutation::apply(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::HexagonInstrInfo::canExecuteInBundle(), llvm::constrainOperandRegClass(), llvm::constrainSelectedInstRegOperands(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), copyRegOperand(), llvm::createBreakFalseDeps(), llvm::createLanaiDelaySlotFillerPass(), llvm::createSparcDelaySlotFillerPass(), CriticalPathStep(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::MachineInstr::findRegisterUseOperandIdx(), llvm::MachineInstr::findTiedOperandIdx(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), llvm::TargetInstrInfo::foldMemoryOperand(), for(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), getCallTargetRegOpnd(), getLiveLanesAt(), llvm::rdf::DataFlowGraph::getNextShadow(), getUsedRegMask(), handleNormalInst(), llvm::LiveVariables::HandleVirtRegDef(), hasRegisterDependency(), llvm::MachineInstr::hasRegisterImplicitUseOperand(), INITIALIZE_PASS(), isCopyFeedingInvariantStore(), llvm::IsCPSRDead< MachineInstr >(), isCrossCopy(), isDebug(), isFullCopyOf(), isFullUndefDef(), isImmValidForOpcode(), isMergeableLdStUpdate(), llvm::MachineInstr::isRegTiedToDefOperand(), isRenamable(), llvm::X86InstrInfo::isSafeToClobberEFLAGS(), isSimpleIndexCalc(), isTwoAddrUse(), matchPair(), MoveAndTeeForMultiUse(), llvm::SMSchedule::orderDependence(), parseOperands(), readsReg(), llvm::MachineInstr::readsWritesVirtualRegister(), RemoveDeadAddBetweenLEAAndJT(), removePhis(), llvm::PPCInstrInfo::replaceInstrWithLI(), resultTests(), llvm::SystemZInstrInfo::SystemZInstrInfo(), llvm::MachineInstr::tieOperands(), TrackDefUses(), llvm::HexagonSubtarget::usePredicatedCalls(), llvm::SIInstrInfo::usesConstantBus(), and llvm::SIInstrInfo::verifyInstruction().
void MachineOperand::print | ( | raw_ostream & | os, |
const TargetRegisterInfo * | TRI = nullptr , |
||
const TargetIntrinsicInfo * | IntrinsicInfo = nullptr |
||
) | const |
Print the MachineOperand to os
.
Providing a valid TRI
and IntrinsicInfo
results in a more target-specific printing. If TRI
and IntrinsicInfo
are null, the function will try to pick it up from the parent.
Definition at line 712 of file MachineOperand.cpp.
References TRI.
Referenced by clearParent(), llvm::operator<<(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), and llvm::MachineFunction::verify().
void MachineOperand::print | ( | raw_ostream & | os, |
ModuleSlotTracker & | MST, | ||
LLT | TypeToPrint, | ||
bool | PrintDef, | ||
bool | IsStandalone, | ||
bool | ShouldPrintRegisterTies, | ||
unsigned | TiedOperandIdx, | ||
const TargetRegisterInfo * | TRI, | ||
const TargetIntrinsicInfo * | IntrinsicInfo | ||
) | const |
More complex way of printing a MachineOperand.
TypeToPrint | specifies the generic type to be printed on uses and defs. It can be determined using MachineInstr::getTypeToPrint. |
PrintDef | - whether we want to print def on an operand which isDef. Sometimes, if the operand is printed before '=', we don't print def . |
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. |
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). |
TiedOperandIdx | - if we need to print register ties this needs to provide the index of the tied register. If not, it will be ignored. |
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. |
IntrinsicInfo | - same as TRI . |
Definition at line 727 of file MachineOperand.cpp.
References llvm::MachineRegisterInfo::def_empty(), E, llvm::StringRef::empty(), llvm::ISD::FrameIndex, getBlockAddress(), getCFIIndex(), getCImm(), getFPImm(), llvm::BlockAddress::getFunction(), getGlobal(), getImm(), getIndex(), getIntrinsicID(), getMBB(), getMCSymbol(), getMetadata(), getMFIfAvailable(), llvm::TargetIntrinsicInfo::getName(), llvm::Intrinsic::getName(), llvm::MCRegisterInfo::getNumRegs(), getOffset(), getPredicate(), llvm::CmpInst::getPredicateName(), getReg(), getRegLiveOut(), getRegMask(), getSubReg(), llvm::TargetRegisterInfo::getSubRegIndexName(), getSymbolName(), getTargetIndexName(), getType(), isDead(), isDef(), isEarlyClobber(), isImplicit(), isInternalRead(), llvm::CmpInst::isIntPredicate(), isKill(), llvm::TargetRegisterInfo::isPhysicalRegister(), isRenamable(), isTied(), isUndef(), llvm::LLT::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), MO_BlockAddress, MO_CFIIndex, MO_CImmediate, MO_ConstantPoolIndex, MO_ExternalSymbol, MO_FPImmediate, MO_FrameIndex, MO_GlobalAddress, MO_Immediate, MO_IntrinsicID, MO_JumpTableIndex, MO_MachineBasicBlock, MO_MCSymbol, MO_Metadata, MO_Predicate, MO_Register, MO_RegisterLiveOut, MO_RegisterMask, MO_TargetIndex, MRI, Name, llvm::None, llvm::Intrinsic::num_intrinsics, Pred, llvm::Metadata::printAsOperand(), llvm::Value::printAsOperand(), printCFI(), printFrameIndex(), printIRBlockReference(), llvm::printJumpTableEntryReference(), llvm::printLLVMNameWithoutPrefix(), llvm::printMBBReference(), printOperandOffset(), llvm::printReg(), llvm::printRegClassOrBank(), PrintRegMaskNumRegs, printSymbol(), printTargetFlags(), Reg, RegMask, SubReg, and TRI.
void MachineOperand::print | ( | raw_ostream & | os, |
LLT | TypeToPrint, | ||
const TargetRegisterInfo * | TRI = nullptr , |
||
const TargetIntrinsicInfo * | IntrinsicInfo = nullptr |
||
) | const |
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.
Definition at line 717 of file MachineOperand.cpp.
References print(), and tryToGetTargetInfo().
|
static |
Print an IRSlotNumber.
Definition at line 598 of file MachineOperand.cpp.
Referenced by clearParent(), printIRBlockReference(), and printIRValueReference().
|
static |
Print the offset with explicit +/- signs.
Definition at line 588 of file MachineOperand.cpp.
Referenced by clearParent(), print(), and llvm::MachineMemOperand::print().
|
static |
Print a stack object reference.
Definition at line 575 of file MachineOperand.cpp.
References llvm::StringRef::empty(), and llvm::ISD::FrameIndex.
Referenced by clearParent(), printFrameIndex(), and llvm::MIPrinter::printStackObjectReference().
|
static |
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.
Definition at line 510 of file MachineOperand.cpp.
References llvm::TargetRegisterInfo::getSubRegIndexName(), and Index.
Referenced by clearParent(), llvm::MIPrinter::print(), and llvm::MachineInstr::print().
|
static |
Print a MCSymbol as an operand.
Definition at line 571 of file MachineOperand.cpp.
Referenced by clearParent(), llvm::MIPrinter::print(), print(), llvm::MachineInstr::print(), and printCFI().
|
static |
Print operand target flags.
Definition at line 519 of file MachineOperand.cpp.
References assert(), llvm::HexagonInstrInfo::decomposeMachineOperandsTargetFlags(), llvm::TargetSubtargetInfo::getInstrInfo(), getMFIfAvailable(), llvm::HexagonInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::MachineFunction::getSubtarget(), getTargetFlagName(), getTargetFlags(), llvm::BitmaskEnumDetail::Mask(), Name, and TII.
Referenced by clearParent(), llvm::MIPrinter::print(), and print().
|
inline |
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.
Definition at line 447 of file MachineOperand.h.
References assert(), getSubReg(), isInternalRead(), isReg(), isUndef(), isUse(), Reg, and setReg().
Referenced by llvm::MachineOperandIteratorBase::analyzePhysReg(), llvm::MachineOperandIteratorBase::analyzeVirtReg(), llvm::LiveRangeEdit::anyRematerializable(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::createCopyConstrainDAGMutation(), llvm::ConnectedVNInfoEqClasses::Distribute(), findUseIdx(), getDataDeps(), getLiveLanesAt(), llvm::ARMBaseInstrInfo::getPartialRegUpdateClearance(), llvm::X86InstrInfo::getPartialRegUpdateClearance(), getTag(), llvm::LiveVariables::HandleVirtRegDef(), isCrossCopy(), matchPair(), updatePhysDepsDownwards(), and updatePhysDepsUpwards().
|
inline |
Definition at line 644 of file MachineOperand.h.
References assert(), CI, and isCImm().
Referenced by llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 649 of file MachineOperand.h.
References assert(), CFP, and isFPImm().
Referenced by llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 639 of file MachineOperand.h.
References assert(), and isImm().
Referenced by llvm::R600InstrInfo::addFlag(), llvm::SwingSchedulerDAG::applyInstrChange(), AssignProtectedObjSet(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), llvm::R600InstrInfo::clearFlag(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::convertToImmediateForm(), CreateImm(), createPHIsForSelects(), llvm::createSIWholeQuadModePass(), llvm::createX86OptimizeLEAs(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::SystemZInstrInfo::expandPostRAPseudo(), findSingleRegDef(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), fixupSEHOpcode(), getLSMultipleTransferSize(), getOModValue(), llvm::AArch64InstrInfo::getOutliningType(), getReassignedChan(), getUnconditionalBrDisp(), hasOneNonDBGUseInst(), INITIALIZE_PASS(), llvm::R600InstrInfo::insertBranch(), matchSwap(), llvm::PPCInstrInfo::optimizeCompareInstr(), performCustomAdjustments(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), llvm::TargetInstrInfo::PredicateInstruction(), readsVCCZ(), llvm::HexagonInstrInfo::reduceLoopCount(), removePhis(), llvm::R600InstrInfo::reverseBranchCondition(), RewriteP2Align(), llvm::HexagonInstrInfo::setBundleNoShuf(), llvm::setDirectAddressInInstr(), llvm::X86InstrInfo::setExecutionDomainCustom(), llvm::X86InstrInfo::setFrameAdjustment(), llvm::R600InstrInfo::setImmOperand(), shrinkScalarLogicOp(), llvm::SIInstrInfo::swapSourceModifiers(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tieOpsIfNeeded(), llvm::HexagonPacketizerList::undoChangedOffset(), updateOperand(), llvm::HexagonPacketizerList::useCalleesSP(), and llvm::HexagonPacketizerList::useCallersSP().
Definition at line 484 of file MachineOperand.h.
References assert(), isReg(), and Val.
Referenced by llvm::X86InstrInfo::classifyLEAReg(), GetDSubRegs(), llvm::SIInstrInfo::insertVectorSelect(), isMergeableLdStUpdate(), makeImplicit(), llvm::LanaiInstrInfo::optimizeSelect(), and llvm::ARMBaseInstrInfo::optimizeSelect().
|
inline |
Definition at line 662 of file MachineOperand.h.
References assert(), isCPI(), isFI(), isJTI(), and isTargetIndex().
Referenced by BBIsJumpedOver(), ChangeToFrameIndex(), ChangeToTargetIndex(), CreateCPI(), CreateFI(), CreateJTI(), CreateTargetIndex(), getUnconditionalBrDisp(), and false::IntervalSorter::operator()().
Definition at line 495 of file MachineOperand.h.
References assert(), isReg(), and Val.
Referenced by llvm::MachineInstr::addRegisterDead(), AnyAliasLiveIn(), calculateSetFPREG(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), copyRegOperand(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::AVRFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), emitIncrement(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitSPUpdate(), llvm::LiveRangeEdit::eraseVirtReg(), findStartOfTree(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), getCompareSourceReg(), llvm::LiveVariables::HandleVirtRegDef(), hasVulnerableLoad(), INITIALIZE_PASS(), isCallerPreservedOrConstPhysReg(), isCrossCopy(), isFullUndefDef(), MaybeRewriteToDrop(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::LiveVariables::removeVirtualRegisterDead(), ReplaceDominatedUses(), llvm::X86FrameLowering::restoreWin32EHStackPointers(), llvm::X86InstrInfo::setSpecialOperandAttr(), transferDeadCC(), and VerifyLowRegs().
Definition at line 517 of file MachineOperand.h.
References assert(), isReg(), and Val.
Referenced by AssignProtectedObjSet(), INITIALIZE_PASS(), printExtendedName(), and toString().
Change a def to a use, or a use to a def.
Definition at line 98 of file MachineOperand.cpp.
References llvm::MachineRegisterInfo::addRegOperandToUseList(), assert(), getMFIfAvailable(), isDebug(), isReg(), MRI, llvm::MachineRegisterInfo::removeRegOperandFromUseList(), and Val.
Referenced by emitPostSt(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), setIsUse(), and VerifyLowRegs().
Definition at line 512 of file MachineOperand.h.
References assert(), isReg(), and Val.
Referenced by llvm::MachineInstr::addOperand(), and llvm::LiveVariables::HandleVirtRegDef().
Definition at line 507 of file MachineOperand.h.
References assert(), isReg(), and Val.
Referenced by llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::finalizeBundle(), and INITIALIZE_PASS().
Definition at line 489 of file MachineOperand.h.
References assert(), isDebug(), isReg(), and Val.
Referenced by addExclusiveRegPair(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::MachineInstr::addRegisterKilled(), addSegmentsWithValNo(), AnyAliasLiveIn(), clearKillFlags(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::R600InstrInfo::copyPhysReg(), copyRegOperand(), createBBSelectReg(), createPHIsForCMOVsInSinkBB(), earlyUseOperand(), emitLoadSRsrcFromVGPRLoop(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), findPotentialBlockers(), findStartOfTree(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), getNewValueJumpOpcode(), getRegClassForUnfoldedLoad(), getRegsUsedByPHIs(), llvm::LiveVariables::HandleVirtRegDef(), hasVulnerableLoad(), INITIALIZE_PASS(), llvm::SIInstrInfo::insertBranch(), insertDivByZeroTrap(), llvm::CoalescerPair::isCoalescable(), isCopy(), isEFLAGSLive(), isFullCopyOf(), isFullUndefDef(), isMergeableLdStUpdate(), isUseSafeToFold(), llvm::SIInstrInfo::legalizeOperands(), matchSwap(), llvm::AArch64InstrInfo::optimizeCondBranch(), preserveCondRegFlags(), registerDefinedBetween(), removeKillInfo(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), llvm::SystemZInstrInfo::SystemZInstrInfo(), llvm::X86InstrInfo::unfoldMemoryOperand(), updateKillStatus(), and VerifyLowRegs().
Definition at line 133 of file MachineOperand.cpp.
References assert(), getMFIfAvailable(), getReg(), llvm::TargetRegisterInfo::isPhysicalRegister(), isReg(), and Val.
Referenced by llvm::TargetInstrInfo::commuteInstructionImpl(), INITIALIZE_PASS(), isNopCopy(), and setIsUndef().
Definition at line 500 of file MachineOperand.h.
References assert(), isReg(), setIsRenamable(), and Val.
Referenced by llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::TargetInstrInfo::commuteInstructionImpl(), copyRegOperand(), definesFullReg(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), emitLoadM0FromVGPRLoop(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), getNewSource(), llvm::SIInstrInfo::insertBranch(), isCrossCopy(), isFullCopyOf(), mergeOperations(), preserveCondRegFlags(), setM0ToIndexFromSGPR(), substPhysReg(), and updateOperand().
Definition at line 479 of file MachineOperand.h.
References setIsDef(), and Val.
|
inline |
Definition at line 673 of file MachineOperand.h.
References assert(), isMBB(), and MBB.
Referenced by CreateMBB(), createPHIsForCMOVsInSinkBB(), fixPHIsInSucc(), getRegsUsedByPHIs(), getUnconditionalBrDisp(), llvm::HexagonInstrInfo::insertBranch(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), isImmValidForOpcode(), isIntersect(), IsUnconditionalJump(), llvm::TargetInstrInfo::PredicateInstruction(), setPhiPred(), splitBlock(), splitEdge(), llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), and updatePHIs().
Definition at line 668 of file MachineOperand.h.
References assert(), isMetadata(), and MD.
Referenced by AssignProtectedObjSet(), and llvm::updateDbgValueForSpill().
|
inline |
Definition at line 654 of file MachineOperand.h.
References assert(), isBlockAddress(), isCPI(), isGlobal(), isMCSymbol(), isSymbol(), and isTargetIndex().
Referenced by ChangeToES(), ChangeToTargetIndex(), CreateBA(), CreateCPI(), CreateES(), CreateGA(), CreateMCSymbol(), CreateTargetIndex(), llvm::createX86OptimizeLEAs(), llvm::X86RegisterInfo::eliminateFrameIndex(), and INITIALIZE_PASS().
void MachineOperand::setReg | ( | unsigned | Reg | ) |
Change the register this operand corresponds to.
Definition at line 52 of file MachineOperand.cpp.
References llvm::MachineRegisterInfo::addRegOperandToUseList(), getMFIfAvailable(), getReg(), MRI, Reg, and llvm::MachineRegisterInfo::removeRegOperandFromUseList().
Referenced by addSegmentsWithValNo(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::SwingSchedulerDAG::applyInstrChange(), llvm::R600InstrInfo::buildSlotOfVectorInstruction(), changeFCMPPredToAArch64CC(), llvm::WebAssemblyDebugValueManager::clone(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), computeBytesPoppedByCalleeForSRet(), llvm::constrainSelectedInstRegOperands(), copyRegOperand(), createBBSelectReg(), llvm::createBreakFalseDeps(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createX86OptimizeLEAs(), llvm::ConnectedVNInfoEqClasses::Distribute(), llvm::SparcRegisterInfo::eliminateFrameIndex(), emitLoadSRsrcFromVGPRLoop(), emitPostSt(), ExpandMOVImmSExti8(), expandNOVLXLoad(), expandNOVLXStore(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::LegalizerHelper::fewerElementsVector(), findStartOfTree(), llvm::fixStackStores(), llvm::SwingSchedulerDAG::fixupRegisterOverlaps(), llvm::SIInstrInfo::FoldImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::PPCInstrInfo::FoldImmediate(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), getRegClassFromGRPhysReg(), getRegsUsedByPHIs(), getTag(), INITIALIZE_PASS(), InsertLDR_STR(), insertPHI(), isEFLAGSLive(), isFullCopyOf(), isFullUndefDef(), isImmValidForOpcode(), isMergeableLdStUpdate(), isNopCopy(), isUseSafeToFold(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsSMRD(), llvm::X86CallLowering::lowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MachineRegisterInfo::markUsesInDebugValueAsUndef(), MaybeRewriteToDrop(), MoveAndTeeForMultiUse(), MoveForSingleUse(), llvm::SIInstrInfo::moveToVALU(), llvm::LegalizerHelper::narrowScalar(), llvm::ARMBaseInstrInfo::optimizeCompareInstr(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), llvm::TargetInstrInfo::PredicateInstruction(), propagateLocalCopies(), readsReg(), registerDefinedBetween(), RematerializeCheapDef(), removeExternalCFGEdges(), removePhis(), ReplaceDominatedUses(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::CombinerHelper::replaceRegOpWith(), replaceRegUsesAfterLoop(), llvm::MachineRegisterInfo::replaceRegWith(), llvm::R600InstrInfo::reverseBranchCondition(), llvm::MachineSSAUpdater::RewriteUse(), llvm::rdf::CopyPropagation::run(), llvm::Localizer::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), selectCopy(), selectFP16CopyFromGPR32(), llvm::setDirectAddressInInstr(), llvm::LiveDebugVariables::splitRegister(), false::Chain::str(), substPhysReg(), substVirtReg(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tieOpsIfNeeded(), llvm::CombinerHelper::tryCombineExtendingLoads(), llvm::AntiDepBreaker::UpdateDbgValue(), updateOperand(), and llvm::LegalizerHelper::widenScalar().
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.
Definition at line 682 of file MachineOperand.h.
References assert(), ChangeToES(), ChangeToFPImmediate(), ChangeToFrameIndex(), ChangeToImmediate(), ChangeToMCSymbol(), ChangeToRegister(), ChangeToTargetIndex(), hash_value, ImmVal, isDead(), isDebug(), isDef(), isIdenticalTo(), isKill(), isRegMask(), isUndef(), and Other.
|
inline |
Definition at line 460 of file MachineOperand.h.
References assert(), isReg(), substPhysReg(), and substVirtReg().
Referenced by canTurnIntoCOPY(), changeFCMPPredToAArch64CC(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::PPCInstrInfo::commuteInstructionImpl(), copyRegOperand(), CreateReg(), definesFullReg(), llvm::SIInstrInfo::FoldImmediate(), foldImmediates(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), getNewSource(), getRegClassFromGRPhysReg(), getRegsUsedByPHIs(), INITIALIZE_PASS(), insertDivByZeroTrap(), insertPHI(), isImmValidForOpcode(), isUseSafeToFold(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::rdf::CopyPropagation::run(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::LiveDebugVariables::splitRegister(), substPhysReg(), substVirtReg(), swapRegAndNonRegOperand(), and llvm::LiveDebugVariables::~LiveDebugVariables().
|
inline |
Definition at line 218 of file MachineOperand.h.
References assert(), F(), and isReg().
Referenced by changeFCMPPredToAArch64CC(), ChangeToES(), ChangeToTargetIndex(), CreateBA(), CreateCPI(), CreateES(), CreateGA(), CreateJTI(), CreateMBB(), CreateMCSymbol(), CreateTargetIndex(), EmitNops(), and swapMIOperands().
void MachineOperand::substPhysReg | ( | unsigned | Reg, |
const TargetRegisterInfo & | TRI | ||
) |
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.
Definition at line 84 of file MachineOperand.cpp.
References assert(), llvm::MCRegisterInfo::getSubReg(), getSubReg(), isDef(), llvm::TargetRegisterInfo::isPhysicalRegister(), setIsUndef(), setReg(), and setSubReg().
Referenced by addSegmentsWithValNo(), getRegClassFromGRPhysReg(), llvm::MachineRegisterInfo::replaceRegWith(), setSubReg(), and llvm::LiveDebugVariables::splitRegister().
void MachineOperand::substVirtReg | ( | unsigned | Reg, |
unsigned | SubIdx, | ||
const TargetRegisterInfo & | TRI | ||
) |
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.
Definition at line 74 of file MachineOperand.cpp.
References assert(), llvm::TargetRegisterInfo::composeSubRegIndices(), getSubReg(), llvm::TargetRegisterInfo::isVirtualRegister(), setReg(), and setSubReg().
Referenced by setSubReg(), and updateOperand().
|
friend |
Definition at line 910 of file MachineOperand.h.
|
friend |
MachineOperand hash_value overload.
Note that this includes the same information in the hash that isIdenticalTo uses for comparison. It is thus suited for use in hash tables which use that function for equality comparisons only. This must stay exactly in sync with isIdenticalTo above.
Referenced by llvm::DenseMapInfo< MachineOperand >::getHashValue(), llvm::operator<<(), and setRegMask().
|
friend |
Definition at line 896 of file MachineOperand.h.
|
friend |
Definition at line 897 of file MachineOperand.h.
const BlockAddress* llvm::MachineOperand::BA |
Definition at line 189 of file MachineOperand.h.
Referenced by CreateBA().
unsigned llvm::MachineOperand::CFIIndex |
Definition at line 172 of file MachineOperand.h.
Referenced by CreateCFIIndex().
const ConstantFP* llvm::MachineOperand::CFP |
Definition at line 166 of file MachineOperand.h.
Referenced by CreateFPImm(), and setFPImm().
const ConstantInt* llvm::MachineOperand::CI |
Definition at line 167 of file MachineOperand.h.
Referenced by CreateCImm(), and setCImm().
const GlobalValue* llvm::MachineOperand::GV |
Definition at line 188 of file MachineOperand.h.
Referenced by CreateGA().
int64_t llvm::MachineOperand::ImmVal |
Definition at line 168 of file MachineOperand.h.
Referenced by ChangeToImmediate(), and setRegMask().
int llvm::MachineOperand::Index |
Definition at line 186 of file MachineOperand.h.
Referenced by clearParent(), getTargetIndexName(), and printSubRegIdx().
Intrinsic::ID llvm::MachineOperand::IntrinsicID |
Definition at line 173 of file MachineOperand.h.
Referenced by CreateIntrinsicID().
MachineBasicBlock* llvm::MachineOperand::MBB |
Definition at line 165 of file MachineOperand.h.
Referenced by setMBB().
Definition at line 170 of file MachineOperand.h.
Referenced by CreateMetadata(), and setMetadata().
MachineOperand* llvm::MachineOperand::Next |
Definition at line 179 of file MachineOperand.h.
struct { ... } llvm::MachineOperand::OffsetedInfo |
OffsetedInfo - This struct contains the offset and an object identifier.
this represent the object as with an optional offset from it.
Referenced by CreateBA(), CreateES(), and CreateGA().
int llvm::MachineOperand::OffsetHi |
Definition at line 192 of file MachineOperand.h.
unsigned llvm::MachineOperand::OffsetLo |
Definition at line 156 of file MachineOperand.h.
unsigned llvm::MachineOperand::Pred |
Definition at line 174 of file MachineOperand.h.
Referenced by CreatePredicate(), and print().
MachineOperand* llvm::MachineOperand::Prev |
Definition at line 178 of file MachineOperand.h.
struct { ... } llvm::MachineOperand::Reg |
Definition at line 169 of file MachineOperand.h.
Referenced by CreateRegLiveOut(), CreateRegMask(), isIdenticalTo(), and print().
unsigned llvm::MachineOperand::RegNo |
Definition at line 155 of file MachineOperand.h.
Referenced by CreateReg().
MCSymbol* llvm::MachineOperand::Sym |
Definition at line 171 of file MachineOperand.h.
Referenced by ChangeToMCSymbol(), clearParent(), and CreateMCSymbol().
Definition at line 187 of file MachineOperand.h.
union { ... } llvm::MachineOperand::Val |
Referenced by setImplicit(), setIsDead(), setIsDebug(), setIsDef(), setIsEarlyClobber(), setIsInternalRead(), setIsKill(), setIsRenamable(), setIsUndef(), and setIsUse().