[PATCH] [PM] Create a separate library for high-level pass management code.

Chandler Carruth chandlerc at gmail.com
Wed Mar 4 19:24:58 PST 2015

On Wed, Mar 4, 2015 at 7:19 PM, Hal Finkel <hfinkel at anl.gov> wrote:

> > On Wed, Mar 4, 2015 at 6:58 PM, Hal Finkel < hfinkel at anl.gov > wrote:
> >
> > > A little verbose, but how about something like PassPipelineBuilder?
> > > It isn't just building pipelines though. It also builds analysis
> > > passes in order to register them with the analysis manager.
> >
> > Fair enough, but is that just the analysis pipeline?
> > It's not really a pipeline? Things don't run through it. It just
> > registers available analyses that are then run on-demand.
> True. But I'm comfortable with saying that you have some 'transformation
> pipeline' builder, with which you also need to register analysis passes.
> The analysis passed don't actually do anything unless you have a transform
> regardless. FWIW, I'm not in love with the name, but I like it better than
> PassBuilder (since it does not really build passes) -- what it is really
> doing is building a pass work flow, or a pass DAG (and then executing /
> evaluating it). Maybe calling the object PassOrdering is better?

Errr, no, it really is building passes. And it *doesn't* execute or
evaluate anything.

It constructs pass objects, and passes them to either the 'register'
methods on an analysis manager or the 'add' methods on a pass manager. It
doesn't do anything other than construct the passes and put them into one
of the two managers.

It isn't even establishing some kind of specific or necessary ordering for
passes. The orderings are primarily a function of the input string.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150304/ea2b1520/attachment.html>

More information about the llvm-commits mailing list