[llvm] 99b86d7 - [PassManager] add tests for vector pass enabling; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 29 05:07:51 PST 2020


Author: Sanjay Patel
Date: 2020-02-29T07:56:41-05:00
New Revision: 99b86d76b5e13e2257d791c66f45dd679b7bd92e

URL: https://github.com/llvm/llvm-project/commit/99b86d76b5e13e2257d791c66f45dd679b7bd92e
DIFF: https://github.com/llvm/llvm-project/commit/99b86d76b5e13e2257d791c66f45dd679b7bd92e.diff

LOG: [PassManager] add tests for vector pass enabling; NFC

Added: 
    llvm/test/Other/opt-pipeline-vector-passes.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Other/opt-pipeline-vector-passes.ll b/llvm/test/Other/opt-pipeline-vector-passes.ll
new file mode 100644
index 000000000000..1a1ad56c88e7
--- /dev/null
+++ b/llvm/test/Other/opt-pipeline-vector-passes.ll
@@ -0,0 +1,52 @@
+; RUN: opt -O1                    -debug-pass=Structure  < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=OLDPM_O1
+; RUN: opt -O2                    -debug-pass=Structure  < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=OLDPM_O2
+; RUN: opt -O1 -vectorize-loops=0 -debug-pass=Structure  < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=OLDPM_O1_FORCE_OFF
+; RUN: opt -O2 -vectorize-loops=0 -debug-pass=Structure  < %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=OLDPM_O2_FORCE_OFF
+; RUN: opt -disable-verify -debug-pass-manager -passes='default<O1>' -S %s 2>&1 | FileCheck %s --check-prefixes=NEWPM_O1
+; RUN: opt -disable-verify -debug-pass-manager -passes='default<O2>' -S %s 2>&1 | FileCheck %s --check-prefixes=NEWPM_O2
+
+; REQUIRES: asserts
+
+; SLP does not run at -O1. Loop vectorization runs, but it only
+; works on loops explicitly annotated with pragmas.
+
+; OLDPM_O1-LABEL:  Pass Arguments:
+; OLDPM_O1:        Loop Vectorization
+; OLDPM_O1:        Optimize scalar/vector ops
+; OLDPM_O1-NOT:    SLP Vectorizer
+
+; Everything runs at -O2.
+
+; OLDPM_O2-LABEL:  Pass Arguments:
+; OLDPM_O2:        Loop Vectorization
+; OLDPM_O2:        Optimize scalar/vector ops
+; OLDPM_O2:        SLP Vectorizer
+
+; The loop vectorizer still runs at both -O1/-O2 even with the
+; debug flag, but it only works on loops explicitly annotated
+; with pragmas.
+
+; OLDPM_O1_FORCE_OFF-LABEL:  Pass Arguments:
+; OLDPM_O1_FORCE_OFF:        Loop Vectorization
+; OLDPM_O1_FORCE_OFF:        Optimize scalar/vector ops
+; OLDPM_O1_FORCE_OFF-NOT:    SLP Vectorizer
+
+; OLDPM_O2_FORCE_OFF-LABEL:  Pass Arguments:
+; OLDPM_O2_FORCE_OFF:        Loop Vectorization
+; OLDPM_O2_FORCE_OFF:        Optimize scalar/vector ops
+; OLDPM_O2_FORCE_OFF:        SLP Vectorizer
+
+; There should be no 
diff erence with the new pass manager.
+; This is tested more thoroughly in other test files.
+
+; NEWPM_O1-LABEL:  Running pass: LoopVectorizePass
+; NEWPM_O1:        Running pass: VectorCombinePass
+; NEWPM_O1-NOT:    Running pass: SLPVectorizerPass
+
+; NEWPM_O2-LABEL:  Running pass: LoopVectorizePass
+; NEWPM_O2:        Running pass: VectorCombinePass
+; NEWPM_O2:        Running pass: SLPVectorizerPass
+
+define void @f() {
+  ret void
+}


        


More information about the llvm-commits mailing list