LLVM: lib/CodeGen/MachineInstr.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
static const MachineFunction * getMFIfAvailable (const MachineInstr &MI)
static void tryToGetTargetInfo (const MachineInstr &MI, const TargetRegisterInfo *&TRI, const MachineRegisterInfo *&MRI, const TargetInstrInfo *&TII)
static void moveOperands (MachineOperand *Dst, MachineOperand *Src, unsigned NumOps, MachineRegisterInfo *MRI)
Move NumOps MachineOperands from Src to Dst, with support for overlapping ranges.
static bool hasIdenticalMMOs (ArrayRef< MachineMemOperand * > LHS, ArrayRef< MachineMemOperand * > RHS)
Check to see if the MMOs pointed to by the two MemRefs arrays are identical.
template<typename Operand, typename Instruction>
static iterator_range< filter_iterator< Operand *, std::function< bool(Operand &Op)> > > getDebugOperandsForRegHelper (Instruction *MI, Register Reg)
static bool MemOperandsHaveAlias (const MachineFrameInfo &MFI, BatchAAResults *AA, bool UseTBAA, const MachineMemOperand *MMOa, const MachineMemOperand *MMOb)
static const DIExpression * computeExprForSpill (const MachineInstr &MI, const SmallVectorImpl< const MachineOperand * > &SpilledOperands)
Compute the new DIExpression to use with a DBG_VALUE for a spill slot.
static const DIExpression * computeExprForSpill (const MachineInstr &MI, Register SpillReg)
static LocationSize getSpillSlotSize (const MMOList &Accesses, const MachineFrameInfo &MFI)

MMOList

computeExprForSpill() [1/2]

Compute the new DIExpression to use with a DBG_VALUE for a spill slot.

This prepends DW_OP_deref when spilling an indirect DBG_VALUE.

Definition at line 2445 of file MachineInstr.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, llvm::DIExpression::appendOpsToArg(), assert(), llvm::DIExpression::DerefBefore, MI, OpIdx, and llvm::DIExpression::prepend().

Referenced by llvm::buildDbgValueForSpill(), llvm::buildDbgValueForSpill(), computeExprForSpill(), and llvm::updateDbgValueForSpill().

computeExprForSpill() [2/2]

getDebugOperandsForRegHelper()

getMFIfAvailable()

Definition at line 70 of file MachineInstr.cpp.

References MBB, and MI.

Referenced by llvm::MachineOperand::ChangeToRegister(), llvm::MachineOperand::getTargetIndexName(), llvm::hash_value(), llvm::MachineOperand::isIdenticalTo(), llvm::MachineInstr::print(), llvm::MachineInstr::print(), llvm::MachineOperand::print(), llvm::MachineOperand::printTargetFlags(), llvm::MachineOperand::setIsDef(), llvm::MachineOperand::setReg(), tryToGetTargetInfo(), and tryToGetTargetInfo().

getSpillSlotSize()

hasIdenticalMMOs()

MemOperandsHaveAlias()

Definition at line 1446 of file MachineInstr.cpp.

References assert(), llvm::MachineMemOperand::getAAInfo(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getSize(), llvm::LocationSize::getValue(), llvm::MachineMemOperand::getValue(), llvm::LocationSize::hasValue(), llvm::LocationSize::isScalable(), llvm::PseudoSourceValue::mayAlias(), llvm::LocationSize::precise(), llvm::MemoryLocation::UnknownSize, and UseTBAA.

Referenced by llvm::MachineInstr::mayAlias().

moveOperands()

tryToGetTargetInfo()

PrintMIAddrs

cl::opt< bool > PrintMIAddrs("print-mi-addrs", cl::Hidden, cl::desc("Print addresses of MachineInstrs when dumping")) ( "print-mi-addrs" , cl::Hidden , cl::desc("Print addresses of MachineInstrs when dumping") ) static

TiedMax