[llvm] 9c56e94 - [NPM] Bail out when -foo and --passes=foo are both specified
Arthur Eubanks via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 22 08:34:57 PDT 2020
Author: Arthur Eubanks
Date: 2020-06-22T08:27:13-07:00
New Revision: 9c56e94a9f0d9a0930179e764aff7c80c793e117
URL: https://github.com/llvm/llvm-project/commit/9c56e94a9f0d9a0930179e764aff7c80c793e117
DIFF: https://github.com/llvm/llvm-project/commit/9c56e94a9f0d9a0930179e764aff7c80c793e117.diff
LOG: [NPM] Bail out when -foo and --passes=foo are both specified
Summary:
Currently when --passes is used, any passes specified via -foo are
ignored. Explicitly bail out when that happens.
This requires changing some tests. Most were straightforward, but
codegenprepare-produced-address-math.ll is tricky. One of its RUNs runs
CodeGenPrepare. I tried porting CodeGenPrepare to the NPM, but ended up
getting stuck when I needed a TargetMachine. NPM doesn't have support
for MachineFunctions yet. So I just deleted that RUN line, since it was
mass-added in https://reviews.llvm.org/D54848 and is likely not that
useful.
Reviewers: echristo, hans
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D82271
Added:
llvm/test/Other/opt-old-new-pm-passes.ll
Modified:
llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll
llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll
llvm/test/Transforms/LoadStoreVectorizer/X86/codegenprepare-produced-address-math.ll
llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
llvm/tools/opt/opt.cpp
Removed:
################################################################################
diff --git a/llvm/test/Other/opt-old-new-pm-passes.ll b/llvm/test/Other/opt-old-new-pm-passes.ll
new file mode 100644
index 000000000000..09bc7c401604
--- /dev/null
+++ b/llvm/test/Other/opt-old-new-pm-passes.ll
@@ -0,0 +1,2 @@
+; RUN: not opt -dce --passes=inline %s 2>&1 | FileCheck %s
+; CHECK: Cannot specify passes via both -foo-pass and --passes=foo-pass
diff --git a/llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll b/llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll
index 2842bced1cfc..46a83de97e43 100644
--- a/llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll
+++ b/llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll
@@ -1,5 +1,5 @@
; RUN: opt -irce-print-changed-loops -S -verify-loop-info -irce -verify < %s 2>&1 | FileCheck %s
-; RUN: opt -irce-print-changed-loops -S -verify-loop-info -passes='require<branch-prob>,irce' -verify < %s 2>&1 | FileCheck %s
+; RUN: opt -irce-print-changed-loops -S -verify-loop-info -passes='require<branch-prob>,irce,verify' < %s 2>&1 | FileCheck %s
; CHECK-NOT: constrained loop
diff --git a/llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll b/llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll
index 5d6e8830d377..3612270eaa9a 100644
--- a/llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll
+++ b/llvm/test/Transforms/IRCE/non-loop-invariant-rhs-instr.ll
@@ -1,6 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -irce -verify-loop-info -verify < %s 2>&1 | FileCheck %s
-; RUN: opt -S -passes=irce -verify-loop-info -verify < %s 2>&1 | FileCheck %s
+; RUN: opt -S -verify-loop-info -passes=irce,verify < %s 2>&1 | FileCheck %s
define i32 @test_01(i32 %A, i64 %Len, i32 *%array) {
; CHECK-LABEL: @test_01(
diff --git a/llvm/test/Transforms/LoadStoreVectorizer/X86/codegenprepare-produced-address-math.ll b/llvm/test/Transforms/LoadStoreVectorizer/X86/codegenprepare-produced-address-math.ll
index e29f3dfa537f..01606a2f2a5e 100644
--- a/llvm/test/Transforms/LoadStoreVectorizer/X86/codegenprepare-produced-address-math.ll
+++ b/llvm/test/Transforms/LoadStoreVectorizer/X86/codegenprepare-produced-address-math.ll
@@ -1,7 +1,6 @@
; RUN: opt -codegenprepare -load-store-vectorizer %s -S -o - | FileCheck %s
; RUN: opt -load-store-vectorizer %s -S -o - | FileCheck %s
-; RUN: opt -codegenprepare -aa-pipeline=basic-aa -passes='function(load-store-vectorizer)' %s -S -o - | FileCheck %s
-; RUN: opt -aa-pipeline=basic-aa -passes='function(load-store-vectorizer)' %s -S -o - | FileCheck %s
+; RUN: opt -aa-pipeline=basic-aa -passes='function(load-store-vectorizer)' %s -S -o - | FileCheck %s
target triple = "x86_64--"
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll b/llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
index d198b2727780..b823b6c2a5ba 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
@@ -1,6 +1,6 @@
;; RUN: opt -rewrite-statepoints-for-gc -verify -S < %s | FileCheck %s
-;; RUN: opt -passes=rewrite-statepoints-for-gc -verify -S < %s | FileCheck %s
+;; RUN: opt -passes=rewrite-statepoints-for-gc,verify -S < %s | FileCheck %s
;; This test is to verify that RewriteStatepointsForGC correctly relocates values
;; defined by invoke instruction results.
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll b/llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
index f096f30ba06a..5db1c4602796 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
@@ -1,5 +1,5 @@
; RUN: opt -rewrite-statepoints-for-gc -verify -S < %s | FileCheck %s
-; RUN: opt -passes=rewrite-statepoints-for-gc -verify -S < %s | FileCheck %s
+; RUN: opt -passes=rewrite-statepoints-for-gc,verify -S < %s | FileCheck %s
declare i8 addrspace(1)* @gc_call()
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index 0a1a5110bf2d..5b8fa26a3d30 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -735,6 +735,11 @@ int main(int argc, char **argv) {
M->addModuleFlag(Module::Error, "EnableSplitLTOUnit", SplitLTOUnit);
if (PassPipeline.getNumOccurrences() > 0) {
+ if (PassList.size()) {
+ errs()
+ << "Cannot specify passes via both -foo-pass and --passes=foo-pass";
+ return 1;
+ }
OutputKind OK = OK_NoOutput;
if (!NoOutput)
OK = OutputAssembly
More information about the llvm-commits
mailing list