[Bug bootstrap/51346] [4.7 Regression] LTO bootstrap failed with bootstrap-profiled
dnovillo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Nov 30 21:06:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51346
Diego Novillo <dnovillo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #3 from Diego Novillo <dnovillo at gcc dot gnu.org> 2011-11-30 20:17:08 UTC ---
The reason we get into this ICE is because the call to cgraph_edge() has the
side effect of adding entries to e->caller->call_site_hash:
if (n > 100)
{
node->call_site_hash = htab_create_ggc (120, edge_hash, edge_eq, NULL);
for (e2 = node->callees; e2; e2 = e2->next_callee)
cgraph_add_edge_to_call_site_hash (e2);
for (e2 = node->indirect_calls; e2; e2 = e2->next_callee)
cgraph_add_edge_to_call_site_hash (e2);
}
When cgraph_edge is called with n > 100, the call to
cgraph_add_edge_to_call_site_hash asserts because e->call_stmt is already in
the hash table.
Honza, why is this a problem? The code is expecting to find the slot empty,
but I'm not sure why it expects that. Any pointers?
Thanks. Diego.
More information about the Gcc-bugs
mailing list