@@ -190,6 +190,25 @@ void Flang::addCodegenOptions(const ArgList &Args,
190190    CmdArgs.push_back (" -fcoarray" 
191191}
192192
193+ void  Flang::addLTOOptions (const  ArgList &Args, ArgStringList &CmdArgs) const  {
194+   const  ToolChain &TC = getToolChain ();
195+   const  Driver &D = TC.getDriver ();
196+   DiagnosticsEngine &Diags = D.getDiags ();
197+   LTOKind LTOMode = D.getLTOMode ();
198+   //  LTO mode is parsed by the Clang driver library.
199+   assert (LTOMode != LTOK_Unknown && " Unknown LTO mode." 
200+   if  (LTOMode == LTOK_Full)
201+     CmdArgs.push_back (" -flto=full" 
202+   else  if  (LTOMode == LTOK_Thin) {
203+     Diags.Report (
204+         Diags.getCustomDiagID (DiagnosticsEngine::Warning,
205+                               " the option '-flto=thin' is a work in progress" 
206+     CmdArgs.push_back (" -flto=thin" 
207+   }
208+   Args.addAllArgs (CmdArgs, {options::OPT_ffat_lto_objects,
209+                             options::OPT_fno_fat_lto_objects});
210+ }
211+ 
193212void  Flang::addPicOptions (const  ArgList &Args, ArgStringList &CmdArgs) const  {
194213  //  ParsePICArgs parses -fPIC/-fPIE and their variants and returns a tuple of
195214  //  (RelocationModel, PICLevel, IsPIE).
@@ -829,7 +848,6 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
829848
830849  const  Driver &D = TC.getDriver ();
831850  ArgStringList CmdArgs;
832-   DiagnosticsEngine &Diags = D.getDiags ();
833851
834852  //  Invoke ourselves in -fc1 mode.
835853  CmdArgs.push_back (" -fc1" 
@@ -892,17 +910,7 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
892910
893911  handleColorDiagnosticsArgs (D, Args, CmdArgs);
894912
895-   //  LTO mode is parsed by the Clang driver library.
896-   LTOKind LTOMode = D.getLTOMode ();
897-   assert (LTOMode != LTOK_Unknown && " Unknown LTO mode." 
898-   if  (LTOMode == LTOK_Full)
899-     CmdArgs.push_back (" -flto=full" 
900-   else  if  (LTOMode == LTOK_Thin) {
901-     Diags.Report (
902-         Diags.getCustomDiagID (DiagnosticsEngine::Warning,
903-                               " the option '-flto=thin' is a work in progress" 
904-     CmdArgs.push_back (" -flto=thin" 
905-   }
913+   addLTOOptions (Args, CmdArgs);
906914
907915  //  -fPIC and related options.
908916  addPicOptions (Args, CmdArgs);
0 commit comments