> 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