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.

Reply via email to