summaryrefslogtreecommitdiffstats
path: root/llvm/test/Other/pass-pipeline-parsing.ll
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2016-02-25 07:23:08 +0000
committerJustin Bogner <mail@justinbogner.com>2016-02-25 07:23:08 +0000
commiteecc3c826a58cb96697e56e159b14c7e9ae605dc (patch)
tree18e4ebfe7faa7f2a97a07de81ae96dab75b7075c /llvm/test/Other/pass-pipeline-parsing.ll
parentbe8f522ef3df6aec5d4c9c2e897865e55bbdb6ff (diff)
downloadbcm5719-llvm-eecc3c826a58cb96697e56e159b14c7e9ae605dc.tar.gz
bcm5719-llvm-eecc3c826a58cb96697e56e159b14c7e9ae605dc.zip
PM: Implement a basic loop pass manager
This creates the new-style LoopPassManager and wires it up with dummy and print passes. This version doesn't support modifying the loop nest at all. It will be far easier to discuss and evaluate the approaches to that with this in place so that the boilerplate is out of the way. llvm-svn: 261831
Diffstat (limited to 'llvm/test/Other/pass-pipeline-parsing.ll')
-rw-r--r--llvm/test/Other/pass-pipeline-parsing.ll42
1 files changed, 41 insertions, 1 deletions
diff --git a/llvm/test/Other/pass-pipeline-parsing.ll b/llvm/test/Other/pass-pipeline-parsing.ll
index da0e7604003..3c09b01b481 100644
--- a/llvm/test/Other/pass-pipeline-parsing.ll
+++ b/llvm/test/Other/pass-pipeline-parsing.ll
@@ -137,6 +137,46 @@
; CHECK-NESTED-MP-CG-FP: Finished pass manager
; CHECK-NESTED-MP-CG-FP: Finished pass manager
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-loop,no-op-loop' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-TWO-NOOP-LOOP
+; CHECK-TWO-NOOP-LOOP: Starting pass manager
+; CHECK-TWO-NOOP-LOOP: Running pass: ModuleToFunctionPassAdaptor
+; CHECK-TWO-NOOP-LOOP: Starting pass manager
+; CHECK-TWO-NOOP-LOOP: Running pass: FunctionToLoopPassAdaptor
+; CHECK-TWO-NOOP-LOOP: Starting pass manager
+; CHECK-TWO-NOOP-LOOP: Running pass: NoOpLoopPass
+; CHECK-TWO-NOOP-LOOP: Running pass: NoOpLoopPass
+; CHECK-TWO-NOOP-LOOP: Finished pass manager
+; CHECK-TWO-NOOP-LOOP: Finished pass manager
+; CHECK-TWO-NOOP-LOOP: Finished pass manager
+
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='module(function(loop(no-op-loop)))' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='function(loop(no-op-loop))' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='loop(no-op-loop)' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP
+; RUN: opt -disable-output -debug-pass-manager \
+; RUN: -passes='no-op-loop' %s 2>&1 \
+; RUN: | FileCheck %s --check-prefix=CHECK-NESTED-FP-LP
+; CHECK-NESTED-FP-LP: Starting pass manager
+; CHECK-NESTED-FP-LP: Running pass: ModuleToFunctionPassAdaptor
+; CHECK-NESTED-FP-LP: Starting pass manager
+; CHECK-NESTED-FP-LP: Running pass: FunctionToLoopPassAdaptor
+; CHECK-NESTED-FP-LP: Starting pass manager
+; CHECK-NESTED-FP-LP: Running pass: NoOpLoopPass
+; CHECK-NESTED-FP-LP: Finished pass manager
+; CHECK-NESTED-FP-LP: Finished pass manager
+; CHECK-NESTED-FP-LP: Finished pass manager
+
+
define void @f() {
- ret void
+entry:
+ br label %loop
+loop:
+ br label %loop
}
OpenPOWER on IntegriCloud