diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 0684d6fe2570e7..4f18dac2d1e0e0 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -1821,10 +1821,16 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level, MPM.addPass( createModuleToPostOrderCGSCCPassAdaptor(PostOrderFunctionAttrsPass())); - // FIXME: here we run IP alias analysis in the legacy PM. - FunctionPassManager MainFPM; + // Require the GlobalsAA analysis for the module so we can query it within + // MainFPM. + MPM.addPass(RequireAnalysisPass()); + // Invalidate AAManager so it can be recreated and pick up the newly available + // GlobalsAA. + MPM.addPass( + createModuleToFunctionPassAdaptor(InvalidateAnalysisPass())); + FunctionPassManager MainFPM; MainFPM.addPass(createFunctionToLoopPassAdaptor( LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap), EnableMSSALoopDependency, /*UseBlockFrequencyInfo=*/true)); diff --git a/llvm/test/Other/new-pm-lto-defaults.ll b/llvm/test/Other/new-pm-lto-defaults.ll index 21e4bca916ad30..6155561fbaab65 100644 --- a/llvm/test/Other/new-pm-lto-defaults.ll +++ b/llvm/test/Other/new-pm-lto-defaults.ll @@ -79,10 +79,15 @@ ; CHECK-O23SZ-NEXT: Running pass: SROA on foo ; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass on foo ; CHECK-O23SZ-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo) +; CHECK-O23SZ-NEXT: Running pass: RequireAnalysisPass on [module] +; CHECK-O23SZ-NEXT: Running analysis: GlobalsAA on [module] +; CHECK-O23SZ-NEXT: Running pass: InvalidateAnalysisPass on foo +; CHECK-O23SZ-NEXT: Invalidating analysis: AAManager on foo ; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass on foo ; CHECK-O23SZ-NEXT: Running analysis: LoopAnalysis on foo ; CHECK-O23SZ-NEXT: Running pass: LCSSAPass on foo ; CHECK-O23SZ-NEXT: Running analysis: MemorySSAAnalysis on foo +; CHECK-O23SZ-NEXT: Running analysis: AAManager on foo ; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis on foo ; CHECK-O23SZ-NEXT: Running analysis: InnerAnalysisManagerProxy ; CHECK-O23SZ-NEXT: Running pass: LICMPass on Loop diff --git a/llvm/test/Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll b/llvm/test/Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll index f771399983d8c1..251792cb7e5aad 100644 --- a/llvm/test/Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll +++ b/llvm/test/Transforms/PhaseOrdering/AArch64/globals-aa-required-for-vectorization.ll @@ -1,5 +1,5 @@ ; RUN: opt -passes='lto' -S %s | FileCheck %s -; RUN: opt -std-link-opts -enable-new-pm=false -S %s | FileCheck --check-prefix=LEGACY %s +; RUN: opt -std-link-opts -enable-new-pm=false -S %s | FileCheck %s target triple = "arm64e-apple-darwin" @@ -9,10 +9,7 @@ target triple = "arm64e-apple-darwin" @D = external unnamed_addr global i32, align 4 ; CHECK-LABEL: @fn -; CHECK-NOT: vector.body: -; -; LEGACY-LABEL: @fn -; LEGACY: vector.body: +; CHECK: vector.body: ; define void @fn() { entry: