------- 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