This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/48585] [4.7 Regression] 483.xalancbmk in SPEC CPU 2006 failed to build
- From: "hubicka at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 21 Apr 2011 11:08:10 +0000
- Subject: [Bug middle-end/48585] [4.7 Regression] 483.xalancbmk in SPEC CPU 2006 failed to build
- Auto-submitted: auto-generated
- References: <bug-48585-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48585
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-04-21 11:07:03 UTC ---
Hmm, I am not sure I follow here. So the bug seems to be that
1) ipa-cp produces a clone
2) somehow after WPA we inline the original function, not the clone
right?
How this can lead to more direct calls? Is the call represented as call to
clone in the callgraph? If not, I guess ipa-cp produced clone but kept
original copy around and we are inlining real cal to original copy. This can
happen.
If callgraph has call to clone properly represented, but somehow we end up
inlining original, I would expect the original to have monotonously fewer
direct calls, so we should have the call destination we discovered during
inlining around...
Only case i can think this might legally happen is inlining producing direct
call via devirtualization from folding. In this case cgraph don't see the
posibility and we need to add the cgraph node (we already checked that the
destination is not static function in other unit)
Honza