From d2d2e5ea480feb09dc0edeac2eb14310de74b372 Mon Sep 17 00:00:00 2001 From: Usman Nadeem Date: Wed, 8 Sep 2021 12:10:17 -0700 Subject: [clang][Driver] Update/cleanup LTO logic to ensure that the last lto argument is honored - Make flto an alias of flto=full. - Make foffload-lto an alias of foffload-lto=full. - Make flto_EQ_jobserver, flto_EQ_auto aliases of flto=full, since they are being treated as full lto right now. - Clean up the code for parseLTOMode and setLTOMode. - Replace uses of OPT_flto with OPT_flto_EQ since they alias now. Change-Id: Iea5338c20cb800b43529b20745e92600e2cfd2b1 --- clang/lib/Frontend/CompilerInvocation.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'clang/lib/Frontend/CompilerInvocation.cpp') diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 014595c..c23740fd 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1419,7 +1419,7 @@ void CompilerInvocation::GenerateCodeGenArgs( } if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) - GenerateArg(Args, OPT_flto, SA); + GenerateArg(Args, OPT_flto_EQ, "full", SA); if (Opts.PrepareForThinLTO) GenerateArg(Args, OPT_flto_EQ, "thin", SA); @@ -1706,9 +1706,10 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, } } - Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); + Opts.PrepareForLTO = false; Opts.PrepareForThinLTO = false; if (Arg *A = Args.getLastArg(OPT_flto_EQ)) { + Opts.PrepareForLTO = true; StringRef S = A->getValue(); if (S == "thin") Opts.PrepareForThinLTO = true; -- cgit v1.1