[LLVMdev] LLVM Inliner

Xinliang David Li xinliangli at gmail.com
Mon Nov 29 08:30:23 PST 2010

On Mon, Nov 29, 2010 at 1:17 AM, Duncan Sands <baldrick at free.fr> wrote:

> Hi David,
> > Interesting -- LLVM does perform on the fly cleanups during inlining
> > transformation -- this will make summary update precise. One thing I
> notice from
> > the debug pass dump is that the 'deduce function attribute' pass happens
> before
> > the clean up -- Is it intended?
> you are correct.  This is due to a limitation of the pass manager: it would
> clearly be better to run the function attributes pass after the
> per-function
> passes that follow the inliner, but currently if you try what happens is
> that
> first the inliner and on the fly cleanups get run on every function, and
> only
> when they have finished the function attributes pass gets run on every
> function.  That means that function attributes of callees will not have
> been
> calculated when the inliner (and the subsequent function passes) process a
> function, which is bad.  I think the pass manager should be fixed to not do
> this, at which point the function attributes pass could be moved later.

So bottom up traversal of the (scc node of) callgraph is not sufficient to
guarantee all callees are processed before the caller?



> Ciao,
> Duncan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101129/9f452e5a/attachment.html>

More information about the llvm-dev mailing list