diff options
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/Combiner.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/Combiner.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/Combiner.cpp b/llvm/lib/CodeGen/GlobalISel/Combiner.cpp index 1a5fe3e84c17..748fa273d499 100644 --- a/llvm/lib/CodeGen/GlobalISel/Combiner.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Combiner.cpp @@ -12,6 +12,7 @@ #include "llvm/CodeGen/GlobalISel/Combiner.h" #include "llvm/ADT/PostOrderIterator.h" +#include "llvm/ADT/SetVector.h" #include "llvm/CodeGen/GlobalISel/CSEInfo.h" #include "llvm/CodeGen/GlobalISel/CSEMIRBuilder.h" #include "llvm/CodeGen/GlobalISel/CombinerInfo.h" @@ -52,7 +53,9 @@ class WorkListMaintainer : public GISelChangeObserver { WorkListTy &WorkList; /// The instructions that have been created but we want to report once they /// have their operands. This is only maintained if debug output is requested. - SmallPtrSet<const MachineInstr *, 4> CreatedInstrs; +#ifndef NDEBUG + SetVector<const MachineInstr *> CreatedInstrs; +#endif public: WorkListMaintainer(WorkListTy &WorkList) : WorkList(WorkList) {} @@ -132,6 +135,7 @@ bool Combiner::combineMachineInstrs(MachineFunction &MF, // Erase dead insts before even adding to the list. if (isTriviallyDead(CurMI, *MRI)) { LLVM_DEBUG(dbgs() << CurMI << "Is dead; erasing.\n"); + llvm::salvageDebugInfo(*MRI, CurMI); CurMI.eraseFromParent(); continue; } |
