[clang] [flang] [flang][Driver] Enables lto-partitions and fat-lto-object. (PR #158125)
Abid Qadeer via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 17 02:51:33 PDT 2025
================
@@ -1494,8 +1484,35 @@ static bool parseLinkerOptionsArgs(CompilerInvocation &invoc,
return false;
}
- invoc.getCodeGenOpts().DependentLibs =
+ opts.DependentLibs =
args.getAllArgValues(clang::driver::options::OPT_dependent_lib);
+
+ // -flto=full/thin option.
+ if (const llvm::opt::Arg *a =
+ args.getLastArg(clang::driver::options::OPT_flto_EQ)) {
+ llvm::StringRef s = a->getValue();
+ assert((s == "full" || s == "thin") && "Unknown LTO mode.");
+ if (s == "full")
+ opts.PrepareForFullLTO = true;
+ else
+ opts.PrepareForThinLTO = true;
+ }
+
+ // -ffat-lto-objects
+ if (const llvm::opt::Arg *arg =
+ args.getLastArg(clang::driver::options::OPT_ffat_lto_objects,
+ clang::driver::options::OPT_fno_fat_lto_objects)) {
+ opts.PrepareForFatLTO =
+ arg->getOption().matches(clang::driver::options::OPT_ffat_lto_objects);
+ if (opts.PrepareForFatLTO) {
+ assert(opts.PrepareForFullLTO || opts.PrepareForThinLTO);
+
+ if (!triple.isOSBinFormatELF()) {
+ diags.Report(clang::diag::err_drv_unsupported_opt_for_target)
+ << arg->getAsString(args) << triple.getTriple();
+ }
----------------
abidh wrote:
I think we can remove the Braces for this if.
https://github.com/llvm/llvm-project/pull/158125
More information about the cfe-commits
mailing list