[PATCH] D21462: [PM] Make the the new pass manageg support fully generic extra arguments to run methods, both for transform passes and analysis passes.

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 3 19:06:44 PDT 2016


chandlerc added a comment.

In https://reviews.llvm.org/D21462#505089, @silvas wrote:

> How do you plan to marshal the variadic arguments for analyses with a unified analysis manager for all IRUnit's (w/ dependency tracking)? That seems annoying.


You can see how I plan to use this with analysis managers in the next patch where I customize the CGSCC pass manager to handle mapping the extra arguments.

While it is unfortunate that we cannot use fully generic code in that case, it didn't seem like a significant burden and I suspect in some cases will be a necessary customization anyways in order to get the desired behavior.

> I should have some code for the unified analysis manager up today hopefully.


Ok, but I don't want to hold up progress waiting on a different design. In my opinion, it doesn't really make sense to pursue both of these directions concurrently in tree because of how much overlap they have and the fact that they seem likely to hold each other up.

I understand that you would prefer the design you are pursuing, but unless you have really serious concerns with *this* design that you can express, or there is widespread consensus that we should stop pursuing this design, I'd like to make progress.

> I hear your argument (IIRC we discussed this at a social) about back pointers being somewhat annoying, but the ability to use just a `void*` to represent the information passed to an analysis makes it much easier to have a unified analysis manager.


I don't think I understand the connection you see between up pointers and using a 'void*' to represent the information passed to an analysis. Can you re-explain this? Sorry if it just isn't clicking for me....

That said, in general I would like to not sacrifice type safety because of concerns around mapping arguments from one interface to another though.


https://reviews.llvm.org/D21462





More information about the llvm-commits mailing list