mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
[NewPM] Invalidate AAManager after populating GlobalsAA
GlobalsAA is only created at the beginning of the inliner pipeline. If an AAManager is cached from previous passes, it won't get rebuilt to include the newly created GlobalsAA. Reviewed By: mtrofin Differential Revision: https://reviews.llvm.org/D101379
This commit is contained in:
parent
62b7b13a4f
commit
d1184b1fbe
@ -131,9 +131,9 @@ public:
|
||||
/// before run is called, as part of pass pipeline building.
|
||||
CGSCCPassManager &getPM() { return PM; }
|
||||
|
||||
/// Allow adding module-level analyses benefiting the contained CGSCC passes.
|
||||
template <class T> void addRequiredModuleAnalysis() {
|
||||
MPM.addPass(RequireAnalysisPass<T, Module>());
|
||||
/// Allow adding module-level passes benefiting the contained CGSCC passes.
|
||||
template <class T> void addModulePass(T Pass) {
|
||||
MPM.addPass(std::move(Pass));
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -977,11 +977,15 @@ PassBuilder::buildInlinerPipeline(OptimizationLevel Level,
|
||||
|
||||
// Require the GlobalsAA analysis for the module so we can query it within
|
||||
// the CGSCC pipeline.
|
||||
MIWP.addRequiredModuleAnalysis<GlobalsAA>();
|
||||
MIWP.addModulePass(RequireAnalysisPass<GlobalsAA, Module>());
|
||||
// Invalidate AAManager so it can be recreated and pick up the newly available
|
||||
// GlobalsAA.
|
||||
MIWP.addModulePass(
|
||||
createModuleToFunctionPassAdaptor(InvalidateAnalysisPass<AAManager>()));
|
||||
|
||||
// Require the ProfileSummaryAnalysis for the module so we can query it within
|
||||
// the inliner pass.
|
||||
MIWP.addRequiredModuleAnalysis<ProfileSummaryAnalysis>();
|
||||
MIWP.addModulePass(RequireAnalysisPass<ProfileSummaryAnalysis, Module>());
|
||||
|
||||
// Now begin the main postorder CGSCC pipeline.
|
||||
// FIXME: The current CGSCC pipeline has its origins in the legacy pass
|
||||
|
@ -114,6 +114,8 @@
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Invalidating analysis: AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
@ -125,6 +127,7 @@
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running analysis: AAManager
|
||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
||||
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
||||
|
@ -98,6 +98,8 @@
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Invalidating analysis: AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-PRELINK-O-NEXT: Running analysis: ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
@ -109,6 +111,7 @@
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running analysis: AAManager
|
||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
||||
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
||||
|
@ -73,6 +73,8 @@
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Invalidating analysis: AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||
@ -83,6 +85,7 @@
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running analysis: AAManager
|
||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
|
@ -82,6 +82,8 @@
|
||||
; CHECK-O-NEXT: Starting {{.*}}Module pass manager run.
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Invalidating analysis: AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||
@ -92,6 +94,7 @@
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running analysis: AAManager
|
||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
|
@ -98,6 +98,7 @@
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||
|
@ -77,6 +77,8 @@
|
||||
; CHECK-O-NEXT: Starting {{.*}}Module pass manager run.
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||
; CHECK-O-NEXT: Running analysis: GlobalsAA
|
||||
; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||
; CHECK-O-NEXT: Invalidating analysis: AAManager
|
||||
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
; CHECK-O-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||
@ -87,6 +89,7 @@
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: InlinerPass
|
||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running analysis: AAManager
|
||||
; CHECK-O3-NEXT: Running pass: ArgumentPromotionPass
|
||||
; CHECK-O2-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
; CHECK-O3-NEXT: Running pass: OpenMPOptCGSCCPass
|
||||
|
@ -380,6 +380,8 @@
|
||||
; NEWPM-NEXT: RequireAnalysisPass<{{.*}}> on [module]
|
||||
; NEWPM-NEXT: GlobalsAA analysis on [module]
|
||||
; NEWPM-NEXT: CallGraphAnalysis analysis on [module]
|
||||
; NEWPM-NEXT: ModuleToFunctionPassAdaptor on [module]
|
||||
; NEWPM-NEXT: InvalidateAnalysisPass<{{.*}}> on f
|
||||
; NEWPM-NEXT: RequireAnalysisPass<{{.*}}> on [module]
|
||||
; NEWPM-NEXT: ProfileSummaryAnalysis analysis on [module]
|
||||
; NEWPM-NEXT: ModuleToPostOrderCGSCCPassAdaptor on [module]
|
||||
@ -392,6 +394,7 @@
|
||||
; NEWPM-NEXT: InlinerPass on (f)
|
||||
; NEWPM-NEXT: InlinerPass on (f)
|
||||
; NEWPM-NEXT: PostOrderFunctionAttrsPass on (f)
|
||||
; NEWPM-NEXT: AAManager analysis on f
|
||||
; NEWPM-NEXT: ArgumentPromotionPass on (f)
|
||||
; NEWPM-NEXT: OpenMPOptCGSCCPass on (f)
|
||||
; NEWPM-NEXT: CGSCCToFunctionPassAdaptor on (f)
|
||||
|
Loading…
Reference in New Issue
Block a user