[llvm] 9a4506e - [Matrix] Include matrix pipeline for new PM in new-pm-defaults.ll.
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu May 27 02:58:06 PDT 2021
Author: Florian Hahn
Date: 2021-05-27T10:57:39+01:00
New Revision: 9a4506e7591fc5aaa9b69d35857908cadb4f5743
URL: https://github.com/llvm/llvm-project/commit/9a4506e7591fc5aaa9b69d35857908cadb4f5743
DIFF: https://github.com/llvm/llvm-project/commit/9a4506e7591fc5aaa9b69d35857908cadb4f5743.diff
LOG: [Matrix] Include matrix pipeline for new PM in new-pm-defaults.ll.
-enable-matrix just adds a single pass, so it's easier to just check in
new-pm-default.ll rather than duplicating the full checks for -O3 with
the new pass manager.
Suggested post-commit by @aeubanks.
Added:
Modified:
llvm/test/Other/new-pm-defaults.ll
llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
Removed:
################################################################################
diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll
index 11f244eb5d0d8..08c4e54dd6595 100644
--- a/llvm/test/Other/new-pm-defaults.ll
+++ b/llvm/test/Other/new-pm-defaults.ll
@@ -67,6 +67,10 @@
; RUN: -passes='default<O3>' -S %s 2>&1 \
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-LAST,CHECK-O23SZ
+; RUN: opt -disable-verify -verify-cfg-preserved=1 -debug-pass-manager \
+; RUN: -passes='default<O3>' -enable-matrix -S %s 2>&1 \
+; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext,CHECK-MATRIX
+
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
; CHECK-Oz: {{^}}
@@ -199,6 +203,8 @@
; CHECK-O-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
; CHECK-O-NEXT: Running pass: Float2IntPass
; CHECK-O-NEXT: Running pass: LowerConstantIntrinsicsPass on foo
+; CHECK-MATRIX: Running pass: LowerMatrixIntrinsicsPass on f
+; CHECK-MATRIX-NEXT: Running pass: EarlyCSEPass on f
; CHECK-EP-VECTORIZER-START-NEXT: Running pass: NoOpFunctionPass
; CHECK-EXT: Running pass: {{.*}}::Bye on foo
; CHECK-NOEXT: {{^}}
diff --git a/llvm/test/Other/opt-O3-pipeline-enable-matrix.ll b/llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
index dbb04e04b9bf3..c39361dcc8a2d 100644
--- a/llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
+++ b/llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
@@ -1,521 +1,345 @@
-; RUN: opt -enable-new-pm=0 -O3 -enable-matrix -debug-pass=Structure %s -disable-output 2>&1 | FileCheck --check-prefix=LEGACY %s
-; RUN: opt -passes='default<O3>' -enable-matrix -debug-pass-manager -disable-output %s 2>&1 | FileCheck --check-prefix=NEWPM %s
+; RUN: opt -enable-new-pm=0 -O3 -enable-matrix -debug-pass=Structure %s -disable-output 2>&1 | FileCheck %s
; REQUIRES: asserts
-; LEGACY-LABEL: Pass Arguments:
-; LEGACY-NEXT: Target Transform Information
-; LEGACY-NEXT: Type-Based Alias Analysis
-; LEGACY-NEXT: Scoped NoAlias Alias Analysis
-; LEGACY-NEXT: Assumption Cache Tracker
-; LEGACY-NEXT: Target Library Information
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Module Verifier
-; LEGACY-EXT: Good Bye World Pass
-; LEGACY-NOEXT-NOT: Good Bye World Pass
-; LEGACY-NEXT: Lower 'expect' Intrinsics
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: SROA
-; LEGACY-NEXT: Early CSE
-; LEGACY-NEXT: Pass Arguments:
-; LEGACY-NEXT: Target Library Information
-; LEGACY-NEXT: Target Transform Information
+; CHECK-LABEL: Pass Arguments:
+; CHECK-NEXT: Target Transform Information
+; CHECK-NEXT: Type-Based Alias Analysis
+; CHECK-NEXT: Scoped NoAlias Alias Analysis
+; CHECK-NEXT: Assumption Cache Tracker
+; CHECK-NEXT: Target Library Information
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Module Verifier
+; CHECK-EXT: Good Bye World Pass
+; CHECK-NOEXT-NOT: Good Bye World Pass
+; CHECK-NEXT: Lower 'expect' Intrinsics
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: SROA
+; CHECK-NEXT: Early CSE
+; CHECK-NEXT: Pass Arguments:
+; CHECK-NEXT: Target Library Information
+; CHECK-NEXT: Target Transform Information
; Target Pass Configuration
-; LEGACY: Type-Based Alias Analysis
-; LEGACY-NEXT: Scoped NoAlias Alias Analysis
-; LEGACY-NEXT: Assumption Cache Tracker
-; LEGACY-NEXT: Profile summary info
-; LEGACY-NEXT: ModulePass Manager
-; LEGACY-NEXT: Annotation2Metadata
-; LEGACY-NEXT: Force set function attributes
-; LEGACY-NEXT: Infer set function attributes
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Call-site splitting
-; LEGACY-NEXT: Interprocedural Sparse Conditional Constant Propagation
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Called Value Propagation
-; LEGACY-NEXT: Global Variable Optimizer
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Promote Memory to Register
-; LEGACY-NEXT: Dead Argument Elimination
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: CallGraph Construction
-; LEGACY-NEXT: Globals Alias Analysis
-; LEGACY-NEXT: Call Graph SCC Pass Manager
-; LEGACY-NEXT: Remove unused exception handling info
-; LEGACY-NEXT: Function Integration/Inlining
-; LEGACY-NEXT: OpenMP specific optimizations
-; LEGACY-NEXT: Deduce function attributes
-; LEGACY-NEXT: Promote 'by reference' arguments to scalars
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: SROA
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Memory SSA
-; LEGACY-NEXT: Early CSE w/ MemorySSA
-; LEGACY-NEXT: Speculatively execute instructions if target has divergent branches
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Lazy Value Information Analysis
-; LEGACY-NEXT: Jump Threading
-; LEGACY-NEXT: Value Propagation
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Combine pattern based expressions
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Conditionally eliminate dead library calls
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: PGOMemOPSize
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Tail Call Elimination
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Reassociate expressions
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Memory SSA
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Loop Invariant Code Motion
-; LEGACY-NEXT: Rotate Loops
-; LEGACY-NEXT: Loop Invariant Code Motion
-; LEGACY-NEXT: Unswitch loops
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Recognize loop idioms
-; LEGACY-NEXT: Induction Variable Simplification
-; LEGACY-NEXT: Delete dead loops
-; LEGACY-NEXT: Unroll loops
-; LEGACY-NEXT: SROA
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: MergedLoadStoreMotion
-; LEGACY-NEXT: Phi Values Analysis
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Memory Dependence Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Global Value Numbering
-; LEGACY-NEXT: Sparse Conditional Constant Propagation
-; LEGACY-NEXT: Demanded bits analysis
-; LEGACY-NEXT: Bit-Tracking Dead Code Elimination
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Lazy Value Information Analysis
-; LEGACY-NEXT: Jump Threading
-; LEGACY-NEXT: Value Propagation
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Aggressive Dead Code Elimination
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Memory SSA
-; LEGACY-NEXT: MemCpy Optimization
-; LEGACY-NEXT: Dead Store Elimination
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Loop Invariant Code Motion
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: A No-Op Barrier Pass
-; LEGACY-NEXT: Eliminate Available Externally Globals
-; LEGACY-NEXT: CallGraph Construction
-; LEGACY-NEXT: Deduce function attributes in RPO
-; LEGACY-NEXT: Global Variable Optimizer
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Dead Global Elimination
-; LEGACY-NEXT: CallGraph Construction
-; LEGACY-NEXT: Globals Alias Analysis
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Float to int
-; LEGACY-NEXT: Lower constant intrinsics
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Lower the matrix intrinsics
-; LEGACY-NEXT: Early CSE
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Rotate Loops
-; LEGACY-NEXT: Loop Access Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Loop Distribution
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Loop Access Analysis
-; LEGACY-NEXT: Demanded bits analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Inject TLI Mappings
-; LEGACY-NEXT: Loop Vectorization
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Loop Access Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Loop Load Elimination
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Demanded bits analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Inject TLI Mappings
-; LEGACY-NEXT: SLP Vectorizer
-; LEGACY-NEXT: Optimize scalar/vector ops
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Unroll loops
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Combine redundant instructions
-; LEGACY-NEXT: Memory SSA
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Loop Invariant Code Motion
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Warn about non-applied transformations
-; LEGACY-NEXT: Alignment from assumptions
-; LEGACY-NEXT: Strip Unused Function Prototypes
-; LEGACY-NEXT: Dead Global Elimination
-; LEGACY-NEXT: Merge Duplicate Global Constants
-; LEGACY-NEXT: Call Graph Profile
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Canonicalize natural loops
-; LEGACY-NEXT: LCSSA Verifier
-; LEGACY-NEXT: Loop-Closed SSA Form Pass
-; LEGACY-NEXT: Basic Alias Analysis (stateless AA impl)
-; LEGACY-NEXT: Function Alias Analysis Results
-; LEGACY-NEXT: Scalar Evolution Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Loop Pass Manager
-; LEGACY-NEXT: Loop Sink
-; LEGACY-NEXT: Lazy Branch Probability Analysis
-; LEGACY-NEXT: Lazy Block Frequency Analysis
-; LEGACY-NEXT: Optimization Remark Emitter
-; LEGACY-NEXT: Remove redundant instructions
-; LEGACY-NEXT: Hoist/decompose integer division and remainder
-; LEGACY-NEXT: Simplify the CFG
-; LEGACY-NEXT: Annotation Remarks
-; LEGACY-NEXT: Module Verifier
-; LEGACY-NEXT: Pass Arguments:
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Pass Arguments:
-; LEGACY-NEXT: Target Library Information
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-; LEGACY-NEXT: Pass Arguments:
-; LEGACY-NEXT: Target Library Information
-; LEGACY-NEXT: FunctionPass Manager
-; LEGACY-NEXT: Dominator Tree Construction
-; LEGACY-NEXT: Natural Loop Information
-; LEGACY-NEXT: Post-Dominator Tree Construction
-; LEGACY-NEXT: Branch Probability Analysis
-; LEGACY-NEXT: Block Frequency Analysis
-
-; NEWPM: Running pass: VerifierPass on
-; NEWPM-NEXT: Running analysis: VerifierAnalysis on
-; NEWPM-NEXT:Running pass: Annotation2MetadataPass on
-; NEWPM-NEXT:Running pass: ForceFunctionAttrsPass on
-; NEWPM-NEXT:Running pass: InferFunctionAttrsPass on
-; NEWPM-NEXT:Running analysis: InnerAnalysisManagerProxy<
-; NEWPM-NEXT:Running analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT:Running pass: LowerExpectIntrinsicPass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running analysis: TargetIRAnalysis on f
-; NEWPM-NEXT: Running analysis: AssumptionAnalysis on f
-; NEWPM-NEXT: Running pass: SROA on f
-; NEWPM-NEXT: Running analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Running pass: EarlyCSEPass on f
-; NEWPM-NEXT: Running analysis: TargetLibraryAnalysis on f
-; NEWPM-NEXT: Running pass: CallSiteSplittingPass on f
-; NEWPM-NEXT: Running pass: OpenMPOptPass on
-; NEWPM-NEXT: Running pass: IPSCCPPass on
-; NEWPM-NEXT: Running pass: CalledValuePropagationPass on
-; NEWPM-NEXT: Running pass: GlobalOptPass on
-; NEWPM-NEXT: Invalidating analysis: VerifierAnalysis on
-; NEWPM-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<
-; NEWPM-NEXT: Running analysis: InnerAnalysisManagerProxy<
-; NEWPM-NEXT: Running pass: PromotePass on f
-; NEWPM-NEXT: Running analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT: Running analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Running analysis: AssumptionAnalysis on f
-; NEWPM-NEXT: Running pass: DeadArgumentEliminationPass on
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running analysis: TargetLibraryAnalysis on f
-; NEWPM-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on f
-; NEWPM-NEXT: Running analysis: TargetIRAnalysis on f
-; NEWPM-NEXT: Running analysis: AAManager on f
-; NEWPM-NEXT: Running analysis: BasicAA on f
-; NEWPM-NEXT: Running analysis: ScopedNoAliasAA on f
-; NEWPM-NEXT: Running analysis: TypeBasedAA on f
-; NEWPM-NEXT: Running analysis: OuterAnalysisManagerProxy<
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: ModuleInlinerWrapperPass on
-; NEWPM-NEXT: Running analysis: InlineAdvisorAnalysis on
-; NEWPM-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
-; NEWPM-NEXT: Running analysis: GlobalsAA on
-; NEWPM-NEXT: Running analysis: CallGraphAnalysis on
-; NEWPM-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
-; NEWPM-NEXT: Invalidating analysis: AAManager on f
-; NEWPM-NEXT: Running pass: RequireAnalysisPass<{{.*}}ProfileSummaryAnalysis
-; NEWPM-NEXT: Running analysis: ProfileSummaryAnalysis on
-; NEWPM-NEXT: Running analysis: InnerAnalysisManagerProxy<
-; NEWPM-NEXT: Running analysis: LazyCallGraphAnalysis on
-; NEWPM-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (f)
-; NEWPM-NEXT: Running analysis: OuterAnalysisManagerProxy<
-; NEWPM-NEXT: Running pass: DevirtSCCRepeatedPass on (f)
-; NEWPM-NEXT: Running pass: InlinerPass on (f)
-; NEWPM-NEXT: Running pass: InlinerPass on (f)
-; NEWPM-NEXT: Running pass: PostOrderFunctionAttrsPass on (f)
-; NEWPM-NEXT: Running analysis: AAManager on f
-; NEWPM-NEXT: Invalidating analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: BasicAA on f
-; NEWPM-NEXT: Invalidating analysis: AAManager on f
-; NEWPM-NEXT: Running pass: ArgumentPromotionPass on (f)
-; NEWPM-NEXT: Running pass: OpenMPOptCGSCCPass on (f)
-; NEWPM-NEXT: Running analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT: Running pass: SROA on f
-; NEWPM-NEXT: Running analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Running pass: EarlyCSEPass on f
-; NEWPM-NEXT: Running analysis: MemorySSAAnalysis on f
-; NEWPM-NEXT: Running analysis: AAManager on f
-; NEWPM-NEXT: Running analysis: BasicAA on f
-; NEWPM-NEXT: Running pass: SpeculativeExecutionPass on f
-; NEWPM-NEXT: Running pass: JumpThreadingPass on f
-; NEWPM-NEXT: Running analysis: LazyValueAnalysis on f
-; NEWPM-NEXT: Running pass: CorrelatedValuePropagationPass on f
-; NEWPM-NEXT: Invalidating analysis: LazyValueAnalysis on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: AggressiveInstCombinePass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: LibCallsShrinkWrapPass on f
-; NEWPM-NEXT: Running pass: TailCallElimPass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: ReassociatePass on f
-; NEWPM-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis
-; NEWPM-NEXT: Running pass: LoopSimplifyPass on f
-; NEWPM-NEXT: Running analysis: LoopAnalysis on f
-; NEWPM-NEXT: Running pass: LCSSAPass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: LoopSimplifyPass on f
-; NEWPM-NEXT: Running pass: LCSSAPass on f
-; NEWPM-NEXT: Running pass: SROA on f
-; NEWPM-NEXT: Running pass: MergedLoadStoreMotionPass on f
-; NEWPM-NEXT: Running pass: GVN on f
-; NEWPM-NEXT: Running analysis: MemoryDependenceAnalysis on f
-; NEWPM-NEXT: Running analysis: PhiValuesAnalysis on f
-; NEWPM-NEXT: Running pass: SCCPPass on f
-; NEWPM-NEXT: Running pass: BDCEPass on f
-; NEWPM-NEXT: Running analysis: DemandedBitsAnalysis on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: JumpThreadingPass on f
-; NEWPM-NEXT: Running analysis: LazyValueAnalysis on f
-; NEWPM-NEXT: Running pass: CorrelatedValuePropagationPass on f
-; NEWPM-NEXT: Invalidating analysis: LazyValueAnalysis on f
-; NEWPM-NEXT: Running pass: ADCEPass on f
-; NEWPM-NEXT: Running analysis: PostDominatorTreeAnalysis on f
-; NEWPM-NEXT: Running pass: MemCpyOptPass on f
-; NEWPM-NEXT: Running pass: DSEPass on f
-; NEWPM-NEXT: Running pass: LoopSimplifyPass on f
-; NEWPM-NEXT: Running pass: LCSSAPass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Invalidating analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: BasicAA on f
-; NEWPM-NEXT: Invalidating analysis: AAManager on f
-; NEWPM-NEXT: Invalidating analysis: MemorySSAAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: LoopAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: PhiValuesAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: MemoryDependenceAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: DemandedBitsAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on f
-; NEWPM-NEXT: Invalidating analysis: CallGraphAnalysis on
-; NEWPM-NEXT: Running pass: GlobalOptPass on
-; NEWPM-NEXT: Running pass: GlobalDCEPass on
-; NEWPM-NEXT: Running pass: EliminateAvailableExternallyPass on
-; NEWPM-NEXT: Running pass: ReversePostOrderFunctionAttrsPass on
-; NEWPM-NEXT: Running analysis: CallGraphAnalysis on
-; NEWPM-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
-; NEWPM-NEXT: Running analysis: PreservedCFGCheckerAnalysis on f
-; NEWPM-NEXT: Running pass: Float2IntPass on f
-; NEWPM-NEXT: Running analysis: DominatorTreeAnalysis on f
-; NEWPM-NEXT: Running pass: LowerConstantIntrinsicsPass on f
-; NEWPM-NEXT: Running pass: LowerMatrixIntrinsicsPass on f
-; NEWPM-NEXT: Running analysis: AAManager on f
-; NEWPM-NEXT: Running analysis: BasicAA on f
-; NEWPM-NEXT: Running analysis: LoopAnalysis on f
-; NEWPM-NEXT: Running pass: EarlyCSEPass on f
-; NEWPM-NEXT: Running pass: LoopSimplifyPass on f
-; NEWPM-NEXT: Running pass: LCSSAPass on f
-; NEWPM-NEXT: Running pass: LoopDistributePass on f
-; NEWPM-NEXT: Running analysis: ScalarEvolutionAnalysis on f
-; NEWPM-NEXT: Running analysis: InnerAnalysisManagerProxy<
-; NEWPM-NEXT: Running pass: InjectTLIMappings on f
-; NEWPM-NEXT: Running pass: LoopVectorizePass on f
-; NEWPM-NEXT: Running analysis: BlockFrequencyAnalysis on f
-; NEWPM-NEXT: Running analysis: BranchProbabilityAnalysis on f
-; NEWPM-NEXT: Running analysis: PostDominatorTreeAnalysis on f
-; NEWPM-NEXT: Running analysis: DemandedBitsAnalysis on f
-; NEWPM-NEXT: Running analysis: MemorySSAAnalysis on f
-; NEWPM-NEXT: Running pass: LoopLoadEliminationPass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: SLPVectorizerPass on f
-; NEWPM-NEXT: Running pass: VectorCombinePass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: LoopUnrollPass on f
-; NEWPM-NEXT: Running pass: WarnMissedTransformationsPass on f
-; NEWPM-NEXT: Running pass: InstCombinePass on f
-; NEWPM-NEXT: Running pass: RequireAnalysisPass<{{.*}}OptimizationRemarkEmitterAnalysis
-; NEWPM-NEXT: Running pass: LoopSimplifyPass on f
-; NEWPM-NEXT: Running pass: LCSSAPass on f
-; NEWPM-NEXT: Running pass: AlignmentFromAssumptionsPass on f
-; NEWPM-NEXT: Running pass: LoopSinkPass on f
-; NEWPM-NEXT: Running pass: InstSimplifyPass on f
-; NEWPM-NEXT: Running pass: DivRemPairsPass on f
-; NEWPM-NEXT: Running pass: SimplifyCFGPass on f
-; NEWPM-NEXT: Running pass: SpeculateAroundPHIsPass on f
-; NEWPM-NEXT: Running pass: CGProfilePass on
-; NEWPM-NEXT: Running pass: GlobalDCEPass on
-; NEWPM-NEXT: Running pass: ConstantMergePass on
-; NEWPM-NEXT: Running pass: RelLookupTableConverterPass on
-; NEWPM-NEXT: Running pass: AnnotationRemarksPass on f
-; NEWPM-NEXT: Running pass: VerifierPass on
-; NEWPM-NEXT: Running analysis: VerifierAnalysis on
-
+; CHECK: Type-Based Alias Analysis
+; CHECK-NEXT: Scoped NoAlias Alias Analysis
+; CHECK-NEXT: Assumption Cache Tracker
+; CHECK-NEXT: Profile summary info
+; CHECK-NEXT: ModulePass Manager
+; CHECK-NEXT: Annotation2Metadata
+; CHECK-NEXT: Force set function attributes
+; CHECK-NEXT: Infer set function attributes
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Call-site splitting
+; CHECK-NEXT: Interprocedural Sparse Conditional Constant Propagation
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Called Value Propagation
+; CHECK-NEXT: Global Variable Optimizer
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Promote Memory to Register
+; CHECK-NEXT: Dead Argument Elimination
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: CallGraph Construction
+; CHECK-NEXT: Globals Alias Analysis
+; CHECK-NEXT: Call Graph SCC Pass Manager
+; CHECK-NEXT: Remove unused exception handling info
+; CHECK-NEXT: Function Integration/Inlining
+; CHECK-NEXT: OpenMP specific optimizations
+; CHECK-NEXT: Deduce function attributes
+; CHECK-NEXT: Promote 'by reference' arguments to scalars
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: SROA
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Memory SSA
+; CHECK-NEXT: Early CSE w/ MemorySSA
+; CHECK-NEXT: Speculatively execute instructions if target has divergent branches
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Lazy Value Information Analysis
+; CHECK-NEXT: Jump Threading
+; CHECK-NEXT: Value Propagation
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Combine pattern based expressions
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Conditionally eliminate dead library calls
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: PGOMemOPSize
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Tail Call Elimination
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Reassociate expressions
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Memory SSA
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Loop Invariant Code Motion
+; CHECK-NEXT: Rotate Loops
+; CHECK-NEXT: Loop Invariant Code Motion
+; CHECK-NEXT: Unswitch loops
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Recognize loop idioms
+; CHECK-NEXT: Induction Variable Simplification
+; CHECK-NEXT: Delete dead loops
+; CHECK-NEXT: Unroll loops
+; CHECK-NEXT: SROA
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: MergedLoadStoreMotion
+; CHECK-NEXT: Phi Values Analysis
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Memory Dependence Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Global Value Numbering
+; CHECK-NEXT: Sparse Conditional Constant Propagation
+; CHECK-NEXT: Demanded bits analysis
+; CHECK-NEXT: Bit-Tracking Dead Code Elimination
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Lazy Value Information Analysis
+; CHECK-NEXT: Jump Threading
+; CHECK-NEXT: Value Propagation
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Aggressive Dead Code Elimination
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Memory SSA
+; CHECK-NEXT: MemCpy Optimization
+; CHECK-NEXT: Dead Store Elimination
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Loop Invariant Code Motion
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: A No-Op Barrier Pass
+; CHECK-NEXT: Eliminate Available Externally Globals
+; CHECK-NEXT: CallGraph Construction
+; CHECK-NEXT: Deduce function attributes in RPO
+; CHECK-NEXT: Global Variable Optimizer
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Dead Global Elimination
+; CHECK-NEXT: CallGraph Construction
+; CHECK-NEXT: Globals Alias Analysis
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Float to int
+; CHECK-NEXT: Lower constant intrinsics
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Lower the matrix intrinsics
+; CHECK-NEXT: Early CSE
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Rotate Loops
+; CHECK-NEXT: Loop Access Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Loop Distribution
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Loop Access Analysis
+; CHECK-NEXT: Demanded bits analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Inject TLI Mappings
+; CHECK-NEXT: Loop Vectorization
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Loop Access Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Loop Load Elimination
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Demanded bits analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Inject TLI Mappings
+; CHECK-NEXT: SLP Vectorizer
+; CHECK-NEXT: Optimize scalar/vector ops
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Unroll loops
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Combine redundant instructions
+; CHECK-NEXT: Memory SSA
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Loop Invariant Code Motion
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Warn about non-applied transformations
+; CHECK-NEXT: Alignment from assumptions
+; CHECK-NEXT: Strip Unused Function Prototypes
+; CHECK-NEXT: Dead Global Elimination
+; CHECK-NEXT: Merge Duplicate Global Constants
+; CHECK-NEXT: Call Graph Profile
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Canonicalize natural loops
+; CHECK-NEXT: LCSSA Verifier
+; CHECK-NEXT: Loop-Closed SSA Form Pass
+; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
+; CHECK-NEXT: Function Alias Analysis Results
+; CHECK-NEXT: Scalar Evolution Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Loop Pass Manager
+; CHECK-NEXT: Loop Sink
+; CHECK-NEXT: Lazy Branch Probability Analysis
+; CHECK-NEXT: Lazy Block Frequency Analysis
+; CHECK-NEXT: Optimization Remark Emitter
+; CHECK-NEXT: Remove redundant instructions
+; CHECK-NEXT: Hoist/decompose integer division and remainder
+; CHECK-NEXT: Simplify the CFG
+; CHECK-NEXT: Annotation Remarks
+; CHECK-NEXT: Module Verifier
+; CHECK-NEXT: Pass Arguments:
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Pass Arguments:
+; CHECK-NEXT: Target Library Information
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
+; CHECK-NEXT: Pass Arguments:
+; CHECK-NEXT: Target Library Information
+; CHECK-NEXT: FunctionPass Manager
+; CHECK-NEXT: Dominator Tree Construction
+; CHECK-NEXT: Natural Loop Information
+; CHECK-NEXT: Post-Dominator Tree Construction
+; CHECK-NEXT: Branch Probability Analysis
+; CHECK-NEXT: Block Frequency Analysis
define void @f() {
ret void
}
More information about the llvm-commits
mailing list