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

Chandler Carruth chandlerc at gmail.com
Thu Mar 5 16:17:20 PST 2015


On Thu, Mar 5, 2015 at 2:00 PM, Chandler Carruth <chandlerc at gmail.com>
wrote:

> On Wed, Mar 4, 2015 at 7:24 PM, Chandler Carruth <chandlerc at gmail.com>
> wrote:
>
>> 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.
>>
>
> Any updates here? I think i'm somewhat more worried about using pipeline
> in the name than having an overly general name, so "PassBuilder" seems the
> best to me, but only if we've actually gotten on the same page regarding
> whether this actually builds passes. (If I'm missing something here, then
> it is actually a misleading name and we need to fix that.)


Relaying from IRC, I checked with Hal and he seems fine to continue
pondering this and maybe change the name later as needed so I'll proceed
with this patch.

Thanks to all!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150305/1e1e730f/attachment.html>


More information about the llvm-commits mailing list