[PATCH] D100519: [NFC][NewPM] Remove some AnalysisManager invalidate methods
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 15 16:57:05 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG9c776c2fa2bd: [NFC][NewPM] Remove some AnalysisManager invalidate methods (authored by aeubanks).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100519/new/
https://reviews.llvm.org/D100519
Files:
llvm/include/llvm/IR/PassManager.h
llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
Index: llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
===================================================================
--- llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
+++ llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
@@ -1785,8 +1785,11 @@
}
Changed |= CFGChanged;
- if (CFGChanged && !SkipProfitabilityChecks)
- AM.invalidate<BlockFrequencyAnalysis>(F);
+ if (CFGChanged && !SkipProfitabilityChecks) {
+ PreservedAnalyses PA = PreservedAnalyses::all();
+ PA.abandon<BlockFrequencyAnalysis>();
+ AM.invalidate(F, PA);
+ }
}
SmallPriorityWorklist<Loop *, 4> Worklist;
@@ -1800,8 +1803,11 @@
Loop *L = Worklist.pop_back_val();
if (IRCE.run(L, LPMAddNewLoop)) {
Changed = true;
- if (!SkipProfitabilityChecks)
- AM.invalidate<BlockFrequencyAnalysis>(F);
+ if (!SkipProfitabilityChecks) {
+ PreservedAnalyses PA = PreservedAnalyses::all();
+ PA.abandon<BlockFrequencyAnalysis>();
+ AM.invalidate(F, PA);
+ }
}
}
Index: llvm/include/llvm/IR/PassManager.h
===================================================================
--- llvm/include/llvm/IR/PassManager.h
+++ llvm/include/llvm/IR/PassManager.h
@@ -860,16 +860,6 @@
return true;
}
- /// Invalidate a specific analysis pass for an IR unit.
- ///
- /// Note that the analysis result can disregard invalidation, if it determines
- /// it is in fact still valid.
- template <typename PassT> void invalidate(IRUnitT &IR) {
- assert(AnalysisPasses.count(PassT::ID()) &&
- "This analysis pass was not registered prior to being invalidated");
- invalidateImpl(PassT::ID(), IR);
- }
-
/// Invalidate cached analyses for an IR unit.
///
/// Walk through all of the analyses pertaining to this unit of IR and
@@ -904,20 +894,6 @@
return RI == AnalysisResults.end() ? nullptr : &*RI->second->second;
}
- /// Invalidate a pass result for a IR unit.
- void invalidateImpl(AnalysisKey *ID, IRUnitT &IR) {
- typename AnalysisResultMapT::iterator RI =
- AnalysisResults.find({ID, &IR});
- if (RI == AnalysisResults.end())
- return;
-
- if (DebugLogging)
- dbgs() << "Invalidating analysis: " << this->lookUpPass(ID).name()
- << " on " << IR.getName() << "\n";
- AnalysisResultLists[&IR].erase(RI->second);
- AnalysisResults.erase(RI);
- }
-
/// Map type from analysis pass ID to pass concept pointer.
using AnalysisPassMapT =
DenseMap<AnalysisKey *, std::unique_ptr<PassConceptT>>;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100519.337949.patch
Type: text/x-patch
Size: 2598 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210415/c2ff1b77/attachment.bin>
More information about the llvm-commits
mailing list