[llvm-commits] [llvm] r167759 - in /llvm/trunk: include/llvm/PassManagers.h lib/VMCore/PassManager.cpp

Chris Lattner clattner at apple.com
Mon Nov 12 22:45:54 PST 2012


On Nov 12, 2012, at 7:10 PM, Chandler Carruth <chandlerc at google.com> wrote:
>> OTOH, the call to size() is inside a virtual function, and I don't think that any of the calls to it can be devirtualized. I'd expect the lack of inlining and the indirect call to be a lot slower than the arithmetic in size(). However, it looks like getNumContainedPasses() isn't overridden anywhere so maybe we should just make it non-virtual if it's popping up in profiles?
> 
> As I've also been looking at both compile time and the pass managers,
> I'd also love to know the rough scenario which causes this to show up
> in profiles so I have a better idea of what might be important to
> profile in making any changes here.

The two scenarios that the passmanager shows up in are:

1) scenario where you want to quickly jit stuff, so you cons up a module (usually small) then run it through the passmanager.  This pushes the initialization cleanup of the passmanager itself (and really wants a reusable passmanager).
2) a large module with tons of tiny functions (e.g. empty bodies).  This presses on the mechanics of running through the pass list.

-Chris



More information about the llvm-commits mailing list