MaskRay updated this revision to Diff 310439.
MaskRay edited the summary of this revision.
MaskRay added a comment.

Improve


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92917/new/

https://reviews.llvm.org/D92917

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp
  clang/test/Driver/fnew-pass-manager.c


Index: clang/test/Driver/fnew-pass-manager.c
===================================================================
--- clang/test/Driver/fnew-pass-manager.c
+++ clang/test/Driver/fnew-pass-manager.c
@@ -19,8 +19,12 @@
 
 // LTO_NEW:    "-plugin-opt=new-pass-manager"
 
-/// TODO Add the negative option and pass it to the linker.
 // RUN: %clang -### -target x86_64-linux -flto -fno-new-pass-manager %s 2>&1 | 
FileCheck --check-prefix=LTO_LEGACY %s
 // RUN: %clang -### -target x86_64-linux -flto=thin 
-fno-experimental-new-pass-manager %s 2>&1 | FileCheck 
--check-prefix=LTO_LEGACY %s
 
-// LTO_LEGACY-NOT: "-plugin-opt=new-pass-manager"
+// LTO_LEGACY: "-plugin-opt=no-new-pass-manager"
+
+// RUN: %clang -### -target x86_64-linux -flto %s 2>&1 | FileCheck 
--check-prefix=DEFAULT %s
+
+// DEFAULT-NOT: "-plugin-opt=new-pass-manager"
+// DEFAULT-NOT: "-plugin-opt=no-new-pass-manager"
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -595,11 +595,13 @@
                                          Path));
   }
 
-  // Need this flag to turn on new pass manager via Gold plugin.
-  if (Args.hasFlag(options::OPT_fnew_pass_manager,
-                   options::OPT_fno_new_pass_manager,
-                   /* Default */ LLVM_ENABLE_NEW_PASS_MANAGER)) {
-    CmdArgs.push_back("-plugin-opt=new-pass-manager");
+  // Pass an option to enable/disable the new pass manager.
+  if (auto *A = Args.getLastArg(options::OPT_fnew_pass_manager,
+                                options::OPT_fno_new_pass_manager)) {
+    if (A->getOption().matches(options::OPT_fnew_pass_manager))
+      CmdArgs.push_back("-plugin-opt=new-pass-manager");
+    else
+      CmdArgs.push_back("-plugin-opt=no-new-pass-manager");
   }
 
   // Setup statistics file output.


Index: clang/test/Driver/fnew-pass-manager.c
===================================================================
--- clang/test/Driver/fnew-pass-manager.c
+++ clang/test/Driver/fnew-pass-manager.c
@@ -19,8 +19,12 @@
 
 // LTO_NEW:    "-plugin-opt=new-pass-manager"
 
-/// TODO Add the negative option and pass it to the linker.
 // RUN: %clang -### -target x86_64-linux -flto -fno-new-pass-manager %s 2>&1 | FileCheck --check-prefix=LTO_LEGACY %s
 // RUN: %clang -### -target x86_64-linux -flto=thin -fno-experimental-new-pass-manager %s 2>&1 | FileCheck --check-prefix=LTO_LEGACY %s
 
-// LTO_LEGACY-NOT: "-plugin-opt=new-pass-manager"
+// LTO_LEGACY: "-plugin-opt=no-new-pass-manager"
+
+// RUN: %clang -### -target x86_64-linux -flto %s 2>&1 | FileCheck --check-prefix=DEFAULT %s
+
+// DEFAULT-NOT: "-plugin-opt=new-pass-manager"
+// DEFAULT-NOT: "-plugin-opt=no-new-pass-manager"
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -595,11 +595,13 @@
                                          Path));
   }
 
-  // Need this flag to turn on new pass manager via Gold plugin.
-  if (Args.hasFlag(options::OPT_fnew_pass_manager,
-                   options::OPT_fno_new_pass_manager,
-                   /* Default */ LLVM_ENABLE_NEW_PASS_MANAGER)) {
-    CmdArgs.push_back("-plugin-opt=new-pass-manager");
+  // Pass an option to enable/disable the new pass manager.
+  if (auto *A = Args.getLastArg(options::OPT_fnew_pass_manager,
+                                options::OPT_fno_new_pass_manager)) {
+    if (A->getOption().matches(options::OPT_fnew_pass_manager))
+      CmdArgs.push_back("-plugin-opt=new-pass-manager");
+    else
+      CmdArgs.push_back("-plugin-opt=no-new-pass-manager");
   }
 
   // Setup statistics file output.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to