Skip to content

Commit ed4e6e0

Browse files
committed
[cmake] Remove LLVM_ENABLE_NEW_PASS_MANAGER cmake option
Or rather, error out if it is set to something other than ON. This removes the ability to enable the legacy pass manager by default, but does not remove the ability to explicitly enable it through various flags like -flegacy-pass-manager or -enable-new-pm=0. I checked, and our test suite definitely doesn't pass with LLVM_ENABLE_NEW_PASS_MANAGER=OFF anymore. Differential Revision: https://reviews.llvm.org/D123126
1 parent b0e2ffe commit ed4e6e0

File tree

24 files changed

+33
-67
lines changed

24 files changed

+33
-67
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1933,7 +1933,7 @@ def fglobal_isel : Flag<["-"], "fglobal-isel">, Group<f_clang_Group>,
19331933
def fexperimental_isel : Flag<["-"], "fexperimental-isel">, Group<f_clang_Group>,
19341934
Alias<fglobal_isel>;
19351935
defm legacy_pass_manager : BoolOption<"f", "legacy-pass-manager",
1936-
CodeGenOpts<"LegacyPassManager">, Default<"!static_cast<unsigned>(LLVM_ENABLE_NEW_PASS_MANAGER)">,
1936+
CodeGenOpts<"LegacyPassManager">, DefaultFalse,
19371937
PosFlag<SetTrue, [], "Use the legacy pass manager in LLVM (deprecated, to be removed in a future release)">,
19381938
NegFlag<SetFalse, [], "Use the new pass manager in LLVM">,
19391939
BothFlags<[CC1Option]>>, Group<f_clang_Group>;

clang/test/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ llvm_canonicalize_cmake_booleans(
99
CLANG_PLUGIN_SUPPORT
1010
CLANG_SPAWN_CC1
1111
ENABLE_BACKTRACES
12-
LLVM_ENABLE_NEW_PASS_MANAGER
1312
LLVM_ENABLE_ZLIB
1413
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR
1514
LLVM_ENABLE_THREADS

clang/test/lit.cfg.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ def have_host_jit_support():
140140
if platform.system() not in ['FreeBSD']:
141141
config.available_features.add('crash-recovery')
142142

143-
# Support for new pass manager.
144-
if config.enable_experimental_new_pass_manager:
145-
config.available_features.add('experimental-new-pass-manager')
146-
147143
# ANSI escape sequences in non-dumb terminal
148144
if platform.system() not in ['Windows']:
149145
config.available_features.add('ansi-escape-sequences')

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ config.clang_staticanalyzer_z3 = @LLVM_WITH_Z3@
2929
config.clang_examples = @CLANG_BUILD_EXAMPLES@
3030
config.enable_shared = @ENABLE_SHARED@
3131
config.enable_backtrace = @ENABLE_BACKTRACES@
32-
config.enable_experimental_new_pass_manager = @LLVM_ENABLE_NEW_PASS_MANAGER@
3332
config.enable_threads = @LLVM_ENABLE_THREADS@
3433
config.host_arch = "@HOST_ARCH@"
3534
config.python_executable = "@Python3_EXECUTABLE@"

clang/unittests/Frontend/CompilerInvocationTest.cpp

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -259,49 +259,38 @@ TEST_F(CommandLineTest, BoolOptionDefaultFalsePresentNegReset) {
259259
// The flag with positive spelling can set the keypath to true.
260260
// The flag with negative spelling can set the keypath to false.
261261

262-
static constexpr unsigned PassManagerDefault =
263-
!static_cast<unsigned>(LLVM_ENABLE_NEW_PASS_MANAGER);
264-
265-
static constexpr const char *PassManagerResetByFlag =
266-
LLVM_ENABLE_NEW_PASS_MANAGER ? "-fno-legacy-pass-manager"
267-
: "-flegacy-pass-manager";
268-
269-
static constexpr const char *PassManagerChangedByFlag =
270-
LLVM_ENABLE_NEW_PASS_MANAGER ? "-flegacy-pass-manager"
271-
: "-fno-legacy-pass-manager";
272-
273262
TEST_F(CommandLineTest, BoolOptionDefaultArbitraryTwoFlagsPresentNone) {
274263
const char *Args = {""};
275264

276265
ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags));
277-
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, PassManagerDefault);
266+
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, false);
278267

279268
Invocation.generateCC1CommandLine(GeneratedArgs, *this);
280269

281-
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq(PassManagerResetByFlag))));
282-
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq(PassManagerChangedByFlag))));
270+
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq("-fno-legacy-pass-manager"))));
271+
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq("-flegacy-pass-manager"))));
283272
}
284273

285274
TEST_F(CommandLineTest, BoolOptionDefaultArbitraryTwoFlagsPresentChange) {
286-
const char *Args[] = {PassManagerChangedByFlag};
275+
const char *Args[] = {"-flegacy-pass-manager"};
287276

288277
ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags));
289-
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, !PassManagerDefault);
278+
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, true);
290279

