Patchwork Speculative call support in the callgraph

login
register
mail settings
Submitter Jan Hubicka
Date Aug. 10, 2013, 9:54 a.m.
Message ID <20130810095427.GA613@kam.mff.cuni.cz>
Download mbox | patch
Permalink /patch/266190/
State New
Headers show

Comments

Jan Hubicka - Aug. 10, 2013, 9:54 a.m.
> 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.

OK, it reproduced for me on one of the testers.  I think the bug is that
cgraph edges are not cleared upon allocation and I did not set the newly introduced
flag:

I will commit this as obvious shortly.
> 
> Honza
> > 
> > -Andi

Patch

Index: cgraph.c
===================================================================
--- cgraph.c    (revision 201640)
+++ cgraph.c    (working copy)
@@ -873,6 +873,7 @@  cgraph_create_edge_1 (struct cgraph_node
 
   edge->indirect_info = NULL;
   edge->indirect_inlining_edge = 0;
+  edge->speculative = false;
 
   return edge;
 }