From 91dfdd5734e1c0a603e17bae0dd7723d775c485a Mon Sep 17 00:00:00 2001 From: Daniel Sanders Date: Wed, 12 Dec 2018 21:32:01 +0000 Subject: [globalisel] Rename GISelChangeObserver's erasedInstr() to erasingInstr() and related nits. NFC Summary: There's little of interest that can be done to an already-erased instruction. You can't inspect it, write it to a debug log, etc. It ought to be notification that we're about to erase it. Rename the function to clarify the timing of the event and reflect current usage. Also fixed one case where we were trying to print an erased instruction. Reviewers: aditya_nandakumar Reviewed By: aditya_nandakumar Subscribers: rovka, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D55611 llvm-svn: 348976 --- llvm/lib/CodeGen/GlobalISel/Combiner.cpp | 2 +- llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp | 5 +---- llvm/lib/CodeGen/GlobalISel/Legalizer.cpp | 9 +++++---- 3 files changed, 7 insertions(+), 9 deletions(-) (limited to 'llvm/lib/CodeGen') diff --git a/llvm/lib/CodeGen/GlobalISel/Combiner.cpp b/llvm/lib/CodeGen/GlobalISel/Combiner.cpp index 8f7431d9d61..f944b5a8b7e 100644 --- a/llvm/lib/CodeGen/GlobalISel/Combiner.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Combiner.cpp @@ -43,7 +43,7 @@ public: WorkListMaintainer(WorkListTy &WorkList) : WorkList(WorkList) {} virtual ~WorkListMaintainer() {} - void erasedInstr(MachineInstr &MI) override { + void erasingInstr(MachineInstr &MI) override { LLVM_DEBUG(dbgs() << "Erased: "; MI.print(dbgs()); dbgs() << "\n"); WorkList.remove(&MI); } diff --git a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp index 179c073e9b4..6018c59da77 100644 --- a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp @@ -23,9 +23,6 @@ CombinerHelper::CombinerHelper(GISelChangeObserver &Observer, MachineIRBuilder &B) : Builder(B), MRI(Builder.getMF().getRegInfo()), Observer(Observer) {} -void CombinerHelper::eraseInstr(MachineInstr &MI) { - Observer.erasedInstr(MI); -} void CombinerHelper::scheduleForVisit(MachineInstr &MI) { Observer.createdInstr(MI); } @@ -299,8 +296,8 @@ bool CombinerHelper::tryCombineExtendingLoads(MachineInstr &MI) { Observer.createdInstr(*NewMI); } for (auto &EraseMI : ScheduleForErase) { + Observer.erasingInstr(*EraseMI); EraseMI->eraseFromParent(); - Observer.erasedInstr(*EraseMI); } MI.getOperand(0).setReg(ChosenDstReg); diff --git a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp index 9f4d2aa8e4a..c4de312cc8f 100644 --- a/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp +++ b/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp @@ -94,7 +94,8 @@ public: LLVM_DEBUG(dbgs() << ".. .. New MI: " << MI;); } - void erasedInstr(MachineInstr &MI) override { + void erasingInstr(MachineInstr &MI) override { + LLVM_DEBUG(dbgs() << ".. .. Erasing: " << MI;); InstList.remove(&MI); ArtifactList.remove(&MI); } @@ -146,7 +147,7 @@ bool Legalizer::runOnMachineFunction(MachineFunction &MF) { const LegalizerInfo &LInfo(Helper.getLegalizerInfo()); LegalizationArtifactCombiner ArtCombiner(Helper.MIRBuilder, MF.getRegInfo(), LInfo); auto RemoveDeadInstFromLists = [&WorkListObserver](MachineInstr *DeadMI) { - WorkListObserver.erasedInstr(*DeadMI); + WorkListObserver.erasingInstr(*DeadMI); }; bool Changed = false; do { @@ -175,7 +176,7 @@ bool Legalizer::runOnMachineFunction(MachineFunction &MF) { MachineInstr &MI = *ArtifactList.pop_back_val(); assert(isPreISelGenericOpcode(MI.getOpcode()) && "Expecting generic opcode"); if (isTriviallyDead(MI, MRI)) { - LLVM_DEBUG(dbgs() << MI << "Is dead; erasing.\n"); + LLVM_DEBUG(dbgs() << MI << "Is dead\n"); RemoveDeadInstFromLists(&MI); MI.eraseFromParentAndMarkDBGValuesForRemoval(); continue; @@ -183,7 +184,7 @@ bool Legalizer::runOnMachineFunction(MachineFunction &MF) { SmallVector DeadInstructions; if (ArtCombiner.tryCombineInstruction(MI, DeadInstructions)) { for (auto *DeadMI : DeadInstructions) { - LLVM_DEBUG(dbgs() << ".. Erasing Dead Instruction " << *DeadMI); + LLVM_DEBUG(dbgs() << *DeadMI << "Is dead\n"); RemoveDeadInstFromLists(DeadMI); DeadMI->eraseFromParentAndMarkDBGValuesForRemoval(); } -- cgit v1.2.3