On 23/11/15 09:43, Richard Biener wrote:
On Fri, 20 Nov 2015, Alan Lawrence wrote:
...the asserts
you suggested in (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D68117#c27)...
>>
So I have to ask, how sure are you that those assertions are(/should
be!) "correct"? :)
Ideally they should be correct but they happen to be not (and I think
the intent was that this should be harmless). Basically I tried
to assert that nobody creates stale edge redirect data that is not
later consumed or cleared. Happens to be too optimistic :/
Maybe so, but it looks like the edge_var_redirect_map is still suspect here. On
the ~~28th call to loop_version, from tree_unswitch_loop, the call to
lv_flush_pending_stmts executes (tree-cfg.c flush_pending_stmts):
def = redirect_edge_var_map_def (vm);
add_phi_arg (phi, def, e, redirect_edge_var_map_location(vm));
and BLOCK_LOCATION (redirect_edge_var_map_location(vm)) is
<<invalid tree code> 0x7fb7704a80 side-effects addressable asm_written used
protected static visited tree_0 tree_2 tree_5>
so yeah, next question, how'd that get there...
A.