[DebugInfo] Only handle DBG_VALUE in InlineSpiller.
The instructions using registers should be DBG_VALUE and normal instructions. Use isDebugValue() to filter out DBG_VALUE and add an assert to ensure there is no other kind of debug instructions using the registers. Differential Revision: https://reviews.llvm.org/D46739 Patch by Hsiangkai Wang. llvm-svn: 332427
This commit is contained in:
parent
bff9302c3d
commit
21eab936d5
|
@ -617,9 +617,12 @@ void InlineSpiller::reMaterializeAll() {
|
|||
MachineInstr &MI = *RegI++;
|
||||
|
||||
// Debug values are not allowed to affect codegen.
|
||||
if (MI.isDebugInstr())
|
||||
if (MI.isDebugValue())
|
||||
continue;
|
||||
|
||||
assert(!MI.isDebugInstr() && "Did not expect to find a use in debug "
|
||||
"instruction that isn't a DBG_VALUE");
|
||||
|
||||
anyRemat |= reMaterializeFor(LI, MI);
|
||||
}
|
||||
}
|
||||
|
@ -933,7 +936,7 @@ void InlineSpiller::spillAroundUses(unsigned Reg) {
|
|||
MachineInstr *MI = &*(RegI++);
|
||||
|
||||
// Debug values are not allowed to affect codegen.
|
||||
if (MI->isDebugInstr()) {
|
||||
if (MI->isDebugValue()) {
|
||||
// Modify DBG_VALUE now that the value is in a spill slot.
|
||||
MachineBasicBlock *MBB = MI->getParent();
|
||||
LLVM_DEBUG(dbgs() << "Modifying debug info due to spill:\t" << *MI);
|
||||
|
@ -942,6 +945,9 @@ void InlineSpiller::spillAroundUses(unsigned Reg) {
|
|||
continue;
|
||||
}
|
||||
|
||||
assert(!MI->isDebugInstr() && "Did not expect to find a use in debug "
|
||||
"instruction that isn't a DBG_VALUE");
|
||||
|
||||
// Ignore copies to/from snippets. We'll delete them.
|
||||
if (SnippetCopies.count(MI))
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue