On Wed, Oct 13, 2021 at 7:54 PM Erick Ochoa via Gcc <gcc@gcc.gnu.org> wrote:
>
> Hi,
>
> My current understanding of LTO is that the callgraph is very dynamic
> (i.e., optimizations might add or remove cgraph_nodes). A while back I
> encountered an issue where I couldn't print the cgraph_node::name of a
> function during the execute stage in LTO. I found that the only thing
> different was that these cgraph_nodes had a prevailing_p () returning
> false. There's only a few other places in the GCC sources that look at
> prevailing_p (ipa-fnsummary.c and ipa-prop.c) and both of them seem to
> drop information if the cgraph_node is not prevailing.
>
> I took this as guidance and in my optimization I dropped information
> from non-prevailing cgraph_nodes. (I figured out it must be something
> similar to the remove cgraph_hooks.) However, I am now revisiting
> whether this interpretation was correct or not. Can someone tell me
> what does cgraph_node::prevailing_p actually means?
>
> Also, is there a way to code an LTO test where a specific
> cgraph_node's prevailing_p returns false? That way I could probably
> verify the correctness of my analysis in the presence of
> non-prevailing_p cgraph_nodes.

Try a C++ template instantiation used from two TUs you link together.

Richard.

>
> Thanks!

Reply via email to