[llvm-dev] Status of new pass manager work

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Thu May 5 15:24:08 PDT 2016

Thank you for the update and for all the work on this!  Having the new 
pass manager in place will enable a lot of powerful follow on work.  
This type of major rearchitecting is often a thankless job, but it's 
very necessary.  I am really looking forward to this being done and on 
by default.


On 05/05/2016 01:29 AM, Chandler Carruth wrote:
> Greetings folks,
> I just wanted to post a brief update on the status of the new pass 
> manager. Philip asked me to do this at last month's social and Life 
> intervened, but he's still got a great point, so I wanted to get it 
> out there with one day to spare before he nagged me again. =D
> I'll keep it very brief and high level. If folks have questions about 
> anything, happy to dig into it.
> - The core framework is there. It works, and we even have CGSCC passes 
> using both Module and Function analyses with caching and everything. 
> Yay! We also have initial loop pass infrastructure thanks to Justin! Yay!
> - The biggest missing piece of infrastructure IMO is communicating 
> invalidation information between two parts of the pass manager itself 
> when they are operating over the results of an analysis. Both the loop 
> passes and the CGSCC passes really need this. I'm currently working on 
> this and hope to finish the first cut at CGSCC stuff for this in a few 
> days.
> - The second biggest missing piece is a good system for managing sets 
> of related analyses for the purpose of invalidation. Justin and I have 
> discussed using designated enums that form sets, but there hasn't been 
> a lot of concrete progress here.
> - Most of the rest is porting passes. Lots of folks have started to 
> help here which is great, but there is still likely room for help on 
> this front. Much of this is independent of the missing infrastructure 
> fortunately. Some good examples are GVN, SROA, and the LoopInfo 
> passes. Fair warning, CGSCC passes are *much* harder to port than 
> others and interact with some of the missing infrastructure. Other 
> passes are much easier IMO.
> There may be more that I'm missing, but hopefully this helps people 
> have an idea of where things are.
> -Chandler

More information about the llvm-dev mailing list