291280
Invocation.generateCC1CommandLine(GeneratedArgs, *this);
292-
ASSERT_THAT(GeneratedArgs, Contains(StrEq(PassManagerChangedByFlag)));
293-
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq(PassManagerResetByFlag))));
281+
ASSERT_THAT(GeneratedArgs, Contains(StrEq("-flegacy-pass-manager")));
282+
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq("-fno-legacy-pass-manager"))));
294283
}
295284

296285
TEST_F(CommandLineTest, BoolOptionDefaultArbitraryTwoFlagsPresentReset) {
297-
const char *Args[] = {PassManagerResetByFlag};
286+
const char *Args[] = {"-fno-legacy-pass-manager"};
298287

299288
ASSERT_TRUE(CompilerInvocation::CreateFromArgs(Invocation, Args, *Diags));
300-
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, PassManagerDefault);
289+
ASSERT_EQ(Invocation.getCodeGenOpts().LegacyPassManager, false);
301290

302291
Invocation.generateCC1CommandLine(GeneratedArgs, *this);
303-
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq(PassManagerResetByFlag))));
304-
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq(PassManagerChangedByFlag))));
292+
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq("-fno-legacy-pass-manager"))));
293+
ASSERT_THAT(GeneratedArgs, Not(Contains(StrEq("-flegacy-pass-manager"))));
305294
}
306295

307296
// Boolean option that gets the CC1Option flag from a let statement (which

lld/COFF/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1679,7 +1679,7 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
16791679
if (args.hasArg(OPT_profile))
16801680
icfLevel = ICFLevel::None;
16811681
unsigned tailMerge = 1;
1682-
bool ltoNewPM = LLVM_ENABLE_NEW_PASS_MANAGER;
1682+
bool ltoNewPM = true;
16831683
bool ltoDebugPM = false;
16841684
for (auto *arg : args.filtered(OPT_opt)) {
16851685
std::string str = StringRef(arg->getValue()).lower();

lld/ELF/Driver.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,9 +1102,8 @@ static void readConfigs(opt::InputArgList &args) {
11021102
OPT_no_lto_pgo_warn_mismatch, true);
11031103
config->ltoDebugPassManager = args.hasArg(OPT_lto_debug_pass_manager);
11041104
config->ltoEmitAsm = args.hasArg(OPT_lto_emit_asm);
1105-
config->ltoNewPassManager =
1106-
args.hasFlag(OPT_no_lto_legacy_pass_manager, OPT_lto_legacy_pass_manager,
1107-
LLVM_ENABLE_NEW_PASS_MANAGER);
1105+
config->ltoNewPassManager = args.hasFlag(OPT_no_lto_legacy_pass_manager,
1106+
OPT_lto_legacy_pass_manager, true);
11081107
config->ltoNewPmPasses = args.getLastArgValue(OPT_lto_newpm_passes);
11091108
config->ltoWholeProgramVisibility =
11101109
args.hasFlag(OPT_lto_whole_program_visibility,

lld/MachO/Config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct Configuration {
107107
bool implicitDylibs = false;
108108
bool isPic = false;
109109
bool headerPadMaxInstallNames = false;
110-
bool ltoNewPassManager = LLVM_ENABLE_NEW_PASS_MANAGER;
110+
bool ltoNewPassManager = true;
111111
bool markDeadStrippableDylib = false;
112112
bool printDylibSearch = false;
113113
bool printEachFile = false;

lld/MachO/Driver.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,9 +1222,8 @@ bool macho::link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS,
12221222
config->umbrella = arg->getValue();
12231223
}
12241224
config->ltoObjPath = args.getLastArgValue(OPT_object_path_lto);
1225-
config->ltoNewPassManager =
1226-
args.hasFlag(OPT_no_lto_legacy_pass_manager, OPT_lto_legacy_pass_manager,
1227-
LLVM_ENABLE_NEW_PASS_MANAGER);
1225+
config->ltoNewPassManager = args.hasFlag(OPT_no_lto_legacy_pass_manager,
1226+
OPT_lto_legacy_pass_manager, true);
12281227
config->ltoo = args::getInteger(args, OPT_lto_O, 2);
12291228
if (config->ltoo > 3)
12301229
error("--lto-O: invalid optimization level: " + Twine(config->ltoo));

lld/wasm/Driver.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,8 @@ static void readConfigs(opt::InputArgList &args) {
365365
config->importUndefined = args.hasArg(OPT_import_undefined);
366366
config->ltoo = args::getInteger(args, OPT_lto_O, 2);
367367
config->ltoPartitions = args::getInteger(args, OPT_lto_partitions, 1);
368-
config->ltoNewPassManager =
369-
args.hasFlag(OPT_no_lto_legacy_pass_manager, OPT_lto_legacy_pass_manager,
370-
LLVM_ENABLE_NEW_PASS_MANAGER);
368+
config->ltoNewPassManager = args.hasFlag(OPT_no_lto_legacy_pass_manager,
369+
OPT_lto_legacy_pass_manager, true);
371370
config->ltoDebugPassManager = args.hasArg(OPT_lto_debug_pass_manager);
372371
config->mapFile = args.getLastArgValue(OPT_Map);
373372
config->optimize = args::getInteger(args, OPT_O, 1);

0 commit comments

Comments
 (0)