blob: 67a6672165b6a059cc46aa9cde30137d2054409d [file] [log] [blame]
Chandler Carruth52eef882014-01-12 12:15:39 +00001; This test is essentially doing very basic things with the opt tool and the
2; new pass manager pipeline. It will be used to flesh out the feature
3; completeness of the opt tool when the new pass manager is engaged. The tests
4; may not be useful once it becomes the default or may get spread out into other
5; files, but for now this is just going to step the new process through its
6; paces.
7
Chandler Carruth703378f2015-01-13 22:45:13 +00008; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +00009; RUN: -passes=no-op-module %s 2>&1 \
10; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000011; CHECK-MODULE-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000012; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass
Chandler Carruth395fe572016-02-25 10:27:39 +000013; CHECK-MODULE-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000014
Chandler Carruth703378f2015-01-13 22:45:13 +000015; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000016; RUN: -passes=no-op-cgscc %s 2>&1 \
17; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
Chandler Carruth703378f2015-01-13 22:45:13 +000018; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000019; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \
20; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000021; CHECK-CGSCC-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000022; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000023; CHECK-CGSCC-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth3a634352016-02-26 11:44:45 +000024; CHECK-CGSCC-PASS-NEXT: Running analysis: LazyCallGraphAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +000025; CHECK-CGSCC-PASS-NEXT: Starting llvm::LazyCallGraph::SCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000026; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass
Chandler Carruth395fe572016-02-25 10:27:39 +000027; CHECK-CGSCC-PASS-NEXT: Finished llvm::LazyCallGraph::SCC pass manager run
28; CHECK-CGSCC-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000029
Chandler Carruth703378f2015-01-13 22:45:13 +000030; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000031; RUN: -passes=no-op-function %s 2>&1 \
32; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth703378f2015-01-13 22:45:13 +000033; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthea368f12015-01-06 08:37:58 +000034; RUN: -passes='function(no-op-function)' %s 2>&1 \
35; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
Chandler Carruth395fe572016-02-25 10:27:39 +000036; CHECK-FUNCTION-PASS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000037; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000038; CHECK-FUNCTION-PASS-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000039; CHECK-FUNCTION-PASS-NEXT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000040; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass
Chandler Carruth395fe572016-02-25 10:27:39 +000041; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Function pass manager run
42; CHECK-FUNCTION-PASS-NEXT: Finished llvm::Module pass manager run
Chandler Carruthea368f12015-01-06 08:37:58 +000043
Chandler Carruth52eef882014-01-12 12:15:39 +000044; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \
45; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000046; CHECK-MODULE-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000047; CHECK-MODULE-PRINT: Running pass: VerifierPass
48; CHECK-MODULE-PRINT: Running pass: PrintModulePass
Chandler Carruth52eef882014-01-12 12:15:39 +000049; CHECK-MODULE-PRINT: ModuleID
50; CHECK-MODULE-PRINT: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000051; CHECK-MODULE-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000052; CHECK-MODULE-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000053
Chandler Carruth9c31db42015-01-05 00:08:53 +000054; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \
55; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000056; CHECK-MODULE-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000057; CHECK-MODULE-VERIFY: Running pass: PrintModulePass
Chandler Carruth9c31db42015-01-05 00:08:53 +000058; CHECK-MODULE-VERIFY: ModuleID
59; CHECK-MODULE-VERIFY: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000060; CHECK-MODULE-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000061; CHECK-MODULE-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000062
Chandler Carruth52eef882014-01-12 12:15:39 +000063; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \
64; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT
Chandler Carruth395fe572016-02-25 10:27:39 +000065; CHECK-FUNCTION-PRINT: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000066; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
67; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor
Chandler Carruth30811a42016-02-27 11:07:16 +000068; CHECK-FUNCTION-PRINT: Running analysis: InnerAnalysisManagerProxy<{{.*}}>
Chandler Carruth395fe572016-02-25 10:27:39 +000069; CHECK-FUNCTION-PRINT: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000070; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass
Chandler Carruth52eef882014-01-12 12:15:39 +000071; CHECK-FUNCTION-PRINT-NOT: ModuleID
72; CHECK-FUNCTION-PRINT: define void @foo()
Chandler Carruth395fe572016-02-25 10:27:39 +000073; CHECK-FUNCTION-PRINT: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000074; CHECK-FUNCTION-PRINT: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000075; CHECK-FUNCTION-PRINT: Finished llvm::Module pass manager run
Chandler Carruth52eef882014-01-12 12:15:39 +000076
Chandler Carruth9c31db42015-01-05 00:08:53 +000077; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \
78; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +000079; CHECK-FUNCTION-VERIFY: Starting llvm::Module pass manager run
80; CHECK-FUNCTION-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +000081; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass
Chandler Carruth9c31db42015-01-05 00:08:53 +000082; CHECK-FUNCTION-VERIFY-NOT: ModuleID
83; CHECK-FUNCTION-VERIFY: define void @foo()
Chandler Carruth816702f2015-01-13 11:13:56 +000084; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +000085; CHECK-FUNCTION-VERIFY: Finished llvm::Function pass manager run
86; CHECK-FUNCTION-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth9c31db42015-01-05 00:08:53 +000087
Chandler Carruthb353c3f2014-01-13 05:16:45 +000088; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \
89; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
90; CHECK-NOOP: define void @foo() {
91; CHECK-NOOP: ret void
92; CHECK-NOOP: }
93
Chandler Carruthb7bdfd62014-01-13 07:38:24 +000094; Round trip through bitcode.
95; RUN: opt -f -o - -passes='no-op-module,no-op-module' %s \
96; RUN: | llvm-dis \
97; RUN: | FileCheck %s --check-prefix=CHECK-NOOP
98
Chandler Carruth4d356312014-01-20 11:34:08 +000099; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \
100; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH
Chandler Carruth395fe572016-02-25 10:27:39 +0000101; CHECK-VERIFY-EACH: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000102; CHECK-VERIFY-EACH: Running pass: VerifierPass
103; CHECK-VERIFY-EACH: Running pass: NoOpModulePass
104; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000105; CHECK-VERIFY-EACH: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000106; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass
107; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000108; CHECK-VERIFY-EACH: Finished llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000109; CHECK-VERIFY-EACH: Running pass: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000110; CHECK-VERIFY-EACH: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000111
112; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \
113; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY
Chandler Carruth395fe572016-02-25 10:27:39 +0000114; CHECK-NO-VERIFY: Starting llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000115; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth816702f2015-01-13 11:13:56 +0000116; CHECK-NO-VERIFY: Running pass: NoOpModulePass
Chandler Carruth4d356312014-01-20 11:34:08 +0000117; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000118; CHECK-NO-VERIFY: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000119; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass
Chandler Carruth4d356312014-01-20 11:34:08 +0000120; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000121; CHECK-NO-VERIFY: Finished llvm::Function pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000122; CHECK-NO-VERIFY-NOT: VerifierPass
Chandler Carruth395fe572016-02-25 10:27:39 +0000123; CHECK-NO-VERIFY: Finished llvm::Module pass manager run
Chandler Carruth4d356312014-01-20 11:34:08 +0000124
Chandler Carruth703378f2015-01-13 22:45:13 +0000125; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000126; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
127; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES
Chandler Carruth395fe572016-02-25 10:27:39 +0000128; CHECK-ANALYSES: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000129; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000130; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000131; CHECK-ANALYSES: Starting llvm::LazyCallGraph::SCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000132; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000133; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000134; CHECK-ANALYSES: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000135; CHECK-ANALYSES: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000136; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis
Chandler Carruthe5e8fb32015-01-05 12:21:44 +0000137
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000138; Make sure no-op passes that preserve all analyses don't even try to do any
139; analysis invalidation.
Chandler Carruth703378f2015-01-13 22:45:13 +0000140; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth0b576b32015-01-06 02:50:06 +0000141; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000142; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION
Chandler Carruth395fe572016-02-25 10:27:39 +0000143; CHECK-NO-OP-INVALIDATION: Starting llvm::Module pass manager run
Chandler Carruth539dc4b2015-01-05 12:32:11 +0000144; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses
145
Chandler Carruth703378f2015-01-13 22:45:13 +0000146; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000147; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \
148; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000149; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000150; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000151; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
152; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000153
Chandler Carruth703378f2015-01-13 22:45:13 +0000154; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000155; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \
156; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000157; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000158; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000159; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
160; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis
161; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000162
Chandler Carruth703378f2015-01-13 22:45:13 +0000163; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000164; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
165; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000166; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000167; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000168; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
169; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000170
Chandler Carruth703378f2015-01-13 22:45:13 +0000171; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000172; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \
173; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000174; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000175; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000176; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
177; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis
178; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000179
Chandler Carruth703378f2015-01-13 22:45:13 +0000180; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000181; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \
182; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000183; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000184; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000185; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
186; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000187
Chandler Carruth703378f2015-01-13 22:45:13 +0000188; RUN: opt -disable-output -debug-pass-manager \
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000189; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \
190; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS
Chandler Carruth395fe572016-02-25 10:27:39 +0000191; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000192; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000193; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
194; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis
195; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis
Chandler Carruth3472ffb2015-01-06 04:49:44 +0000196
Chandler Carruth703378f2015-01-13 22:45:13 +0000197; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000198; RUN: -passes='require<no-op-module>,module(require<no-op-module>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-module>),require<no-op-module>' %s 2>&1 \
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000199; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL
Chandler Carruth395fe572016-02-25 10:27:39 +0000200; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000201; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000202; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000203; CHECK-INVALIDATE-ALL: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000204; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000205; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000206; CHECK-INVALIDATE-ALL: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000207; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000208; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000209; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000210; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
211; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000212; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000213; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000214; CHECK-INVALIDATE-ALL: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000215; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
216; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis
217; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
218; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000219; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000220; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000221; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000222; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses
223; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000224; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000225; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000226; CHECK-INVALIDATE-ALL: Finished llvm::Module pass manager run
Chandler Carruthfdb41802015-01-07 01:58:35 +0000227
Chandler Carruth703378f2015-01-13 22:45:13 +0000228; RUN: opt -disable-output -disable-verify -debug-pass-manager \
Chandler Carruthfdb41802015-01-07 01:58:35 +0000229; RUN: -passes='require<no-op-module>,module(require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-cgscc>),require<no-op-module>),require<no-op-module>' %s 2>&1 \
230; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG
Chandler Carruth395fe572016-02-25 10:27:39 +0000231; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000232; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000233; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000234; CHECK-INVALIDATE-ALL-CG: Starting llvm::Module pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000235; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000236; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000237; CHECK-INVALIDATE-ALL-CG: Starting llvm::LazyCallGraph::SCC pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000238; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000239; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000240; CHECK-INVALIDATE-ALL-CG: Starting llvm::Function pass manager run
Chandler Carruth816702f2015-01-13 11:13:56 +0000241; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000242; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000243; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000244; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
245; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000246; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000247; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000248; CHECK-INVALIDATE-ALL-CG: Finished llvm::Function pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000249; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
250; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis
251; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
252; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000253; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000254; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000255; CHECK-INVALIDATE-ALL-CG: Finished llvm::LazyCallGraph::SCC pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000256; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
257; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis
258; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
259; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000260; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000261; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000262; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000263; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses
264; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis
Chandler Carruth816702f2015-01-13 11:13:56 +0000265; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass
Chandler Carruth7ad6d622015-01-13 02:51:47 +0000266; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000267; CHECK-INVALIDATE-ALL-CG: Finished llvm::Module pass manager run
Chandler Carruth4e107caf2015-01-06 09:06:35 +0000268
Chandler Carruth8ca43222015-01-15 11:39:46 +0000269; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
270; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \
271; RUN: | FileCheck %s --check-prefix=CHECK-TLI
Chandler Carruth395fe572016-02-25 10:27:39 +0000272; CHECK-TLI: Starting llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000273; CHECK-TLI: Running pass: RequireAnalysisPass
274; CHECK-TLI: Running analysis: TargetLibraryAnalysis
275; CHECK-TLI: Running pass: InvalidateAllAnalysesPass
276; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis
277; CHECK-TLI: Running pass: RequireAnalysisPass
278; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000279; CHECK-TLI: Finished llvm::Module pass manager run
Chandler Carruth8ca43222015-01-15 11:39:46 +0000280
Chandler Carruthe0385522015-02-01 10:11:22 +0000281; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
282; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \
283; RUN: | FileCheck %s --check-prefix=CHECK-TIRA
Chandler Carruth395fe572016-02-25 10:27:39 +0000284; CHECK-TIRA: Starting llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000285; CHECK-TIRA: Running pass: RequireAnalysisPass
286; CHECK-TIRA: Running analysis: TargetIRAnalysis
287; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass
288; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis
289; CHECK-TIRA: Running pass: RequireAnalysisPass
290; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000291; CHECK-TIRA: Finished llvm::Module pass manager run
Chandler Carruthe0385522015-02-01 10:11:22 +0000292
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000293; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
294; RUN: -passes='require<domtree>' \
295; RUN: | FileCheck %s --check-prefix=CHECK-DT
Chandler Carruth395fe572016-02-25 10:27:39 +0000296; CHECK-DT: Starting llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000297; CHECK-DT: Running pass: RequireAnalysisPass
298; CHECK-DT: Running analysis: DominatorTreeAnalysis
Chandler Carruth395fe572016-02-25 10:27:39 +0000299; CHECK-DT: Finished llvm::Module pass manager run
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000300
Chandler Carruth6f5770b102016-02-13 23:32:00 +0000301; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
Chandler Carruthbece8d52016-02-13 23:46:24 +0000302; RUN: -passes='require<basic-aa>' \
303; RUN: | FileCheck %s --check-prefix=CHECK-BASIC-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000304; CHECK-BASIC-AA: Starting llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000305; CHECK-BASIC-AA: Running pass: RequireAnalysisPass
306; CHECK-BASIC-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000307; CHECK-BASIC-AA: Finished llvm::Module pass manager run
Chandler Carruthbece8d52016-02-13 23:46:24 +0000308
Chandler Carruthedf59962016-02-18 09:45:17 +0000309; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
310; RUN: -passes='require<aa>' -aa-pipeline='basic-aa' \
311; RUN: | FileCheck %s --check-prefix=CHECK-AA
Chandler Carruth395fe572016-02-25 10:27:39 +0000312; CHECK-AA: Starting llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000313; CHECK-AA: Running pass: RequireAnalysisPass
314; CHECK-AA: Running analysis: AAManager
315; CHECK-AA: Running analysis: BasicAA
Chandler Carruth395fe572016-02-25 10:27:39 +0000316; CHECK-AA: Finished llvm::Module pass manager run
Chandler Carruthedf59962016-02-18 09:45:17 +0000317
Chandler Carruth61440d22016-03-10 00:55:30 +0000318; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
319; RUN: -passes='require<memdep>' \
320; RUN: | FileCheck %s --check-prefix=CHECK-MEMDEP
321; CHECK-MEMDEP: Starting llvm::Module pass manager run
322; CHECK-MEMDEP: Running pass: RequireAnalysisPass
323; CHECK-MEMDEP: Running analysis: MemoryDependenceAnalysis
324; CHECK-MEMDEP: Finished llvm::Module pass manager run
325
Chandler Carruth8b5a74192016-02-28 22:16:03 +0000326; RUN: opt -disable-output -disable-verify -debug-pass-manager \
327; RUN: -passes='default<O0>' %s 2>&1 \
328; RUN: | FileCheck %s --check-prefix=CHECK-O2
329; RUN: opt -disable-output -disable-verify -debug-pass-manager \
330; RUN: -passes='default<O1>' %s 2>&1 \
331; RUN: | FileCheck %s --check-prefix=CHECK-O2
332; RUN: opt -disable-output -disable-verify -debug-pass-manager \
333; RUN: -passes='default<O2>' %s 2>&1 \
334; RUN: | FileCheck %s --check-prefix=CHECK-O2
335; RUN: opt -disable-output -disable-verify -debug-pass-manager \
336; RUN: -passes='default<Os>' %s 2>&1 \
337; RUN: | FileCheck %s --check-prefix=CHECK-O2
338; RUN: opt -disable-output -disable-verify -debug-pass-manager \
339; RUN: -passes='default<Oz>' %s 2>&1 \
340; RUN: | FileCheck %s --check-prefix=CHECK-O2
341; RUN: opt -disable-output -disable-verify -debug-pass-manager \
342; RUN: -passes='lto-pre-link<O2>' %s 2>&1 \
343; RUN: | FileCheck %s --check-prefix=CHECK-O2
344; CHECK-O2: Starting llvm::Module pass manager run
345; CHECK-O2: Running pass: SimplifyCFGPass
346; CHECK-O2: Running pass: SROA
347; CHECK-O2: Running pass: EarlyCSEPass
348; CHECK-O2: Running pass: LowerExpectIntrinsicPass
349
350; RUN: opt -disable-output -disable-verify -debug-pass-manager \
351; RUN: -passes='lto<O2>' %s 2>&1 \
352; RUN: | FileCheck %s --check-prefix=CHECK-LTO-O2
353; CHECK-LTO-O2: Starting llvm::Module pass manager run
354; CHECK-LTO-O2: Running pass: InstCombinePass
355; CHECK-LTO-O2: Running pass: SimplifyCFGPass
356
Chandler Carruth52eef882014-01-12 12:15:39 +0000357define void @foo() {
358 ret void
359}
Chandler Carruth9f8d9b62015-02-01 10:47:25 +0000360
361declare void @bar()