Skip to content

Commit

Permalink
Revert "[DebugInfo] Fix updateDbgUsersToReg to support DBG_VALUE_LIST"
Browse files Browse the repository at this point in the history
This reverts commit 0791f96.

Causing crashes: https://crbug.com/1206764
  • Loading branch information
aeubanks committed May 7, 2021
1 parent 6c99e63 commit 7ca26c5
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 211 deletions.
11 changes: 5 additions & 6 deletions llvm/include/llvm/CodeGen/MachineRegisterInfo.h
Expand Up @@ -823,13 +823,12 @@ class MachineRegisterInfo {

/// updateDbgUsersToReg - Update a collection of DBG_VALUE instructions
/// to refer to the designated register.
void updateDbgUsersToReg(Register OldReg, Register NewReg,
ArrayRef<MachineInstr *> Users) const {
void updateDbgUsersToReg(Register Reg,
ArrayRef<MachineInstr*> Users) const {
for (MachineInstr *MI : Users) {
assert(MI->isDebugValue());
assert(MI->hasDebugOperandForReg(OldReg));
for (auto &Op : MI->getDebugOperandsForReg(OldReg))
Op.setReg(NewReg);
assert(MI->isDebugInstr());
assert(MI->getOperand(0).isReg());
MI->getOperand(0).setReg(Reg);
}
}

Expand Down
9 changes: 3 additions & 6 deletions llvm/lib/CodeGen/MachineCopyPropagation.cpp
Expand Up @@ -294,7 +294,7 @@ class MachineCopyPropagation : public MachineFunctionPass {
SmallSetVector<MachineInstr *, 8> MaybeDeadCopies;

/// Multimap tracking debug users in current BB
DenseMap<MachineInstr *, SmallSet<MachineInstr *, 2>> CopyDbgUsers;
DenseMap<MachineInstr*, SmallVector<MachineInstr*, 2>> CopyDbgUsers;

CopyTracker Tracker;

Expand All @@ -321,7 +321,7 @@ void MachineCopyPropagation::ReadRegister(MCRegister Reg, MachineInstr &Reader,
LLVM_DEBUG(dbgs() << "MCP: Copy is used - not dead: "; Copy->dump());
MaybeDeadCopies.remove(Copy);
} else {
CopyDbgUsers[Copy].insert(&Reader);
CopyDbgUsers[Copy].push_back(&Reader);
}
}
}
Expand Down Expand Up @@ -734,10 +734,7 @@ void MachineCopyPropagation::ForwardCopyPropagateBlock(MachineBasicBlock &MBB) {
// Update matching debug values, if any.
assert(MaybeDead->isCopy());
Register SrcReg = MaybeDead->getOperand(1).getReg();
Register DestReg = MaybeDead->getOperand(0).getReg();
SmallVector<MachineInstr *> MaybeDeadDbgUsers(
CopyDbgUsers[MaybeDead].begin(), CopyDbgUsers[MaybeDead].end());
MRI->updateDbgUsersToReg(DestReg, SrcReg, MaybeDeadDbgUsers);
MRI->updateDbgUsersToReg(SrcReg, CopyDbgUsers[MaybeDead]);

MaybeDead->eraseFromParent();
Changed = true;
Expand Down
199 changes: 0 additions & 199 deletions llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir

This file was deleted.

0 comments on commit 7ca26c5

Please sign in to comment.