aboutsummaryrefslogtreecommitdiff
path: root/lld/MinGW/Driver.cpp
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2024-01-10 22:57:59 +0200
committerGitHub <noreply@github.com>2024-01-10 22:57:59 +0200
commita08506e374f5938e30a9c13b61a697e8c0e12aa3 (patch)
tree8da5e8fd06964adc2b05c1441fb9e2185e1a80ee /lld/MinGW/Driver.cpp
parentfb7fe49960ae053c92985f3376d85a15bbd10d1a (diff)
downloadllvm-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.cpp21
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()));