[llvm-dev] Intended behavior of CGSCC pass manager.

Sean Silva via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 20 08:43:28 PDT 2016


On Sun, Jun 19, 2016 at 12:01 AM, Sanjoy Das <sanjoy at playingwithpointers.com
> wrote:

> Hi David,
>
> Xinliang David Li wrote:
> >>  I believe it is primarily used for ordering the visitation of
> CallSCC's (i.e. SCC's in the "call graph").
> > This is what it can do -- but what benefit does it provide?
>
> One benefit is that once you get to a function F that constructs an
> instance of a class with virtual functions and then calls a virtual
> function on the instance, then the virtual function being called and
> the constructor will have been maximally simplified (F refs the
> constructor, and the constructor refs all the virtual functions), and
> you're more likely to inline the constructor and devirtualize the
> call.


That is true for a graph like http://reviews.llvm.org/F2073104 but not one
like http://reviews.llvm.org/F2073479
That is, there is no real guarantee.


>   I don't have any real data to back up that this will materially
> help, though.


And we haven't had an RFC for any of this...

-- Sean Silva


>
>
> -- Sanjoy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160620/1248956a/attachment.html>


More information about the llvm-dev mailing list