[llvm] [clang] [clang][llvm][fatlto] Avoid cloning modules in FatLTO (PR #72180)

Paul Kirth via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 28 10:40:18 PST 2023


================
@@ -1530,14 +1530,11 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
 }
 
 ModulePassManager
-PassBuilder::buildFatLTODefaultPipeline(OptimizationLevel Level, bool ThinLTO,
-                                        bool EmitSummary) {
+PassBuilder::buildFatLTODefaultPipeline(OptimizationLevel Level) {
   ModulePassManager MPM;
-  MPM.addPass(EmbedBitcodePass(ThinLTO, EmitSummary,
-                               ThinLTO
-                                   ? buildThinLTOPreLinkDefaultPipeline(Level)
-                                   : buildLTOPreLinkDefaultPipeline(Level)));
-  MPM.addPass(buildPerModuleDefaultPipeline(Level));
+  MPM.addPass(buildThinLTOPreLinkDefaultPipeline(Level));
+  MPM.addPass(EmbedBitcodePass());
+  MPM.addPass(buildThinLTODefaultPipeline(Level, /*ImportSummary=*/nullptr));
----------------
ilovepi wrote:

Yeah, I'm not super happy with it, but based on the discussion from the initial patches, we'd need something that is close to make sure that all the various issues from optional passes like profiling, etc. were handled, correct? 

Otherwise, I guess we can sub in ModuleOptimization here? @teresajohnson do you think that would run into any trouble based on your concerns in https://reviews.llvm.org/D146776#4302238 and the subsequent discussion.

https://github.com/llvm/llvm-project/pull/72180


More information about the cfe-commits mailing list