<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 4, 2015 at 7:19 PM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="">> On Wed, Mar 4, 2015 at 6:58 PM, Hal Finkel < <a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a> > wrote:<br>
><br>
> > A little verbose, but how about something like PassPipelineBuilder?<br>
> > It isn't just building pipelines though. It also builds analysis<br>
> > passes in order to register them with the analysis manager.<br>
><br>
> Fair enough, but is that just the analysis pipeline?<br>
> It's not really a pipeline? Things don't run through it. It just<br>
> registers available analyses that are then run on-demand.<br>
<br>
</div></div>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?</blockquote></div><br></div><div class="gmail_extra">Errr, no, it really is building passes. And it *doesn't* execute or evaluate anything.</div><div class="gmail_extra"><br></div><div class="gmail_extra">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.</div><div class="gmail_extra"><br></div><div class="gmail_extra">It isn't even establishing some kind of specific or necessary ordering for passes. The orderings are primarily a function of the input string.</div></div>