diff options
Diffstat (limited to 'test/Other')
-rw-r--r-- | test/Other/2009-03-31-CallGraph.ll | 2 | ||||
-rw-r--r-- | test/Other/Inputs/utf8-bom-response | 1 | ||||
-rw-r--r-- | test/Other/Inputs/utf8-response | 1 | ||||
-rw-r--r-- | test/Other/ResponseFile.ll | 5 | ||||
-rw-r--r-- | test/Other/new-pass-manager.ll | 292 | ||||
-rw-r--r-- | test/Other/pass-pipeline-parsing.ll | 132 |
6 files changed, 337 insertions, 96 deletions
diff --git a/test/Other/2009-03-31-CallGraph.ll b/test/Other/2009-03-31-CallGraph.ll index 864903c..1e17830 100644 --- a/test/Other/2009-03-31-CallGraph.ll +++ b/test/Other/2009-03-31-CallGraph.ll @@ -7,6 +7,8 @@ ok1: ret void lpad1: + landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup invoke void @f4() to label %ok2 unwind label %lpad2 diff --git a/test/Other/Inputs/utf8-bom-response b/test/Other/Inputs/utf8-bom-response new file mode 100644 index 0000000..9dae315 --- /dev/null +++ b/test/Other/Inputs/utf8-bom-response @@ -0,0 +1 @@ +-help diff --git a/test/Other/Inputs/utf8-response b/test/Other/Inputs/utf8-response new file mode 100644 index 0000000..97f455a --- /dev/null +++ b/test/Other/Inputs/utf8-response @@ -0,0 +1 @@ +-help diff --git a/test/Other/ResponseFile.ll b/test/Other/ResponseFile.ll index 914e548..92648b8 100644 --- a/test/Other/ResponseFile.ll +++ b/test/Other/ResponseFile.ll @@ -6,6 +6,11 @@ ; RUN: llvm-as @%t.list2 -o %t.bc ; RUN: llvm-nm %t.bc 2>&1 | FileCheck %s +; When the response file begins with UTF8 BOM sequence, we shall remove them. +; Neither command below should return a "Could not open input file" error. +; RUN: llvm-as @%S/Inputs/utf8-response > /dev/null +; RUN: llvm-as @%S/Inputs/utf8-bom-response > /dev/null + ; CHECK: T foobar define void @foobar() { diff --git a/test/Other/new-pass-manager.ll b/test/Other/new-pass-manager.ll index cec01b5..fb84e78 100644 --- a/test/Other/new-pass-manager.ll +++ b/test/Other/new-pass-manager.ll @@ -5,27 +5,85 @@ ; files, but for now this is just going to step the new process through its ; paces. +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; RUN: -passes=no-op-module %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS +; CHECK-MODULE-PASS: Starting pass manager +; CHECK-MODULE-PASS-NEXT: Running pass: NoOpModulePass +; CHECK-MODULE-PASS-NEXT: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; RUN: -passes=no-op-cgscc %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; RUN: -passes='cgscc(no-op-cgscc)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS +; CHECK-CGSCC-PASS: Starting pass manager +; CHECK-CGSCC-PASS-NEXT: Running pass: ModuleToPostOrderCGSCCPassAdaptor +; CHECK-CGSCC-PASS-NEXT: Running analysis: CGSCCAnalysisManagerModuleProxy +; CHECK-CGSCC-PASS-NEXT: Running analysis: Lazy CallGraph Analysis +; CHECK-CGSCC-PASS-NEXT: Starting pass manager +; CHECK-CGSCC-PASS-NEXT: Running pass: NoOpCGSCCPass +; CHECK-CGSCC-PASS-NEXT: Finished pass manager +; CHECK-CGSCC-PASS-NEXT: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; RUN: -passes=no-op-function %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; RUN: -passes='function(no-op-function)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS +; CHECK-FUNCTION-PASS: Starting pass manager +; CHECK-FUNCTION-PASS-NEXT: Running pass: ModuleToFunctionPassAdaptor +; CHECK-FUNCTION-PASS-NEXT: Running analysis: FunctionAnalysisManagerModuleProxy +; CHECK-FUNCTION-PASS-NEXT: Starting pass manager +; CHECK-FUNCTION-PASS-NEXT: Running pass: NoOpFunctionPass +; CHECK-FUNCTION-PASS-NEXT: Finished pass manager +; CHECK-FUNCTION-PASS-NEXT: Finished pass manager + ; RUN: opt -disable-output -debug-pass-manager -passes=print %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PRINT -; CHECK-MODULE-PRINT: Starting module pass manager -; CHECK-MODULE-PRINT: Running module pass: VerifierPass -; CHECK-MODULE-PRINT: Running module pass: PrintModulePass +; CHECK-MODULE-PRINT: Starting pass manager +; CHECK-MODULE-PRINT: Running pass: VerifierPass +; CHECK-MODULE-PRINT: Running pass: PrintModulePass ; CHECK-MODULE-PRINT: ModuleID ; CHECK-MODULE-PRINT: define void @foo() -; CHECK-MODULE-PRINT: Running module pass: VerifierPass -; CHECK-MODULE-PRINT: Finished module pass manager +; CHECK-MODULE-PRINT: Running pass: VerifierPass +; CHECK-MODULE-PRINT: Finished pass manager + +; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='print,verify' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-VERIFY +; CHECK-MODULE-VERIFY: Starting pass manager +; CHECK-MODULE-VERIFY: Running pass: PrintModulePass +; CHECK-MODULE-VERIFY: ModuleID +; CHECK-MODULE-VERIFY: define void @foo() +; CHECK-MODULE-VERIFY: Running pass: VerifierPass +; CHECK-MODULE-VERIFY: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager -passes='function(print)' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PRINT -; CHECK-FUNCTION-PRINT: Starting module pass manager -; CHECK-FUNCTION-PRINT: Running module pass: VerifierPass -; CHECK-FUNCTION-PRINT: Starting function pass manager -; CHECK-FUNCTION-PRINT: Running function pass: PrintFunctionPass +; CHECK-FUNCTION-PRINT: Starting pass manager +; CHECK-FUNCTION-PRINT: Running pass: VerifierPass +; CHECK-FUNCTION-PRINT: Running pass: ModuleToFunctionPassAdaptor +; CHECK-FUNCTION-PRINT: Running analysis: FunctionAnalysisManagerModuleProxy +; CHECK-FUNCTION-PRINT: Starting pass manager +; CHECK-FUNCTION-PRINT: Running pass: PrintFunctionPass ; CHECK-FUNCTION-PRINT-NOT: ModuleID ; CHECK-FUNCTION-PRINT: define void @foo() -; CHECK-FUNCTION-PRINT: Finished function pass manager -; CHECK-FUNCTION-PRINT: Running module pass: VerifierPass -; CHECK-FUNCTION-PRINT: Finished module pass manager +; CHECK-FUNCTION-PRINT: Finished pass manager +; CHECK-FUNCTION-PRINT: Running pass: VerifierPass +; CHECK-FUNCTION-PRINT: Finished pass manager + +; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='function(print,verify)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-VERIFY +; CHECK-FUNCTION-VERIFY: Starting pass manager +; CHECK-FUNCTION-VERIFY: Starting pass manager +; CHECK-FUNCTION-VERIFY: Running pass: PrintFunctionPass +; CHECK-FUNCTION-VERIFY-NOT: ModuleID +; CHECK-FUNCTION-VERIFY: define void @foo() +; CHECK-FUNCTION-VERIFY: Running pass: VerifierPass +; CHECK-FUNCTION-VERIFY: Finished pass manager +; CHECK-FUNCTION-VERIFY: Finished pass manager ; RUN: opt -S -o - -passes='no-op-module,no-op-module' %s \ ; RUN: | FileCheck %s --check-prefix=CHECK-NOOP @@ -40,30 +98,208 @@ ; RUN: opt -disable-output -debug-pass-manager -verify-each -passes='no-op-module,function(no-op-function)' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-VERIFY-EACH -; CHECK-VERIFY-EACH: Starting module pass manager -; CHECK-VERIFY-EACH: Running module pass: VerifierPass -; CHECK-VERIFY-EACH: Running module pass: NoOpModulePass -; CHECK-VERIFY-EACH: Running module pass: VerifierPass -; CHECK-VERIFY-EACH: Starting function pass manager -; CHECK-VERIFY-EACH: Running function pass: NoOpFunctionPass -; CHECK-VERIFY-EACH: Running function pass: VerifierPass -; CHECK-VERIFY-EACH: Finished function pass manager -; CHECK-VERIFY-EACH: Running module pass: VerifierPass -; CHECK-VERIFY-EACH: Finished module pass manager +; CHECK-VERIFY-EACH: Starting pass manager +; CHECK-VERIFY-EACH: Running pass: VerifierPass +; CHECK-VERIFY-EACH: Running pass: NoOpModulePass +; CHECK-VERIFY-EACH: Running pass: VerifierPass +; CHECK-VERIFY-EACH: Starting pass manager +; CHECK-VERIFY-EACH: Running pass: NoOpFunctionPass +; CHECK-VERIFY-EACH: Running pass: VerifierPass +; CHECK-VERIFY-EACH: Finished pass manager +; CHECK-VERIFY-EACH: Running pass: VerifierPass +; CHECK-VERIFY-EACH: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager -disable-verify -passes='no-op-module,function(no-op-function)' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-NO-VERIFY -; CHECK-NO-VERIFY: Starting module pass manager +; CHECK-NO-VERIFY: Starting pass manager ; CHECK-NO-VERIFY-NOT: VerifierPass -; CHECK-NO-VERIFY: Running module pass: NoOpModulePass +; CHECK-NO-VERIFY: Running pass: NoOpModulePass ; CHECK-NO-VERIFY-NOT: VerifierPass -; CHECK-NO-VERIFY: Starting function pass manager -; CHECK-NO-VERIFY: Running function pass: NoOpFunctionPass +; CHECK-NO-VERIFY: Starting pass manager +; CHECK-NO-VERIFY: Running pass: NoOpFunctionPass ; CHECK-NO-VERIFY-NOT: VerifierPass -; CHECK-NO-VERIFY: Finished function pass manager +; CHECK-NO-VERIFY: Finished pass manager ; CHECK-NO-VERIFY-NOT: VerifierPass -; CHECK-NO-VERIFY: Finished module pass manager +; CHECK-NO-VERIFY: Finished pass manager + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-ANALYSES +; CHECK-ANALYSES: Starting pass manager +; CHECK-ANALYSES: Running pass: RequireAnalysisPass +; CHECK-ANALYSES: Running analysis: NoOpModuleAnalysis +; CHECK-ANALYSES: Starting pass manager +; CHECK-ANALYSES: Running pass: RequireAnalysisPass +; CHECK-ANALYSES: Running analysis: NoOpCGSCCAnalysis +; CHECK-ANALYSES: Starting pass manager +; CHECK-ANALYSES: Running pass: RequireAnalysisPass +; CHECK-ANALYSES: Running analysis: NoOpFunctionAnalysis + +; Make sure no-op passes that preserve all analyses don't even try to do any +; analysis invalidation. +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-NO-OP-INVALIDATION +; CHECK-NO-OP-INVALIDATION: Starting pass manager +; CHECK-NO-OP-INVALIDATION-NOT: Invalidating all non-preserved analyses + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS +; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis +; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running analysis: NoOpModuleAnalysis + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating analysis: NoOpModuleAnalysis +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running analysis: NoOpModuleAnalysis + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS +; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis +; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running analysis: NoOpCGSCCAnalysis + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating analysis: NoOpCGSCCAnalysis +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running analysis: NoOpCGSCCAnalysis + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS +; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis +; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running analysis: NoOpFunctionAnalysis + +; RUN: opt -disable-output -debug-pass-manager \ +; RUN: -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \ +; RUN: | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting pass manager +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running pass: RequireAnalysisPass +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating analysis: NoOpFunctionAnalysis +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running analysis: NoOpFunctionAnalysis + +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; 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 \ +; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL +; CHECK-INVALIDATE-ALL: Starting pass manager +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Starting pass manager +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Starting pass manager +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL: Running pass: InvalidateAllAnalysesPass +; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL: Finished pass manager +; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL: Invalidating analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Finished pass manager +; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-NOT: Invalidating analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-NOT: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager \ +; 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 \ +; RUN: | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG +; CHECK-INVALIDATE-ALL-CG: Starting pass manager +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Starting pass manager +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Starting pass manager +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis +; CHECK-INVALIDATE-ALL-CG: Starting pass manager +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL-CG: Running pass: InvalidateAllAnalysesPass +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL-CG: Finished pass manager +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpFunctionAnalysis +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpCGSCCAnalysis +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpCGSCCAnalysis +; CHECK-INVALIDATE-ALL-CG: Finished pass manager +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpCGSCCAnalysis +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG: Invalidating analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Finished pass manager +; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses +; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Running pass: RequireAnalysisPass +; CHECK-INVALIDATE-ALL-CG-NOT: Running analysis: NoOpModuleAnalysis +; CHECK-INVALIDATE-ALL-CG: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ +; RUN: -passes='require<targetlibinfo>,invalidate<all>,require<targetlibinfo>' \ +; RUN: | FileCheck %s --check-prefix=CHECK-TLI +; CHECK-TLI: Starting pass manager +; CHECK-TLI: Running pass: RequireAnalysisPass +; CHECK-TLI: Running analysis: TargetLibraryAnalysis +; CHECK-TLI: Running pass: InvalidateAllAnalysesPass +; CHECK-TLI-NOT: Invalidating analysis: TargetLibraryAnalysis +; CHECK-TLI: Running pass: RequireAnalysisPass +; CHECK-TLI-NOT: Running analysis: TargetLibraryAnalysis +; CHECK-TLI: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ +; RUN: -passes='require<targetir>,invalidate<all>,require<targetir>' \ +; RUN: | FileCheck %s --check-prefix=CHECK-TIRA +; CHECK-TIRA: Starting pass manager +; CHECK-TIRA: Running pass: RequireAnalysisPass +; CHECK-TIRA: Running analysis: TargetIRAnalysis +; CHECK-TIRA: Running pass: InvalidateAllAnalysesPass +; CHECK-TIRA-NOT: Invalidating analysis: TargetIRAnalysis +; CHECK-TIRA: Running pass: RequireAnalysisPass +; CHECK-TIRA-NOT: Running analysis: TargetIRAnalysis +; CHECK-TIRA: Finished pass manager + +; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \ +; RUN: -passes='require<domtree>' \ +; RUN: | FileCheck %s --check-prefix=CHECK-DT +; CHECK-DT: Starting pass manager +; CHECK-DT: Running pass: RequireAnalysisPass +; CHECK-DT: Running analysis: DominatorTreeAnalysis +; CHECK-DT: Finished pass manager define void @foo() { ret void } + +declare void @bar() diff --git a/test/Other/pass-pipeline-parsing.ll b/test/Other/pass-pipeline-parsing.ll index 4ec4162..da0e760 100644 --- a/test/Other/pass-pipeline-parsing.ll +++ b/test/Other/pass-pipeline-parsing.ll @@ -1,59 +1,55 @@ ; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes=no-op-module,no-op-module %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-MP -; CHECK-TWO-NOOP-MP: Starting module pass manager -; CHECK-TWO-NOOP-MP: Running module pass: NoOpModulePass -; CHECK-TWO-NOOP-MP: Running module pass: NoOpModulePass -; CHECK-TWO-NOOP-MP: Finished module pass manager +; CHECK-TWO-NOOP-MP: Starting pass manager +; CHECK-TWO-NOOP-MP: Running pass: NoOpModulePass +; CHECK-TWO-NOOP-MP: Running pass: NoOpModulePass +; CHECK-TWO-NOOP-MP: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes='module(no-op-module,no-op-module)' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-TWO-NOOP-MP -; CHECK-NESTED-TWO-NOOP-MP: Starting module pass manager -; CHECK-NESTED-TWO-NOOP-MP: Running module pass: ModulePassManager -; CHECK-NESTED-TWO-NOOP-MP: Starting module pass manager -; CHECK-NESTED-TWO-NOOP-MP: Running module pass: NoOpModulePass -; CHECK-NESTED-TWO-NOOP-MP: Running module pass: NoOpModulePass -; CHECK-NESTED-TWO-NOOP-MP: Finished module pass manager -; CHECK-NESTED-TWO-NOOP-MP: Finished module pass manager +; CHECK-NESTED-TWO-NOOP-MP: Starting pass manager +; CHECK-NESTED-TWO-NOOP-MP: Starting pass manager +; CHECK-NESTED-TWO-NOOP-MP: Running pass: NoOpModulePass +; CHECK-NESTED-TWO-NOOP-MP: Running pass: NoOpModulePass +; CHECK-NESTED-TWO-NOOP-MP: Finished pass manager +; CHECK-NESTED-TWO-NOOP-MP: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes=no-op-function,no-op-function %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-FP -; CHECK-TWO-NOOP-FP: Starting module pass manager -; CHECK-TWO-NOOP-FP: Running module pass: ModuleToFunctionPassAdaptor -; CHECK-TWO-NOOP-FP: Starting function pass manager -; CHECK-TWO-NOOP-FP: Running function pass: NoOpFunctionPass -; CHECK-TWO-NOOP-FP: Running function pass: NoOpFunctionPass -; CHECK-TWO-NOOP-FP: Finished function pass manager -; CHECK-TWO-NOOP-FP: Finished module pass manager +; CHECK-TWO-NOOP-FP: Starting pass manager +; CHECK-TWO-NOOP-FP: Running pass: ModuleToFunctionPassAdaptor +; CHECK-TWO-NOOP-FP: Starting pass manager +; CHECK-TWO-NOOP-FP: Running pass: NoOpFunctionPass +; CHECK-TWO-NOOP-FP: Running pass: NoOpFunctionPass +; CHECK-TWO-NOOP-FP: Finished pass manager +; CHECK-TWO-NOOP-FP: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes='function(no-op-function,no-op-function)' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-TWO-NOOP-FP -; CHECK-NESTED-TWO-NOOP-FP: Starting module pass manager -; CHECK-NESTED-TWO-NOOP-FP: Running module pass: ModuleToFunctionPassAdaptor -; CHECK-NESTED-TWO-NOOP-FP: Starting function pass manager -; CHECK-NESTED-TWO-NOOP-FP: Running function pass: FunctionPassManager -; CHECK-NESTED-TWO-NOOP-FP: Starting function pass manager -; CHECK-NESTED-TWO-NOOP-FP: Running function pass: NoOpFunctionPass -; CHECK-NESTED-TWO-NOOP-FP: Running function pass: NoOpFunctionPass -; CHECK-NESTED-TWO-NOOP-FP: Finished function pass manager -; CHECK-NESTED-TWO-NOOP-FP: Finished function pass manager -; CHECK-NESTED-TWO-NOOP-FP: Finished module pass manager +; CHECK-NESTED-TWO-NOOP-FP: Starting pass manager +; CHECK-NESTED-TWO-NOOP-FP: Running pass: ModuleToFunctionPassAdaptor +; CHECK-NESTED-TWO-NOOP-FP: Starting pass manager +; CHECK-NESTED-TWO-NOOP-FP: Running pass: NoOpFunctionPass +; CHECK-NESTED-TWO-NOOP-FP: Running pass: NoOpFunctionPass +; CHECK-NESTED-TWO-NOOP-FP: Finished pass manager +; CHECK-NESTED-TWO-NOOP-FP: Finished pass manager ; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes='no-op-module,function(no-op-function,no-op-function),no-op-module' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-MIXED-FP-AND-MP -; CHECK-MIXED-FP-AND-MP: Starting module pass manager -; CHECK-MIXED-FP-AND-MP: Running module pass: NoOpModulePass -; CHECK-MIXED-FP-AND-MP: Running module pass: ModuleToFunctionPassAdaptor -; CHECK-MIXED-FP-AND-MP: Starting function pass manager -; CHECK-MIXED-FP-AND-MP: Running function pass: NoOpFunctionPass -; CHECK-MIXED-FP-AND-MP: Running function pass: NoOpFunctionPass -; CHECK-MIXED-FP-AND-MP: Finished function pass manager -; CHECK-MIXED-FP-AND-MP: Running module pass: NoOpModulePass -; CHECK-MIXED-FP-AND-MP: Finished module pass manager +; CHECK-MIXED-FP-AND-MP: Starting pass manager +; CHECK-MIXED-FP-AND-MP: Running pass: NoOpModulePass +; CHECK-MIXED-FP-AND-MP: Running pass: ModuleToFunctionPassAdaptor +; CHECK-MIXED-FP-AND-MP: Starting pass manager +; CHECK-MIXED-FP-AND-MP: Running pass: NoOpFunctionPass +; CHECK-MIXED-FP-AND-MP: Running pass: NoOpFunctionPass +; CHECK-MIXED-FP-AND-MP: Finished pass manager +; CHECK-MIXED-FP-AND-MP: Running pass: NoOpModulePass +; CHECK-MIXED-FP-AND-MP: Finished pass manager ; RUN: not opt -disable-output -debug-pass-manager \ ; RUN: -passes='no-op-module)' %s 2>&1 \ @@ -105,41 +101,41 @@ ; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED10 ; CHECK-UNBALANCED10: unable to parse pass pipeline description -; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \ +; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes=no-op-cgscc,no-op-cgscc %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-CG -; CHECK-TWO-NOOP-CG: Starting module pass manager -; CHECK-TWO-NOOP-CG: Running module pass: ModuleToPostOrderCGSCCPassAdaptor -; CHECK-TWO-NOOP-CG: Starting CGSCC pass manager -; CHECK-TWO-NOOP-CG: Running CGSCC pass: NoOpCGSCCPass -; CHECK-TWO-NOOP-CG: Running CGSCC pass: NoOpCGSCCPass -; CHECK-TWO-NOOP-CG: Finished CGSCC pass manager -; CHECK-TWO-NOOP-CG: Finished module pass manager - -; RUN: opt -disable-output -debug-pass-manager -debug-cgscc-pass-manager \ +; CHECK-TWO-NOOP-CG: Starting pass manager +; CHECK-TWO-NOOP-CG: Running pass: ModuleToPostOrderCGSCCPassAdaptor +; CHECK-TWO-NOOP-CG: Starting pass manager +; CHECK-TWO-NOOP-CG: Running pass: NoOpCGSCCPass +; CHECK-TWO-NOOP-CG: Running pass: NoOpCGSCCPass +; CHECK-TWO-NOOP-CG: Finished pass manager +; CHECK-TWO-NOOP-CG: Finished pass manager + +; RUN: opt -disable-output -debug-pass-manager \ ; RUN: -passes='module(function(no-op-function),cgscc(no-op-cgscc,function(no-op-function),no-op-cgscc),function(no-op-function))' %s 2>&1 \ ; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-MP-CG-FP -; CHECK-NESTED-MP-CG-FP: Starting module pass manager -; CHECK-NESTED-MP-CG-FP: Starting module pass manager -; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToFunctionPassAdaptor -; CHECK-NESTED-MP-CG-FP: Starting function pass manager -; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass -; CHECK-NESTED-MP-CG-FP: Finished function pass manager -; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToPostOrderCGSCCPassAdaptor -; CHECK-NESTED-MP-CG-FP: Starting CGSCC pass manager -; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: NoOpCGSCCPass -; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: CGSCCToFunctionPassAdaptor -; CHECK-NESTED-MP-CG-FP: Starting function pass manager -; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass -; CHECK-NESTED-MP-CG-FP: Finished function pass manager -; CHECK-NESTED-MP-CG-FP: Running CGSCC pass: NoOpCGSCCPass -; CHECK-NESTED-MP-CG-FP: Finished CGSCC pass manager -; CHECK-NESTED-MP-CG-FP: Running module pass: ModuleToFunctionPassAdaptor -; CHECK-NESTED-MP-CG-FP: Starting function pass manager -; CHECK-NESTED-MP-CG-FP: Running function pass: NoOpFunctionPass -; CHECK-NESTED-MP-CG-FP: Finished function pass manager -; CHECK-NESTED-MP-CG-FP: Finished module pass manager -; CHECK-NESTED-MP-CG-FP: Finished module pass manager +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToFunctionPassAdaptor +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass +; CHECK-NESTED-MP-CG-FP: Finished pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToPostOrderCGSCCPassAdaptor +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: NoOpCGSCCPass +; CHECK-NESTED-MP-CG-FP: Running pass: CGSCCToFunctionPassAdaptor +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass +; CHECK-NESTED-MP-CG-FP: Finished pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: NoOpCGSCCPass +; CHECK-NESTED-MP-CG-FP: Finished pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: ModuleToFunctionPassAdaptor +; CHECK-NESTED-MP-CG-FP: Starting pass manager +; CHECK-NESTED-MP-CG-FP: Running pass: NoOpFunctionPass +; CHECK-NESTED-MP-CG-FP: Finished pass manager +; CHECK-NESTED-MP-CG-FP: Finished pass manager +; CHECK-NESTED-MP-CG-FP: Finished pass manager define void @f() { ret void |