forked from OSchip/llvm-project
[LLD][gold] Add -plugin-opt=no-new-pass-manager
-DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=on configured LLD and LLVMgold.so will use the new pass manager by default. Add an option to use the legacy pass manager. This will also be used by the Clang driver when -fno-new-pass-manager (D92915) / -fno-experimental-new-pass-manager is set. Reviewed By: aeubanks, tejohnson Differential Revision: https://reviews.llvm.org/D92916
This commit is contained in:
parent
a5c89bb021
commit
68ff3b3376
|
@ -598,6 +598,8 @@ def: J<"plugin-opt=lto-partitions=">, Alias<lto_partitions>, HelpText<"Alias for
|
|||
def plugin_opt_mcpu_eq: J<"plugin-opt=mcpu=">;
|
||||
def: F<"plugin-opt=new-pass-manager">,
|
||||
Alias<lto_new_pass_manager>, HelpText<"Alias for --lto-new-pass-manager">;
|
||||
def: F<"plugin-opt=no-new-pass-manager">,
|
||||
Alias<no_lto_new_pass_manager>, HelpText<"Alias for --no-lto-new-pass-manager">;
|
||||
def: F<"plugin-opt=cs-profile-generate">,
|
||||
Alias<lto_cs_profile_generate>, HelpText<"Alias for --lto-cs-profile-generate">;
|
||||
def: J<"plugin-opt=cs-profile-path=">,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -288,6 +288,8 @@ namespace options {
|
|||
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") {
|
||||
|
|
Loading…
Reference in New Issue