33 if (DI->isDebugValue() &&
35 DbgValues.push_back(&*DI);
42 MBB->
splice(Insert, DBI->getParent(), DBI);
46 for (
auto *DBI : DbgValues)
47 for (
auto &MO : DBI->getDebugOperandsForReg(CurrentReg))
65 for (
auto *DBI : DbgValues) {
66 auto IndexType = DBI->isIndirectDebugValue()
69 for (
auto &MO : DBI->getDebugOperandsForReg(CurrentReg))
70 MO.ChangeToTargetIndex(IndexType, LocalId);
This file contains the declaration of the WebAssembly-specific manager for DebugValues associated wit...
This file declares WebAssembly-specific per-machine-function information.
This file contains the entry points for global functions defined in the LLVM WebAssembly back-end.
instr_iterator insert(instr_iterator I, MachineInstr *M)
Insert MI into the instruction list before I, possibly inside a bundle.
const MachineFunction * getParent() const
Return the MachineFunction containing this basic block.
void splice(iterator Where, MachineBasicBlock *Other, iterator From)
Take an instruction from MBB 'Other' at the position From, and insert it into this MBB right before '...
MachineInstr * CloneMachineInstr(const MachineInstr *Orig)
Create a new MachineInstr which is a copy of Orig, identical in all ways except the instruction has n...
Representation of each machine instruction.
static iterator_range< filter_iterator< Operand *, std::function< bool(Operand &Op)> > > getDebugOperandsForReg(Instruction *MI, Register Reg)
Returns a range of all of the operands that correspond to a debug use of Reg.
const MachineBasicBlock * getParent() const
const MachineOperand & getOperand(unsigned i) const
bool isReg() const
isReg - Tests if this is a MO_Register operand.
Register getReg() const
getReg - Returns the register number.
void move(MachineInstr *Insert)
WebAssemblyDebugValueManager(MachineInstr *Instr)
void updateReg(unsigned Reg)
void replaceWithLocal(unsigned LocalId)
void clone(MachineInstr *Insert, unsigned NewReg)
This is an optimization pass for GlobalISel generic memory operations.
auto reverse(ContainerTy &&C)