------- Comment #3 from irar at il dot ibm dot com 2010-09-01 09:06 ------- r163260 only made this BB vectorizable.
I checked lookup_stmt_eh_lp for the last stmt of the BB and EDGE_EH flags before and after vectorization (basic block SLP), and in both cases lookup_stmt_eh_lp returns 0 and there is an EH edge from the basic block. I also tried to add cleanup_eh pass after SLP. If is somewhere before pass_tree_loop_done, there is no ICE: Index: passes.c =================================================================== --- passes.c (revision 163538) +++ passes.c (working copy) @@ -925,6 +925,7 @@ init_optimization_passes (void) NEXT_PASS (pass_parallelize_loops); NEXT_PASS (pass_loop_prefetch); NEXT_PASS (pass_iv_optimize); + NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_tree_loop_done); } NEXT_PASS (pass_cse_reciprocals); If cleanup_eh is scheduled after tree_loop_done, there is ICE: Index: passes.c =================================================================== --- passes.c (revision 163538) +++ passes.c (working copy) @@ -926,6 +926,7 @@ init_optimization_passes (void) NEXT_PASS (pass_loop_prefetch); NEXT_PASS (pass_iv_optimize); NEXT_PASS (pass_tree_loop_done); + NEXT_PASS (pass_cleanup_eh); } NEXT_PASS (pass_cse_reciprocals); NEXT_PASS (pass_reassoc); -- irar at il dot ibm dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-09-01 09:06:19 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45470