Skip to content

Commit 6699029

Browse files
committed
[NewPM][opt] Run the "default" AA pipeline by default
We tend to assume that the AA pipeline is by default the default AA pipeline and it's confusing when it's empty instead. PR48779 Initially reverted due to BasicAA running analyses in an unspecified order (multiple function calls as parameters), fixed by fetching analyses before the call to construct BasicAA. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D95117
1 parent f9b5f69 commit 6699029

37 files changed

+591
-647
lines changed

llvm/lib/Analysis/BasicAliasAnalysis.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,13 +1832,12 @@ bool BasicAAResult::constantOffsetHeuristic(
18321832
AnalysisKey BasicAA::Key;
18331833

18341834
BasicAAResult BasicAA::run(Function &F, FunctionAnalysisManager &AM) {
1835-
return BasicAAResult(F.getParent()->getDataLayout(),
1836-
F,
1837-
AM.getResult<TargetLibraryAnalysis>(F),
1838-
AM.getResult<AssumptionAnalysis>(F),
1839-
&AM.getResult<DominatorTreeAnalysis>(F),
1840-
AM.getCachedResult<LoopAnalysis>(F),
1841-
AM.getCachedResult<PhiValuesAnalysis>(F));
1835+
auto &TLI = AM.getResult<TargetLibraryAnalysis>(F);
1836+
auto &AC = AM.getResult<AssumptionAnalysis>(F);
1837+
auto *DT = &AM.getResult<DominatorTreeAnalysis>(F);
1838+
auto *LI = AM.getCachedResult<LoopAnalysis>(F);
1839+
auto *PV = AM.getCachedResult<PhiValuesAnalysis>(F);
1840+
return BasicAAResult(F.getParent()->getDataLayout(), F, TLI, AC, DT, LI, PV);
18421841
}
18431842

18441843
BasicAAWrapperPass::BasicAAWrapperPass() : FunctionPass(ID) {

llvm/test/Analysis/MemorySSA/pr43569.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: opt -pgo-kind=pgo-instr-gen-pipeline -aa-pipeline=default -passes="default<O3>" -enable-nontrivial-unswitch -S < %s | FileCheck %s
1+
; RUN: opt -pgo-kind=pgo-instr-gen-pipeline -passes="default<O3>" -enable-nontrivial-unswitch -S < %s | FileCheck %s
22
; REQUIRES: asserts
33

44
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"

llvm/test/CodeGen/Hexagon/loop-idiom/pmpy-mod.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
; get this opportunity regardless of what happens before.
44

55
; RUN: opt -O2 -march=hexagon -S < %s | FileCheck %s
6-
; RUN: opt -aa-pipeline=default -passes='default<O2>' -march=hexagon -S < %s | FileCheck %s
6+
; RUN: opt -passes='default<O2>' -march=hexagon -S < %s | FileCheck %s
77

88
target triple = "hexagon"
99
target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"

llvm/test/Other/loop-pm-invalidation.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
;
33
; Check that we always nuke the LPM stuff when the loops themselves are
44
; invalidated.
5-
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
5+
; RUN: opt -disable-output -disable-verify -debug-pass-manager -aa-pipeline= %s 2>&1 \
66
; RUN: -passes='loop(no-op-loop),invalidate<loops>,loop(no-op-loop)' \
77
; RUN: | FileCheck %s --check-prefix=CHECK-LOOP-INV
88
;
99
; If we ended up building the standard analyses, their invalidation should nuke
1010
; stuff as well.
11-
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
11+
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s -aa-pipeline= 2>&1 \
1212
; RUN: -passes='loop(no-op-loop),invalidate<scalar-evolution>,loop(no-op-loop)' \
1313
; RUN: | FileCheck %s --check-prefix=CHECK-SCEV-INV
1414
;
1515
; Also provide a test that can delete loops after populating analyses for them.
16-
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
16+
; RUN: opt -disable-output -disable-verify -debug-pass-manager %s -aa-pipeline= 2>&1 \
1717
; RUN: -passes='loop(no-op-loop,loop-deletion),invalidate<scalar-evolution>,loop(no-op-loop)' \
1818
; RUN: | FileCheck %s --check-prefix=CHECK-SCEV-INV-AFTER-DELETE
1919

llvm/test/Other/new-pass-manager.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@
445445
; CHECK-REPEAT-LOOP-PASS-NEXT: Finished llvm::Function pass manager run
446446
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: AAManager
447447
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetLibraryAnalysis
448+
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: BasicAA
449+
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: ScopedNoAliasAA
450+
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TypeBasedAA
451+
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: OuterAnalysisManagerProxy
448452
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: ScalarEvolutionAnalysis
449453
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: TargetIRAnalysis
450454
; CHECK-REPEAT-LOOP-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>

llvm/test/Other/new-pm-defaults.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@
9898
; CHECK-O-NEXT: Running pass: InstCombinePass
9999
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
100100
; CHECK-O-NEXT: Running analysis: AAManager
101+
; CHECK-O-NEXT: Running analysis: BasicAA
102+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
103+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
101104
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
102105
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
103106
; CHECK-O-NEXT: Running pass: SimplifyCFGPass

llvm/test/Other/new-pm-lto-defaults.ll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@
4949
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph{{.*}}>
5050
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
5151
; CHECK-O-NEXT: Running analysis: AAManager
52+
; CHECK-O-NEXT: Running analysis: BasicAA
53+
; CHECK-O1-NEXT: Running analysis: AssumptionAnalysis on foo
54+
; CHECK-O1-NEXT: Running analysis: DominatorTreeAnalysis
55+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
56+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
57+
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
5258
; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass
5359
; CHECK-O-NEXT: Running analysis: CallGraphAnalysis
5460
; CHECK-O-NEXT: Running pass: GlobalSplitPass
@@ -61,7 +67,6 @@
6167
; CHECK-O2-NEXT: Starting llvm::Function pass manager run.
6268
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
6369
; CHECK-O2-NEXT: Running pass: InstCombinePass
64-
; CHECK-O2-NEXT: Running analysis: OuterAnalysisManagerProxy
6570
; CHECK-EP-Peephole-NEXT: Running pass: NoOpFunctionPass
6671
; CHECK-O2-NEXT: Finished llvm::Function pass manager run.
6772
; CHECK-O2-NEXT: Running pass: ModuleInlinerWrapperPass

llvm/test/Other/new-pm-pr42726-cgscc.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; RUN: opt -aa-pipeline=default -passes="default<O1>" %s -S | FileCheck %s
1+
; RUN: opt -passes="default<O1>" %s -S | FileCheck %s
22
; REQUIRES: asserts
33

44
declare void @bar()

llvm/test/Other/new-pm-thinlto-defaults.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@
8484
; CHECK-O-NEXT: Running pass: InstCombinePass
8585
; CHECK-PRELINK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
8686
; CHECK-O-NEXT: Running analysis: AAManager
87+
; CHECK-O-NEXT: Running analysis: BasicAA
88+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
89+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
8790
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
8891
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
8992
; CHECK-O-NEXT: Finished llvm::Function pass manager run.

llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
; CHECK-O-NEXT: Starting {{.*}}Function pass manager run.
5454
; CHECK-O-NEXT: Running pass: InstCombinePass
5555
; CHECK-O-NEXT: Running analysis: AAManager
56+
; CHECK-O-NEXT: Running analysis: BasicAA
57+
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
58+
; CHECK-O-NEXT: Running analysis: TypeBasedAA
5659
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
5760
; CHECK-O-NEXT: Running analysis: BlockFrequencyAnalysis on foo
5861
; These next two can appear in any order since they are accessed as parameters

0 commit comments

Comments
 (0)