llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-risc-v Author: Akshat Oke (optimisan) <details> <summary>Changes</summary> --- Patch is 21.50 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/118778.diff 17 Files Affected: - (modified) llvm/include/llvm/CodeGen/LiveStacks.h (+39-7) - (modified) llvm/include/llvm/InitializePasses.h (+1-1) - (modified) llvm/include/llvm/Passes/MachinePassRegistry.def (+2-1) - (modified) llvm/lib/CodeGen/CodeGen.cpp (+1-1) - (modified) llvm/lib/CodeGen/InlineSpiller.cpp (+2-2) - (modified) llvm/lib/CodeGen/LiveStacks.cpp (+36-9) - (modified) llvm/lib/CodeGen/MachineVerifier.cpp (+3-2) - (modified) llvm/lib/CodeGen/RegAllocBasic.cpp (+3-3) - (modified) llvm/lib/CodeGen/RegAllocGreedy.cpp (+3-3) - (modified) llvm/lib/CodeGen/RegAllocPBQP.cpp (+3-3) - (modified) llvm/lib/CodeGen/StackSlotColoring.cpp (+3-3) - (modified) llvm/lib/CodeGen/VirtRegMap.cpp (+3-3) - (modified) llvm/lib/Passes/PassBuilder.cpp (+1) - (modified) llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp (+3-3) - (modified) llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp (+1-1) - (modified) llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp (+1-1) - (modified) llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp (+1-1) ``````````diff diff --git a/llvm/include/llvm/CodeGen/LiveStacks.h b/llvm/include/llvm/CodeGen/LiveStacks.h index 2edc2985f0ee66..02c640bfc4a93e 100644 --- a/llvm/include/llvm/CodeGen/LiveStacks.h +++ b/llvm/include/llvm/CodeGen/LiveStacks.h @@ -17,6 +17,7 @@ #include "llvm/CodeGen/LiveInterval.h" #include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/IR/PassManager.h" #include "llvm/InitializePasses.h" #include "llvm/PassRegistry.h" #include <cassert> @@ -32,7 +33,7 @@ class raw_ostream; class TargetRegisterClass; class TargetRegisterInfo; -class LiveStacks : public MachineFunctionPass { +class LiveStacks { const TargetRegisterInfo *TRI = nullptr; /// Special pool allocator for VNInfo's (LiveInterval val#). @@ -47,12 +48,6 @@ class LiveStacks : public MachineFunctionPass { std::map<int, const TargetRegisterClass *> S2RCMap; public: - static char ID; // Pass identification, replacement for typeid - - LiveStacks() : MachineFunctionPass(ID) { - initializeLiveStacksPass(*PassRegistry::getPassRegistry()); - } - using iterator = SS2IntervalMap::iterator; using const_iterator = SS2IntervalMap::const_iterator; @@ -92,6 +87,25 @@ class LiveStacks : public MachineFunctionPass { VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } + void releaseMemory(); + /// init - analysis entry point + void init(MachineFunction &MF); + void print(raw_ostream &O, const Module *M = nullptr) const; +}; + +class LiveStacksWrapperLegacy : public MachineFunctionPass { + LiveStacks Impl; + +public: + static char ID; // Pass identification, replacement for typeid + + LiveStacksWrapperLegacy() : MachineFunctionPass(ID) { + initializeLiveStacksWrapperLegacyPass(*PassRegistry::getPassRegistry()); + } + + LiveStacks &getLS() { return Impl; } + const LiveStacks &getLS() const { return Impl; } + void getAnalysisUsage(AnalysisUsage &AU) const override; void releaseMemory() override; @@ -102,6 +116,24 @@ class LiveStacks : public MachineFunctionPass { void print(raw_ostream &O, const Module * = nullptr) const override; }; +class LiveStacksAnalysis : public AnalysisInfoMixin<LiveStacksAnalysis> { + static AnalysisKey Key; + friend AnalysisInfoMixin<LiveStacksAnalysis>; + +public: + using Result = LiveStacks; + + LiveStacks run(MachineFunction &MF, MachineFunctionAnalysisManager &); +}; + +class LiveStacksPrinterPass : public PassInfoMixin<LiveStacksPrinterPass> { + raw_ostream &OS; + +public: + LiveStacksPrinterPass(raw_ostream &OS) : OS(OS) {} + PreservedAnalyses run(MachineFunction &MF, + MachineFunctionAnalysisManager &AM); +}; } // end namespace llvm #endif diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index 1d690165134ca2..87faf111a30cc9 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -158,7 +158,7 @@ void initializeLiveDebugVariablesWrapperLegacyPass(PassRegistry &); void initializeLiveIntervalsWrapperPassPass(PassRegistry &); void initializeLiveRangeShrinkPass(PassRegistry &); void initializeLiveRegMatrixWrapperLegacyPass(PassRegistry &); -void initializeLiveStacksPass(PassRegistry &); +void initializeLiveStacksWrapperLegacyPass(PassRegistry &); void initializeLiveVariablesWrapperPassPass(PassRegistry &); void initializeLoadStoreOptPass(PassRegistry &); void initializeLoadStoreVectorizerLegacyPassPass(PassRegistry &); diff --git a/llvm/include/llvm/Passes/MachinePassRegistry.def b/llvm/include/llvm/Passes/MachinePassRegistry.def index 88f57568645eb4..c23e4af1a342bd 100644 --- a/llvm/include/llvm/Passes/MachinePassRegistry.def +++ b/llvm/include/llvm/Passes/MachinePassRegistry.def @@ -101,6 +101,7 @@ MACHINE_FUNCTION_ANALYSIS("edge-bundles", EdgeBundlesAnalysis()) MACHINE_FUNCTION_ANALYSIS("livedebugvars", LiveDebugVariablesAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-intervals", LiveIntervalsAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-reg-matrix", LiveRegMatrixAnalysis()) +MACHINE_FUNCTION_ANALYSIS("live-stacks", LiveStacksAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-vars", LiveVariablesAnalysis()) MACHINE_FUNCTION_ANALYSIS("machine-block-freq", MachineBlockFrequencyAnalysis()) MACHINE_FUNCTION_ANALYSIS("machine-branch-prob", @@ -118,7 +119,6 @@ MACHINE_FUNCTION_ANALYSIS("regalloc-priority", RegAllocPriorityAdvisorAnalysis() MACHINE_FUNCTION_ANALYSIS("slot-indexes", SlotIndexesAnalysis()) MACHINE_FUNCTION_ANALYSIS("spill-code-placement", SpillPlacementAnalysis()) MACHINE_FUNCTION_ANALYSIS("virtregmap", VirtRegMapAnalysis()) -// MACHINE_FUNCTION_ANALYSIS("live-stacks", LiveStacksPass()) // MACHINE_FUNCTION_ANALYSIS("lazy-machine-bfi", // LazyMachineBlockFrequencyInfoAnalysis()) // MACHINE_FUNCTION_ANALYSIS("machine-loops", MachineLoopInfoAnalysis()) @@ -151,6 +151,7 @@ MACHINE_FUNCTION_PASS("phi-node-elimination", PHIEliminationPass()) MACHINE_FUNCTION_PASS("print", PrintMIRPass()) MACHINE_FUNCTION_PASS("print<livedebugvars>", LiveDebugVariablesPrinterPass(errs())) MACHINE_FUNCTION_PASS("print<live-intervals>", LiveIntervalsPrinterPass(errs())) +MACHINE_FUNCTION_PASS("print<live-stacks>", LiveStacksPrinterPass(errs())) MACHINE_FUNCTION_PASS("print<live-vars>", LiveVariablesPrinterPass(errs())) MACHINE_FUNCTION_PASS("print<machine-block-freq>", MachineBlockFrequencyPrinterPass(errs())) diff --git a/llvm/lib/CodeGen/CodeGen.cpp b/llvm/lib/CodeGen/CodeGen.cpp index 59428818c1ee7c..8efe540770913a 100644 --- a/llvm/lib/CodeGen/CodeGen.cpp +++ b/llvm/lib/CodeGen/CodeGen.cpp @@ -62,7 +62,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) { initializeLiveDebugVariablesWrapperLegacyPass(Registry); initializeLiveIntervalsWrapperPassPass(Registry); initializeLiveRangeShrinkPass(Registry); - initializeLiveStacksPass(Registry); + initializeLiveStacksWrapperLegacyPass(Registry); initializeLiveVariablesWrapperPassPass(Registry); initializeLocalStackSlotPassPass(Registry); initializeLowerGlobalDtorsLegacyPassPass(Registry); diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp index e8f7c6850a507e..64f290f5930a1b 100644 --- a/llvm/lib/CodeGen/InlineSpiller.cpp +++ b/llvm/lib/CodeGen/InlineSpiller.cpp @@ -131,7 +131,7 @@ class HoistSpillHelper : private LiveRangeEdit::Delegate { HoistSpillHelper(MachineFunctionPass &pass, MachineFunction &mf, VirtRegMap &vrm) : MF(mf), LIS(pass.getAnalysis<LiveIntervalsWrapperPass>().getLIS()), - LSS(pass.getAnalysis<LiveStacks>()), + LSS(pass.getAnalysis<LiveStacksWrapperLegacy>().getLS()), MDT(pass.getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree()), VRM(vrm), MRI(mf.getRegInfo()), TII(*mf.getSubtarget().getInstrInfo()), TRI(*mf.getSubtarget().getRegisterInfo()), @@ -193,7 +193,7 @@ class InlineSpiller : public Spiller { InlineSpiller(MachineFunctionPass &Pass, MachineFunction &MF, VirtRegMap &VRM, VirtRegAuxInfo &VRAI) : MF(MF), LIS(Pass.getAnalysis<LiveIntervalsWrapperPass>().getLIS()), - LSS(Pass.getAnalysis<LiveStacks>()), + LSS(Pass.getAnalysis<LiveStacksWrapperLegacy>().getLS()), MDT(Pass.getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree()), VRM(VRM), MRI(MF.getRegInfo()), TII(*MF.getSubtarget().getInstrInfo()), TRI(*MF.getSubtarget().getRegisterInfo()), diff --git a/llvm/lib/CodeGen/LiveStacks.cpp b/llvm/lib/CodeGen/LiveStacks.cpp index 6228a4dd2ad3bc..92cc6699f2d331 100644 --- a/llvm/lib/CodeGen/LiveStacks.cpp +++ b/llvm/lib/CodeGen/LiveStacks.cpp @@ -15,20 +15,21 @@ #include "llvm/CodeGen/LiveStacks.h" #include "llvm/CodeGen/TargetRegisterInfo.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" +#include "llvm/IR/Function.h" using namespace llvm; #define DEBUG_TYPE "livestacks" -char LiveStacks::ID = 0; -INITIALIZE_PASS_BEGIN(LiveStacks, DEBUG_TYPE, - "Live Stack Slot Analysis", false, false) +char LiveStacksWrapperLegacy::ID = 0; +INITIALIZE_PASS_BEGIN(LiveStacksWrapperLegacy, DEBUG_TYPE, + "Live Stack Slot Analysis", false, false) INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) -INITIALIZE_PASS_END(LiveStacks, DEBUG_TYPE, - "Live Stack Slot Analysis", false, false) +INITIALIZE_PASS_END(LiveStacksWrapperLegacy, DEBUG_TYPE, + "Live Stack Slot Analysis", false, false) -char &llvm::LiveStacksID = LiveStacks::ID; +char &llvm::LiveStacksID = LiveStacksWrapperLegacy::ID; -void LiveStacks::getAnalysisUsage(AnalysisUsage &AU) const { +void LiveStacksWrapperLegacy::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addPreserved<SlotIndexesWrapperPass>(); AU.addRequiredTransitive<SlotIndexesWrapperPass>(); @@ -42,11 +43,10 @@ void LiveStacks::releaseMemory() { S2RCMap.clear(); } -bool LiveStacks::runOnMachineFunction(MachineFunction &MF) { +void LiveStacks::init(MachineFunction &MF) { TRI = MF.getSubtarget().getRegisterInfo(); // FIXME: No analysis is being done right now. We are relying on the // register allocators to provide the information. - return false; } LiveInterval & @@ -68,6 +68,33 @@ LiveStacks::getOrCreateInterval(int Slot, const TargetRegisterClass *RC) { return I->second; } +AnalysisKey LiveStacksAnalysis::Key; + +LiveStacks LiveStacksAnalysis::run(MachineFunction &MF, + MachineFunctionAnalysisManager &) { + LiveStacks Impl; + Impl.init(MF); + return Impl; +} +PreservedAnalyses +LiveStacksPrinterPass::run(MachineFunction &MF, + MachineFunctionAnalysisManager &AM) { + AM.getResult<LiveStacksAnalysis>(MF).print(OS, MF.getFunction().getParent()); + return PreservedAnalyses::all(); +} + +bool LiveStacksWrapperLegacy::runOnMachineFunction(MachineFunction &MF) { + Impl = LiveStacks(); + Impl.init(MF); + return false; +} + +void LiveStacksWrapperLegacy::releaseMemory() { Impl = LiveStacks(); } + +void LiveStacksWrapperLegacy::print(raw_ostream &OS, const Module *) const { + Impl.print(OS); +} + /// print - Implement the dump method. void LiveStacks::print(raw_ostream &OS, const Module*) const { diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp index 8e64e4055665ce..fb4d96fdad0a5e 100644 --- a/llvm/lib/CodeGen/MachineVerifier.cpp +++ b/llvm/lib/CodeGen/MachineVerifier.cpp @@ -369,7 +369,7 @@ struct MachineVerifierLegacyPass : public MachineFunctionPass { } void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addUsedIfAvailable<LiveStacks>(); + AU.addUsedIfAvailable<LiveStacksWrapperLegacy>(); AU.addUsedIfAvailable<LiveVariablesWrapperPass>(); AU.addUsedIfAvailable<SlotIndexesWrapperPass>(); AU.addUsedIfAvailable<LiveIntervalsWrapperPass>(); @@ -491,7 +491,8 @@ bool MachineVerifier::verify(const MachineFunction &MF) { auto *LVWrapper = PASS->getAnalysisIfAvailable<LiveVariablesWrapperPass>(); if (!LiveInts) LiveVars = LVWrapper ? &LVWrapper->getLV() : nullptr; - LiveStks = PASS->getAnalysisIfAvailable<LiveStacks>(); + auto *LSWrapper = PASS->getAnalysisIfAvailable<LiveStacksWrapperLegacy>(); + LiveStks = LSWrapper ? &LSWrapper->getLS() : nullptr; auto *SIWrapper = PASS->getAnalysisIfAvailable<SlotIndexesWrapperPass>(); Indexes = SIWrapper ? &SIWrapper->getSI() : nullptr; } diff --git a/llvm/lib/CodeGen/RegAllocBasic.cpp b/llvm/lib/CodeGen/RegAllocBasic.cpp index 7ee24c960dbe0c..c05aa1e40e4779 100644 --- a/llvm/lib/CodeGen/RegAllocBasic.cpp +++ b/llvm/lib/CodeGen/RegAllocBasic.cpp @@ -135,7 +135,7 @@ INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) INITIALIZE_PASS_DEPENDENCY(LiveIntervalsWrapperPass) INITIALIZE_PASS_DEPENDENCY(RegisterCoalescer) INITIALIZE_PASS_DEPENDENCY(MachineScheduler) -INITIALIZE_PASS_DEPENDENCY(LiveStacks) +INITIALIZE_PASS_DEPENDENCY(LiveStacksWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(MachineLoopInfoWrapperPass) @@ -182,8 +182,8 @@ void RABasic::getAnalysisUsage(AnalysisUsage &AU) const { AU.addPreserved<SlotIndexesWrapperPass>(); AU.addRequired<LiveDebugVariablesWrapperLegacy>(); AU.addPreserved<LiveDebugVariablesWrapperLegacy>(); - AU.addRequired<LiveStacks>(); - AU.addPreserved<LiveStacks>(); + AU.addRequired<LiveStacksWrapperLegacy>(); + AU.addPreserved<LiveStacksWrapperLegacy>(); AU.addRequired<ProfileSummaryInfoWrapperPass>(); AU.addRequired<MachineBlockFrequencyInfoWrapperPass>(); AU.addPreserved<MachineBlockFrequencyInfoWrapperPass>(); diff --git a/llvm/lib/CodeGen/RegAllocGreedy.cpp b/llvm/lib/CodeGen/RegAllocGreedy.cpp index f97525a8420125..d3a7f4cb6f1206 100644 --- a/llvm/lib/CodeGen/RegAllocGreedy.cpp +++ b/llvm/lib/CodeGen/RegAllocGreedy.cpp @@ -156,7 +156,7 @@ INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) INITIALIZE_PASS_DEPENDENCY(LiveIntervalsWrapperPass) INITIALIZE_PASS_DEPENDENCY(RegisterCoalescer) INITIALIZE_PASS_DEPENDENCY(MachineScheduler) -INITIALIZE_PASS_DEPENDENCY(LiveStacks) +INITIALIZE_PASS_DEPENDENCY(LiveStacksWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(MachineLoopInfoWrapperPass) INITIALIZE_PASS_DEPENDENCY(VirtRegMapWrapperLegacy) @@ -206,8 +206,8 @@ void RAGreedy::getAnalysisUsage(AnalysisUsage &AU) const { AU.addPreserved<SlotIndexesWrapperPass>(); AU.addRequired<LiveDebugVariablesWrapperLegacy>(); AU.addPreserved<LiveDebugVariablesWrapperLegacy>(); - AU.addRequired<LiveStacks>(); - AU.addPreserved<LiveStacks>(); + AU.addRequired<LiveStacksWrapperLegacy>(); + AU.addPreserved<LiveStacksWrapperLegacy>(); AU.addRequired<MachineDominatorTreeWrapperPass>(); AU.addPreserved<MachineDominatorTreeWrapperPass>(); AU.addRequired<MachineLoopInfoWrapperPass>(); diff --git a/llvm/lib/CodeGen/RegAllocPBQP.cpp b/llvm/lib/CodeGen/RegAllocPBQP.cpp index 261e93add7d88c..696c312e4ba00a 100644 --- a/llvm/lib/CodeGen/RegAllocPBQP.cpp +++ b/llvm/lib/CodeGen/RegAllocPBQP.cpp @@ -121,7 +121,7 @@ class RegAllocPBQP : public MachineFunctionPass { : MachineFunctionPass(ID), customPassID(cPassID) { initializeSlotIndexesWrapperPassPass(*PassRegistry::getPassRegistry()); initializeLiveIntervalsWrapperPassPass(*PassRegistry::getPassRegistry()); - initializeLiveStacksPass(*PassRegistry::getPassRegistry()); + initializeLiveStacksWrapperLegacyPass(*PassRegistry::getPassRegistry()); initializeVirtRegMapWrapperLegacyPass(*PassRegistry::getPassRegistry()); } @@ -550,8 +550,8 @@ void RegAllocPBQP::getAnalysisUsage(AnalysisUsage &au) const { //au.addRequiredID(SplitCriticalEdgesID); if (customPassID) au.addRequiredID(*customPassID); - au.addRequired<LiveStacks>(); - au.addPreserved<LiveStacks>(); + au.addRequired<LiveStacksWrapperLegacy>(); + au.addPreserved<LiveStacksWrapperLegacy>(); au.addRequired<MachineBlockFrequencyInfoWrapperPass>(); au.addPreserved<MachineBlockFrequencyInfoWrapperPass>(); au.addRequired<MachineLoopInfoWrapperPass>(); diff --git a/llvm/lib/CodeGen/StackSlotColoring.cpp b/llvm/lib/CodeGen/StackSlotColoring.cpp index cdc530621de621..4dc5dc87ba3fc4 100644 --- a/llvm/lib/CodeGen/StackSlotColoring.cpp +++ b/llvm/lib/CodeGen/StackSlotColoring.cpp @@ -149,7 +149,7 @@ namespace { AU.setPreservesCFG(); AU.addRequired<SlotIndexesWrapperPass>(); AU.addPreserved<SlotIndexesWrapperPass>(); - AU.addRequired<LiveStacks>(); + AU.addRequired<LiveStacksWrapperLegacy>(); AU.addRequired<MachineBlockFrequencyInfoWrapperPass>(); AU.addPreserved<MachineBlockFrequencyInfoWrapperPass>(); AU.addPreservedID(MachineDominatorsID); @@ -185,7 +185,7 @@ char &llvm::StackSlotColoringID = StackSlotColoring::ID; INITIALIZE_PASS_BEGIN(StackSlotColoring, DEBUG_TYPE, "Stack Slot Coloring", false, false) INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) -INITIALIZE_PASS_DEPENDENCY(LiveStacks) +INITIALIZE_PASS_DEPENDENCY(LiveStacksWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(MachineLoopInfoWrapperPass) INITIALIZE_PASS_END(StackSlotColoring, DEBUG_TYPE, "Stack Slot Coloring", false, false) @@ -522,7 +522,7 @@ bool StackSlotColoring::runOnMachineFunction(MachineFunction &MF) { MFI = &MF.getFrameInfo(); TII = MF.getSubtarget().getInstrInfo(); - LS = &getAnalysis<LiveStacks>(); + LS = &getAnalysis<LiveStacksWrapperLegacy>().getLS(); MBFI = &getAnalysis<MachineBlockFrequencyInfoWrapperPass>().getMBFI(); Indexes = &getAnalysis<SlotIndexesWrapperPass>().getSI(); diff --git a/llvm/lib/CodeGen/VirtRegMap.cpp b/llvm/lib/CodeGen/VirtRegMap.cpp index 2084e68c16e292..1352102a93d01b 100644 --- a/llvm/lib/CodeGen/VirtRegMap.cpp +++ b/llvm/lib/CodeGen/VirtRegMap.cpp @@ -253,7 +253,7 @@ INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) INITIALIZE_PASS_DEPENDENCY(LiveIntervalsWrapperPass) INITIALIZE_PASS_DEPENDENCY(LiveDebugVariablesWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(LiveRegMatrixWrapperLegacy) -INITIALIZE_PASS_DEPENDENCY(LiveStacks) +INITIALIZE_PASS_DEPENDENCY(LiveStacksWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(VirtRegMapWrapperLegacy) INITIALIZE_PASS_END(VirtRegRewriter, "virtregrewriter", "Virtual Register Rewriter", false, false) @@ -265,8 +265,8 @@ void VirtRegRewriter::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<SlotIndexesWrapperPass>(); AU.addPreserved<SlotIndexesWrapperPass>(); AU.addRequired<LiveDebugVariablesWrapperLegacy>(); - AU.addRequired<LiveStacks>(); - AU.addPreserved<LiveStacks>(); + AU.addRequired<LiveStacksWrapperLegacy>(); + AU.addPreserved<LiveStacksWrapperLegacy>(); AU.addRequired<VirtRegMapWrapperLegacy>(); AU.addRequired<LiveRegMatrixWrapperLegacy>(); diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 9c28bf1ce57ac3..e1aa1497891506 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -101,6 +101,7 @@ #include "llvm/CodeGen/LiveDebugVariables.h" #include "llvm/CodeGen/LiveIntervals.h" #include "llvm/CodeGen/LiveRegMatrix.h" +#include "llvm/CodeGen/LiveStacks.h" #include "llvm/CodeGen/LiveVariables.h" #include "llvm/CodeGen/LocalStackSlotAllocation.h" #include "llvm/CodeGen/LowerEmuTLS.h" diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp b/llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp index 359cd7ad6a7144..8eef0c58921090 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUMarkLastScratchLoad.cpp @@ -44,7 +44,7 @@ class AMDGPUMarkLastScratchLoad : public MachineFunctionPass { void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<SlotIndexesWrapperPass>(); AU.addRequired<LiveIntervalsWrapperPass>(); - AU.addRequired<LiveStacks>(); + AU.addRequired<LiveStacksWrapperLegacy>(); AU.setPreservesAll(); MachineFunctionPass::getAnalysisUsage(AU); } @@ -64,7 +64,7 @@ bool AMDGPUMarkLastScratchLoad::runOnMachineFunction(MachineFunction &MF) { if (ST.getGeneration() < AMDGPUSubtarget::GFX12) return false; - LS = &getAnalysis<LiveStacks>(); + LS = &getAnalysis<LiveStacksWrapperLegacy>().getLS(); LIS = &getAnalysis<LiveIntervalsWrapperPass>().getLIS(); SI = &getAnalysis<SlotIndexesWrapperPass>().getSI(); SII = ST.getInstrInfo(); @@ -137,6 +137,6 @@ char &llvm::AMDGPUMarkLastScratchLoadID = AMDGPUMarkLastScratchLoad::ID; INITIALIZE_PASS_BEGIN(AMDGPUMarkLastScratchLoad, DEBUG_TYPE, "AMDGPU Mark last scratch load", false, false) INITIALIZE_PASS_DEPENDENCY(SlotIndexesWrapperPass) -INITIALIZE_PASS_DEPENDENCY(LiveStacks) +INITIALIZE_PASS_DEPENDENCY(LiveStacksWrapperLegacy) INITIALIZE_PASS_END(AMDGPUMarkLastScratchLoad, DEBUG_TYPE, "AMDGPU Mark last scratch load", false, false) diff --git a/llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp b/llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp index d682b7dbe3ce2f..069b181791ac78 100644 --- a/llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchDeadRegisterDefinitions.cpp @@ -38,7 +38,7 @@ class LoongArchDeadRegisterDefinitions : public MachineFunctionPass { AU.addRequired<LiveIntervalsWrapperPass... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/118778 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits