[PATCH] D28996: [PM] Flesh out the new pm LTO pipeline

Davide Italiano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 22 17:56:09 PST 2017


davide added inline comments.


================
Comment at: lib/Passes/PassBuilder.cpp:553
+  MPM.addPass(GlobalDCEPass());
+
+  // Force any function attributes we want the rest of the pipeline to observe.
----------------
mehdi_amini wrote:
> Alias analyses are added one layer above IIRC?
If you mean, in the caller of `buildLTODefaultPipeline`, then answer is yes (see my other patch for `lib/LTO`.


================
Comment at: lib/Passes/PassBuilder.cpp:575
+  // Small CGSCC pipeline to run PostOrderFunctionAttr pass.
+  CGSCCPassManager PostOrderCGPipeline(DebugLogging);
+
----------------
mehdi_amini wrote:
> This seems dead?
Yes, nice catch. I originally created this one as I thought we were running multiple CGSCC passes, but it turns out we just run `PostOrderFunctionAttrs` so that can be folded into the only argument of `createModuleToPostOrderCGSCCPassAdaptor()`.


================
Comment at: lib/Passes/PassBuilder.cpp:619
+  MPM.addPass(createModuleToPostOrderCGSCCPassAdaptor(InlinerPass()));
 
+  // Optimize globals again after we ran the inliner.
----------------
mehdi_amini wrote:
> It seems that there is "PruneEH" in the legacy PM here?
We used to. But it wasn't ported to the new PM and Chandler is not entirely convinced it's worth running this anymore (see the comment in the perModulePipeline). 
Happy to duplicate the comment here, or add a FIXME.
Side note: I have no strong opinion whether we should run the pass or not.


Repository:
  rL LLVM

https://reviews.llvm.org/D28996





More information about the llvm-commits mailing list