diff options
author | Martin Storsjö <martin@martin.st> | 2024-01-10 22:57:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-10 22:57:59 +0200 |
commit | a08506e374f5938e30a9c13b61a697e8c0e12aa3 (patch) | |
tree | 8da5e8fd06964adc2b05c1441fb9e2185e1a80ee /lld/MinGW/Driver.cpp | |
parent | fb7fe49960ae053c92985f3376d85a15bbd10d1a (diff) | |
download | llvm-a08506e374f5938e30a9c13b61a697e8c0e12aa3.zip llvm-a08506e374f5938e30a9c13b61a697e8c0e12aa3.tar.gz llvm-a08506e374f5938e30a9c13b61a697e8c0e12aa3.tar.bz2 |
[LLD] [MinGW] Add support for more ThinLTO specific options (#77387)
This was missed when mass-adding support for other LTO options in
0b51e648307cf6c21c463d3e73e51c03aaa8c9e2.
Group the existing thinlto_cache_dir with these other options in a new
group, next to the other LTO options.
This skips adding the options --thinlto-emit-index-files and
--thinlto-single-module=, which don't seem to have corresponding options
on the lld-link level currently.
This should fix https://github.com/mstorsjo/llvm-mingw/issues/386.
Diffstat (limited to 'lld/MinGW/Driver.cpp')
-rw-r--r-- | lld/MinGW/Driver.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index 5ba1bf0..4752d92 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -270,8 +270,6 @@ bool link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS, add("-lldmap:" + StringRef(a->getValue())); if (auto *a = args.getLastArg(OPT_reproduce)) add("-reproduce:" + StringRef(a->getValue())); - if (auto *a = args.getLastArg(OPT_thinlto_cache_dir)) - add("-lldltocache:" + StringRef(a->getValue())); if (auto *a = args.getLastArg(OPT_file_alignment)) add("-filealign:" + StringRef(a->getValue())); if (auto *a = args.getLastArg(OPT_section_alignment)) @@ -440,8 +438,6 @@ bool link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS, if (auto *arg = args.getLastArg(OPT_plugin_opt_mcpu_eq)) add("-mllvm:-mcpu=" + StringRef(arg->getValue())); - if (auto *arg = args.getLastArg(OPT_thinlto_jobs_eq)) - add("-opt:lldltojobs=" + StringRef(arg->getValue())); if (auto *arg = args.getLastArg(OPT_lto_O)) add("-opt:lldlto=" + StringRef(arg->getValue())); if (auto *arg = args.getLastArg(OPT_lto_CGO)) @@ -453,6 +449,23 @@ bool link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS, if (auto *arg = args.getLastArg(OPT_lto_cs_profile_file)) add("-lto-cs-profile-file:" + StringRef(arg->getValue())); + if (auto *a = args.getLastArg(OPT_thinlto_cache_dir)) + add("-lldltocache:" + StringRef(a->getValue())); + if (auto *a = args.getLastArg(OPT_thinlto_cache_policy)) + add("-lldltocachepolicy:" + StringRef(a->getValue())); + if (args.hasArg(OPT_thinlto_emit_imports_files)) + add("-thinlto-emit-imports-files"); + if (args.hasArg(OPT_thinlto_index_only)) + add("-thinlto-index-only"); + if (auto *arg = args.getLastArg(OPT_thinlto_index_only_eq)) + add("-thinlto-index-only:" + StringRef(arg->getValue())); + if (auto *arg = args.getLastArg(OPT_thinlto_jobs_eq)) + add("-opt:lldltojobs=" + StringRef(arg->getValue())); + if (auto *arg = args.getLastArg(OPT_thinlto_object_suffix_replace_eq)) + add("-thinlto-object-suffix-replace:" + StringRef(arg->getValue())); + if (auto *arg = args.getLastArg(OPT_thinlto_prefix_replace_eq)) + add("-thinlto-prefix-replace:" + StringRef(arg->getValue())); + for (auto *a : args.filtered(OPT_plugin_opt_eq_minus)) add("-mllvm:-" + StringRef(a->getValue())); |