https://github.com/MatzeB updated https://github.com/llvm/llvm-project/pull/71874
>From 3b502f8cc14456b325efc3017a4a114391284b37 Mon Sep 17 00:00:00 2001 From: Matthias Braun <ma...@braunis.de> Date: Wed, 19 Oct 2022 10:58:40 -0700 Subject: [PATCH 1/3] Remove unused LoopInfo from InlineSpiller and SpillPlacement --- llvm/lib/CodeGen/CalcSpillWeights.cpp | 5 ++--- llvm/lib/CodeGen/InlineSpiller.cpp | 9 ++------- llvm/lib/CodeGen/SpillPlacement.cpp | 4 ---- llvm/lib/CodeGen/SpillPlacement.h | 2 -- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/llvm/lib/CodeGen/CalcSpillWeights.cpp b/llvm/lib/CodeGen/CalcSpillWeights.cpp index bf114921a7d220a..0d819e0298213b9 100644 --- a/llvm/lib/CodeGen/CalcSpillWeights.cpp +++ b/llvm/lib/CodeGen/CalcSpillWeights.cpp @@ -163,8 +163,6 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo(); const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); MachineBasicBlock *MBB = nullptr; - MachineLoop *Loop = nullptr; - bool IsExiting = false; float TotalWeight = 0; unsigned NumInstr = 0; // Number of instructions using LI SmallPtrSet<MachineInstr *, 8> Visited; @@ -260,9 +258,10 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, float Weight = 1.0f; if (IsSpillable) { // Get loop info for mi. + bool IsExiting = false; if (MI->getParent() != MBB) { MBB = MI->getParent(); - Loop = Loops.getLoopFor(MBB); + const MachineLoop *Loop = Loops.getLoopFor(MBB); IsExiting = Loop ? Loop->isLoopExiting(MBB) : false; } diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp index 71d58b2e9e18d7d..e6d6fff96fbc519 100644 --- a/llvm/lib/CodeGen/InlineSpiller.cpp +++ b/llvm/lib/CodeGen/InlineSpiller.cpp @@ -33,7 +33,6 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineInstrBundle.h" -#include "llvm/CodeGen/MachineLoopInfo.h" #include "llvm/CodeGen/MachineOperand.h" #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/SlotIndexes.h" @@ -86,7 +85,6 @@ class HoistSpillHelper : private LiveRangeEdit::Delegate { LiveIntervals &LIS; LiveStacks &LSS; MachineDominatorTree &MDT; - MachineLoopInfo &Loops; VirtRegMap &VRM; MachineRegisterInfo &MRI; const TargetInstrInfo &TII; @@ -138,8 +136,7 @@ class HoistSpillHelper : private LiveRangeEdit::Delegate { VirtRegMap &vrm) : MF(mf), LIS(pass.getAnalysis<LiveIntervals>()), LSS(pass.getAnalysis<LiveStacks>()), - MDT(pass.getAnalysis<MachineDominatorTree>()), - Loops(pass.getAnalysis<MachineLoopInfo>()), VRM(vrm), + MDT(pass.getAnalysis<MachineDominatorTree>()), VRM(vrm), MRI(mf.getRegInfo()), TII(*mf.getSubtarget().getInstrInfo()), TRI(*mf.getSubtarget().getRegisterInfo()), MBFI(pass.getAnalysis<MachineBlockFrequencyInfo>()), @@ -157,7 +154,6 @@ class InlineSpiller : public Spiller { LiveIntervals &LIS; LiveStacks &LSS; MachineDominatorTree &MDT; - MachineLoopInfo &Loops; VirtRegMap &VRM; MachineRegisterInfo &MRI; const TargetInstrInfo &TII; @@ -197,8 +193,7 @@ class InlineSpiller : public Spiller { VirtRegAuxInfo &VRAI) : MF(MF), LIS(Pass.getAnalysis<LiveIntervals>()), LSS(Pass.getAnalysis<LiveStacks>()), - MDT(Pass.getAnalysis<MachineDominatorTree>()), - Loops(Pass.getAnalysis<MachineLoopInfo>()), VRM(VRM), + MDT(Pass.getAnalysis<MachineDominatorTree>()), VRM(VRM), MRI(MF.getRegInfo()), TII(*MF.getSubtarget().getInstrInfo()), TRI(*MF.getSubtarget().getRegisterInfo()), MBFI(Pass.getAnalysis<MachineBlockFrequencyInfo>()), diff --git a/llvm/lib/CodeGen/SpillPlacement.cpp b/llvm/lib/CodeGen/SpillPlacement.cpp index 6e74e51d678285b..cdb8099e354bba1 100644 --- a/llvm/lib/CodeGen/SpillPlacement.cpp +++ b/llvm/lib/CodeGen/SpillPlacement.cpp @@ -32,7 +32,6 @@ #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/CodeGen/MachineBlockFrequencyInfo.h" #include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/MachineLoopInfo.h" #include "llvm/CodeGen/Passes.h" #include "llvm/InitializePasses.h" #include "llvm/Pass.h" @@ -52,7 +51,6 @@ char &llvm::SpillPlacementID = SpillPlacement::ID; INITIALIZE_PASS_BEGIN(SpillPlacement, DEBUG_TYPE, "Spill Code Placement Analysis", true, true) INITIALIZE_PASS_DEPENDENCY(EdgeBundles) -INITIALIZE_PASS_DEPENDENCY(MachineLoopInfo) INITIALIZE_PASS_END(SpillPlacement, DEBUG_TYPE, "Spill Code Placement Analysis", true, true) @@ -60,7 +58,6 @@ void SpillPlacement::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired<MachineBlockFrequencyInfo>(); AU.addRequiredTransitive<EdgeBundles>(); - AU.addRequiredTransitive<MachineLoopInfo>(); MachineFunctionPass::getAnalysisUsage(AU); } @@ -195,7 +192,6 @@ struct SpillPlacement::Node { bool SpillPlacement::runOnMachineFunction(MachineFunction &mf) { MF = &mf; bundles = &getAnalysis<EdgeBundles>(); - loops = &getAnalysis<MachineLoopInfo>(); assert(!nodes && "Leaking node array"); nodes = new Node[bundles->getNumBundles()]; diff --git a/llvm/lib/CodeGen/SpillPlacement.h b/llvm/lib/CodeGen/SpillPlacement.h index 2a298c7a74aa61a..5fd9b085259d1d4 100644 --- a/llvm/lib/CodeGen/SpillPlacement.h +++ b/llvm/lib/CodeGen/SpillPlacement.h @@ -38,13 +38,11 @@ class BitVector; class EdgeBundles; class MachineBlockFrequencyInfo; class MachineFunction; -class MachineLoopInfo; class SpillPlacement : public MachineFunctionPass { struct Node; const MachineFunction *MF = nullptr; const EdgeBundles *bundles = nullptr; - const MachineLoopInfo *loops = nullptr; const MachineBlockFrequencyInfo *MBFI = nullptr; Node *nodes = nullptr; >From 0b7915f6867b882a66d611a777692592502ac7ed Mon Sep 17 00:00:00 2001 From: Matthias Braun <ma...@braunis.de> Date: Thu, 16 Nov 2023 13:40:52 -0800 Subject: [PATCH 2/3] fix --- llvm/lib/CodeGen/CalcSpillWeights.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/CodeGen/CalcSpillWeights.cpp b/llvm/lib/CodeGen/CalcSpillWeights.cpp index 0d819e0298213b9..f4d4e7f5bb48f35 100644 --- a/llvm/lib/CodeGen/CalcSpillWeights.cpp +++ b/llvm/lib/CodeGen/CalcSpillWeights.cpp @@ -163,6 +163,7 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo(); const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); MachineBasicBlock *MBB = nullptr; + bool IsExiting = false; float TotalWeight = 0; unsigned NumInstr = 0; // Number of instructions using LI SmallPtrSet<MachineInstr *, 8> Visited; @@ -258,7 +259,6 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, float Weight = 1.0f; if (IsSpillable) { // Get loop info for mi. - bool IsExiting = false; if (MI->getParent() != MBB) { MBB = MI->getParent(); const MachineLoop *Loop = Loops.getLoopFor(MBB); >From 03b2cba461e98f1b8a9d6e98e45dc05bb5337b84 Mon Sep 17 00:00:00 2001 From: Matthias Braun <ma...@braunis.de> Date: Thu, 16 Nov 2023 13:41:53 -0800 Subject: [PATCH 3/3] move decl closer to usage --- llvm/lib/CodeGen/CalcSpillWeights.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/CodeGen/CalcSpillWeights.cpp b/llvm/lib/CodeGen/CalcSpillWeights.cpp index f4d4e7f5bb48f35..f3cb7fa5af61481 100644 --- a/llvm/lib/CodeGen/CalcSpillWeights.cpp +++ b/llvm/lib/CodeGen/CalcSpillWeights.cpp @@ -163,7 +163,6 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo(); const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); MachineBasicBlock *MBB = nullptr; - bool IsExiting = false; float TotalWeight = 0; unsigned NumInstr = 0; // Number of instructions using LI SmallPtrSet<MachineInstr *, 8> Visited; @@ -220,6 +219,7 @@ float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, } }; + bool IsExiting = false; std::set<CopyHint> CopyHints; DenseMap<unsigned, float> Hint; for (MachineRegisterInfo::reg_instr_nodbg_iterator _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits