[PATCH] D92917: [Driver] Pass -plugin-opt=no-new-pass-manager to the linker
Fangrui Song via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 9 00:07:50 PST 2020
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92917.310439.patch
Type: text/x-patch
Size: 1905 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201209/59bb8cc1/attachment.bin>
More information about the cfe-commits
mailing list