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

Reply via email to