[Bug tree-optimization/47738] ICE: verify_ssa failed: no immediate_use list with -O3 -fno-tree-vectorize
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 16 12:52:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47738
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rakdver at gcc dot gnu.org
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-02-16 12:32:43 UTC ---
We are removing the definition of D.2738_12 in remove_stmt but the PHI
use which was created by tree_transform_and_unroll_loop is not in the
list of stmts to be removed. It is created by
PHI copying of tree_transform_and_unroll_loop
phi_rest = create_phi_node (new_init, rest);
SSA_NAME_DEF_STMT (new_init) = phi_rest;
add_phi_arg (phi_rest, init, precond_edge, UNKNOWN_LOCATION);
add_phi_arg (phi_rest, next, new_exit, UNKNOWN_LOCATION);
SET_USE (op, new_init);
}
remove_path (exit);
>From tree_transform_and_unroll_loop we call execute_pred_commoning_cbck
/* Transform the loop. */
if (transform)
(*transform) (loop, data);
which also does the stmt removal, then we verify SSA form in
ok = gimple_duplicate_loop_to_header_edge
(loop, loop_latch_edge (loop), factor - 1,
wont_exit, new_exit, &to_remove, DLTHE_FLAG_UPDATE_FREQ);
which fails.
I wonder if the simplest fix is to kill that stmt removal code as it looks
like unconditionally removing the loads isn't going to work for the
peeled iterations.
Zdenek?
More information about the Gcc-bugs
mailing list