This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Speculative call support in the callgraph


> On Sat, Aug 10, 2013 at 02:25:21AM +0200, Andi Kleen wrote:
> > On Sat, Aug 10, 2013 at 01:15:11AM +0200, Jan Hubicka wrote:
> > > > Jan Hubicka <hubicka@ucw.cz> writes:
> > > > 
> > > > > Hi,
> > > > > this patch adds support for speculative calls into callgraph.  The idea is that
> > > > > any IPA optimization that believes it knows likely target of an indirect call
> > > > > (currently I use it for cross-module indirect call profiling, but I expect
> > > > > Martin J. can easily add support for ipa-cp and I hope to add speculative
> > > > > devirtualization in foreseeable future since it should make difference for
> > > > > Firefox). Speculative call replaces indirect call
> > > > 
> > > > Patch appears to break boot strap on x86_64-linux 
> > > > (or maybe your other one)
> > > 
> > > How do you bootstrap? This should not be used w/o lto+profiledbootstrap and
> > > that seems to work for me...
> > 
> > Neither LTO nor profiled
> 
> My tree bootstraps again when I revert
> 
>  * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
>  * non-speculative
>    refs.
>  * cgraph.c (cgraph_update_edge_in_call_site_hash): New
> 		 * function.
> 
> svn+ssh://gcc.gnu.org/svn/gcc/trunk@201632
> 
> (and also the later patch)

This is really strange. The speculative edges should not be created here at all.
So perhaps some uninitialized memory access crept in :(
It would help if you try to track how the ->speculative bit appears for you
in the loop in cgraph_rebuild_references.  I will try to reproduce your setup now.

Honza
> 
> -Andi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]