summaryrefslogtreecommitdiffstats
path: root/test/Other/pass-pipeline-parsing.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Other/pass-pipeline-parsing.ll')
-rw-r--r--test/Other/pass-pipeline-parsing.ll110
1 files changed, 110 insertions, 0 deletions
diff --git a/test/Other/pass-pipeline-parsing.ll b/test/Other/pass-pipeline-parsing.ll
new file mode 100644
index 0000000..ba33610
--- /dev/null
+++ b/test/Other/pass-pipeline-parsing.ll
@@ -0,0 +1,110 @@
+; 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
+
+; 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
+
+; 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
+
+; 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
+
+; 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
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-module)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED1
+; CHECK-UNBALANCED1: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='module(no-op-module))' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED2
+; CHECK-UNBALANCED2: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='module(no-op-module' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED3
+; CHECK-UNBALANCED3: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-function)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED4
+; CHECK-UNBALANCED4: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='function(no-op-function))' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED5
+; CHECK-UNBALANCED5: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='function(function(no-op-function)))' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED6
+; CHECK-UNBALANCED6: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='function(no-op-function' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED7
+; CHECK-UNBALANCED7: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='function(function(no-op-function)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED8
+; CHECK-UNBALANCED8: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-module,)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED9
+; CHECK-UNBALANCED9: unable to parse pass pipeline description
+
+; RUN: not opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-function,)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-UNBALANCED10
+; CHECK-UNBALANCED10: unable to parse pass pipeline description
+
+define void @f() {
+ ret void
+}