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!