[PATCH] D52227: LLVM: Expose SimplifyCFGPass (as used in PassBuilder::buildModuleOptimizationPipeline) in PassRegistry.def

George van den Driessche via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 23 17:48:04 PDT 2018


georgevdd added a comment.

1. Some backstory from my end:

  I am interested in exploring the phase ordering problem. So my work is dependent on being able to construct pipelines using their regular components, but in a different order from what (say) default<https://reviews.llvm.org/owners/package/3/> would produce. This is //almost// doable using PassBuilder, but not if its hard-wired subpipeline functions use constructor parameters that are not represented in PassRegistry.def.

  Meanwhile, @chandlerc expressed some intention for the new PassManager framework to be able to print diagnostics representing the structure of a pipeline, the same way that the old PassManager could (with -debug-pass, IIRC). I have some not-quite-finished work to achieve that, but it too depends on the DSL that PassBuilder accepts being able to represent the passes that actually occur in the pipelines that it builds.

2. With regard to your specific remarks:
  - Yes, this patch intends not to change the behavior of any existing pass pipelines, including specifically the default pass manager;
  - Yes, it's simply trying to give a usable name to the bundle of options that occurs in practice in the default optimization pipeline;
  - Yes, breaking SimplifyCFG into smaller named parts as suggested in the discussion <https://reviews.llvm.org/D38566> to which you refer would also solve the problem, but I share your ignorance about how difficult that would be;
  - I am keen to supply appropriate tests but, as a newcomer, probably a poor judge of what appropriate looks like.

More generally, does it seem to you reasonable to aim to support the ability to represent exactly the default pipelines using the names of their elements? Or is the overall direction of development away from that?


Repository:
  rL LLVM

https://reviews.llvm.org/D52227





More information about the llvm-commits mailing list