Hi,
On Thu, Sep 22, 2011 at 04:24:47PM -0700, Xinliang David Li wrote:
ok for google branches.
(Did a little digging -- the remove pass is added because ipa-inline
did not do a good job updating the call graph so there might be some
inconsistency. However the affinity information needs to
Hi,
Martin,
thanks for the explanation.
I knew inliner did a good job of maintaining callgraph and profile
information, but did not know about removing dead edges etc.
This was fixed with introduction of virtual clones, where the edges are still
needed post inlining. We however do not
This patch preserves cgraph callee edges till pass_final if callgraph
edge profiles sections are requested. It also renames callgraph edge
profile sections to be .gnu.callgraph instead of .note.callgraph
Index: cgraphbuild.c
===
Forgot to mention the changes:
* cgraphbuild.c (remove_cgraph_callee_edges): Preserve callee edges if
callgraph profiles are needed.
* final.c (rest_of_handle_final): Rename .note.callgraph sections as
.gnu.callgraph sections.
* tree-optimize.c