]> granicus.if.org Git - clang/commitdiff
CMake option to allow enabling experimental new pass manager by default
authorPetr Hosek <phosek@chromium.org>
Fri, 6 Apr 2018 00:53:00 +0000 (00:53 +0000)
committerPetr Hosek <phosek@chromium.org>
Fri, 6 Apr 2018 00:53:00 +0000 (00:53 +0000)
This CMake flag allows setting the default value for the
-f[no]-experimental-new-pass-manager flag.

Differential Revision: https://reviews.llvm.org/D44330

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@329366 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
include/clang/Config/config.h.cmake
lib/Driver/ToolChains/CommonArgs.cpp
lib/Frontend/CompilerInvocation.cpp

index 0aec29960eeed489bafc42ac1c1904fe5f28a816..fc7a3889a7c19c9fd57edd212104c01236a02ecf 100644 (file)
@@ -212,6 +212,9 @@ set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
 set(ENABLE_X86_RELAX_RELOCATIONS OFF CACHE BOOL
     "enable x86 relax relocations by default")
 
+set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER FALSE CACHE BOOL
+  "Enable the experimental new pass manager by default.")
+
 # TODO: verify the values against LangStandards.def?
 set(CLANG_DEFAULT_STD_C "" CACHE STRING
   "Default standard to use for C/ObjC code (IDENT from LangStandards.def, empty for platform default)")
index 5822619a3715eed6293a563f925ae5a8666557f5..1d624450b9d905bed7ba2d2e9c7c41c922971e37 100644 (file)
@@ -72,6 +72,9 @@
 /* enable x86 relax relocations by default */
 #cmakedefine01 ENABLE_X86_RELAX_RELOCATIONS
 
+/* Enable the experimental new pass manager by default */
+#cmakedefine01 ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER
+
 /* Enable each functionality of modules */
 #cmakedefine01 CLANG_ENABLE_ARCMT
 #cmakedefine01 CLANG_ENABLE_OBJC_REWRITER
index 22263c8746ca032355877f85f65f2c0d1ee93659..fc7bb78a97b44643744e1325ace1d3ab599c37a9 100644 (file)
@@ -455,7 +455,7 @@ void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
   // Need this flag to turn on new pass manager via Gold plugin.
   if (Args.hasFlag(options::OPT_fexperimental_new_pass_manager,
                    options::OPT_fno_experimental_new_pass_manager,
-                   /* Default */ false)) {
+                   /* Default */ ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER)) {
     CmdArgs.push_back("-plugin-opt=new-pass-manager");
   }
 
index 45546ac3bc795b31484d78a37913b0c6df003ef3..1a3b67f096831075f130444afd9290dcd2ff50b6 100644 (file)
@@ -526,7 +526,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
 
   Opts.ExperimentalNewPassManager = Args.hasFlag(
       OPT_fexperimental_new_pass_manager, OPT_fno_experimental_new_pass_manager,
-      /* Default */ false);
+      /* Default */ ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER);
 
   Opts.DebugPassManager =
       Args.hasFlag(OPT_fdebug_pass_manager, OPT_fno_debug_pass_manager,