Skip to content

Commit aafb366

Browse files
committed
Reland [CMake][NewPM] Move ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER into llvm/
This allows us to use its value everywhere, rather than just clang. Some other places, like opt and lld, will use its value soon. Rename it internally to LLVM_ENABLE_NEW_PASS_MANAGER. The #define for it is now in llvm-config.h. The initial land accidentally set the value of LLVM_ENABLE_NEW_PASS_MANAGER to the string ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER instead of its value. Reviewed By: rnk, hans Differential Revision: https://reviews.llvm.org/D92072
1 parent 2671fcc commit aafb366

File tree

12 files changed

+18
-12
lines changed

12 files changed

+18
-12
lines changed

clang/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,6 @@ set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
242242
set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL
243243
"enable x86 relax relocations by default")
244244

245-
set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER FALSE CACHE BOOL
246-
"Enable the experimental new pass manager by default.")
247-
248245
set(CLANG_SPAWN_CC1 OFF CACHE BOOL
249246
"Whether clang should use a new process for the CC1 invocation")
250247

clang/include/clang/Config/config.h.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@
7575
/* enable x86 relax relocations by default */
7676
#cmakedefine01 ENABLE_X86_RELAX_RELOCATIONS
7777

78-
/* Enable the experimental new pass manager by default */
79-
#cmakedefine01 ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER
80-
8178
/* Enable each functionality of modules */
8279
#cmakedefine01 CLANG_ENABLE_ARCMT
8380
#cmakedefine01 CLANG_ENABLE_OBJC_REWRITER

clang/include/clang/Driver/Options.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1349,7 +1349,7 @@ def fglobal_isel : Flag<["-"], "fglobal-isel">, Group<f_clang_Group>,
13491349
def fexperimental_isel : Flag<["-"], "fexperimental-isel">, Group<f_clang_Group>,
13501350
Alias<fglobal_isel>;
13511351
defm experimental_new_pass_manager : BooleanMarshalledFFlag<"experimental-new-pass-manager", "CodeGenOpts.ExperimentalNewPassManager",
1352-
"static_cast<unsigned>(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER)", "Enables an experimental new pass manager in LLVM.",
1352+
"static_cast<unsigned>(LLVM_ENABLE_NEW_PASS_MANAGER)", "Enables an experimental new pass manager in LLVM.",
13531353
"Disables an experimental new pass manager in LLVM.">, Group<f_clang_Group>, Flags<[CC1Option]>;
13541354
def fexperimental_strict_floating_point : Flag<["-"], "fexperimental-strict-floating-point">,
13551355
Group<f_clang_Group>, Flags<[CC1Option]>,

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include "llvm/ADT/StringExtras.h"
3838
#include "llvm/ADT/StringSwitch.h"
3939
#include "llvm/ADT/Twine.h"
40+
#include "llvm/Config/llvm-config.h"
4041
#include "llvm/Option/Arg.h"
4142
#include "llvm/Option/ArgList.h"
4243
#include "llvm/Option/Option.h"
@@ -597,7 +598,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
597598
// Need this flag to turn on new pass manager via Gold plugin.
598599
if (Args.hasFlag(options::OPT_fexperimental_new_pass_manager,
599600
options::OPT_fno_experimental_new_pass_manager,
600-
/* Default */ ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER)) {
601+
/* Default */ LLVM_ENABLE_NEW_PASS_MANAGER)) {
601602
CmdArgs.push_back("-plugin-opt=new-pass-manager");
602603
}
603604

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
#include "llvm/ADT/StringSwitch.h"
5959
#include "llvm/ADT/Triple.h"
6060
#include "llvm/ADT/Twine.h"
61+
#include "llvm/Config/llvm-config.h"
6162
#include "llvm/IR/DebugInfoMetadata.h"
6263
#include "llvm/Linker/Linker.h"
6364
#include "llvm/MC/MCTargetOptions.h"

clang/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ llvm_canonicalize_cmake_booleans(
1515
CLANG_ENABLE_STATIC_ANALYZER
1616
CLANG_SPAWN_CC1
1717
ENABLE_BACKTRACES
18-
ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER
18+
LLVM_ENABLE_NEW_PASS_MANAGER
1919
LLVM_ENABLE_ZLIB
2020
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
2121
LLVM_ENABLE_PLUGINS

clang/test/lit.site.cfg.py.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ config.clang_staticanalyzer_z3 = "@LLVM_WITH_Z3@"
2424
config.clang_examples = @CLANG_BUILD_EXAMPLES@
2525
config.enable_shared = @ENABLE_SHARED@
2626
config.enable_backtrace = @ENABLE_BACKTRACES@
27-
config.enable_experimental_new_pass_manager = @ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER@
27+
config.enable_experimental_new_pass_manager = @LLVM_ENABLE_NEW_PASS_MANAGER@
2828
config.enable_threads = @LLVM_ENABLE_THREADS@
2929
config.host_arch = "@HOST_ARCH@"
3030
config.python_executable = "@Python3_EXECUTABLE@"

llvm/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,9 @@ else()
697697
endif()
698698
option(LLVM_ENABLE_PLUGINS "Enable plugin support" ${LLVM_ENABLE_PLUGINS_default})
699699

700+
set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER FALSE CACHE BOOL
701+
"Enable the experimental new pass manager by default.")
702+
700703
include(HandleLLVMOptions)
701704

702705
find_package(Python3 COMPONENTS Interpreter)
@@ -809,6 +812,10 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "")
809812
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime)
810813
endif()
811814

815+
# Keep the legacy CMake flag ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER for
816+
# compatibility.
817+
set(LLVM_ENABLE_NEW_PASS_MANAGER ${ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER})
818+
812819
# Configure the three LLVM configuration header files.
813820
configure_file(
814821
${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,7 @@
9191
/* Define to 1 if you have the <sysexits.h> header file. */
9292
#cmakedefine HAVE_SYSEXITS_H ${HAVE_SYSEXITS_H}
9393

94+
/* Define to 1 to enable the experimental new pass manager by default */
95+
#cmakedefine01 LLVM_ENABLE_NEW_PASS_MANAGER
96+
9497
#endif

llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ write_cmake_config("Config") {
3434
"BACKEND_PACKAGE_STRING=LLVM ${llvm_version}git",
3535
"ENABLE_LINKER_BUILD_ID=",
3636
"ENABLE_X86_RELAX_RELOCATIONS=1",
37-
"ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=",
3837
"CLANG_ENABLE_OBJC_REWRITER=1", # FIXME: flag?
3938
"CLANG_SYSTEMZ_DEFAULT_ARCH=z10",
4039
]

0 commit comments

Comments
 (0)