diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td --- a/lld/ELF/Options.td +++ b/lld/ELF/Options.td @@ -598,6 +598,8 @@ def plugin_opt_mcpu_eq: J<"plugin-opt=mcpu=">; def: F<"plugin-opt=new-pass-manager">, Alias, HelpText<"Alias for --lto-new-pass-manager">; +def: F<"plugin-opt=no-new-pass-manager">, + Alias, HelpText<"Alias for --no-lto-new-pass-manager">; def: F<"plugin-opt=cs-profile-generate">, Alias, HelpText<"Alias for --lto-cs-profile-generate">; def: J<"plugin-opt=cs-profile-path=">, diff --git a/lld/test/ELF/lto/new-pass-manager.ll b/lld/test/ELF/lto/new-pass-manager.ll --- a/lld/test/ELF/lto/new-pass-manager.ll +++ b/lld/test/ELF/lto/new-pass-manager.ll @@ -7,6 +7,7 @@ ; RUN: ld.lld --lto-new-pass-manager --plugin-opt=debug-pass-manager -o /dev/null %t.o 2>&1 | FileCheck %s ; RUN: ld.lld --lto-new-pass-manager --lto-debug-pass-manager -o /dev/null %t.o 2>&1 | FileCheck %s ; RUN: ld.lld --lto-new-pass-manager --no-lto-new-pass-manager --lto-debug-pass-manager -o /dev/null %t.o 2>&1 | FileCheck %s --check-prefix=LEGACY +; RUN: ld.lld --plugin-opt=no-new-pass-manager --plugin-opt=debug-pass-manager -o /dev/null %t.o 2>&1 | FileCheck %s --check-prefix=LEGACY ; CHECK: Starting llvm::Module pass manager run ; CHECK: Finished llvm::Module pass manager run diff --git a/llvm/test/tools/gold/X86/new-pm.ll b/llvm/test/tools/gold/X86/new-pm.ll --- a/llvm/test/tools/gold/X86/new-pm.ll +++ b/llvm/test/tools/gold/X86/new-pm.ll @@ -10,6 +10,12 @@ ; CHECK: Starting llvm::Module pass manager run +;; --plugin-opt=debug-pass-manager is a no-op for the legacy pass manager. +; RUN: %gold -m elf_x86_64 -plugin %llvmshlibdir/LLVMgold%shlibext \ +; RUN: --plugin-opt=thinlto \ +; RUN: --plugin-opt=no-new-pass-manager --plugin-opt=debug-pass-manager \ +; RUN: -o /dev/null %t.o 2>&1 | count 0 + target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp --- a/llvm/tools/gold/gold-plugin.cpp +++ b/llvm/tools/gold/gold-plugin.cpp @@ -288,6 +288,8 @@ cs_profile_path = std::string(opt); } else if (opt == "new-pass-manager") { new_pass_manager = true; + } else if (opt == "no-new-pass-manager") { + new_pass_manager = false; } else if (opt == "debug-pass-manager") { debug_pass_manager = true; } else if (opt == "whole-program-visibility") {