> 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 <hubi...@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

Reply via email to