------- Comment #2 from rguenth at gcc dot gnu dot org 2007-12-12 20:00 ------- Confirmed. Breaks with -O -ftree-vectorize -msse2 because we don't have a cost for
(gdb) call debug_generic_expr (stmt) th_lsm.41_62 = th.6_55 (gdb) print *stmt_info $2 = {type = undef_vec_info_type, stmt = 0xb7cfbb98, loop_vinfo = 0x8c640f0, relevant = vect_unused_in_loop, live = 1 '\001', vectype = 0xb7cd3750, vectorized_stmt = 0x0, data_ref_info = 0x0, dr_base_address = 0x0, dr_init = 0x0, dr_offset = 0x0, dr_step = 0x0, dr_aligned_to = 0x0, in_pattern_p = 0 '\0', related_stmt = 0x0, same_align_refs = 0x8c5f130, def_type = vect_loop_def, first_dr = 0x0, next_dr = 0x0, size = 0, store_count = 0, gap = 0, same_dr_stmt = 0x0, read_write_dep = 0 '\0', cost = {outside_of_loop = 0, inside_of_loop = 0}, slp_type = loop_vect} (gdb) up #2 0x086a46d8 in vect_estimate_min_profitable_iters (loop_vinfo=0x8c640f0) at /home/richard/src/trunk/gcc/tree-vect-transform.c:206 199 for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si)) 200 { 201 tree stmt = bsi_stmt (si); 202 stmt_vec_info stmt_info = vinfo_for_stmt (stmt); 203 if (!STMT_VINFO_RELEVANT_P (stmt_info) 204 && !STMT_VINFO_LIVE_P (stmt_info)) 205 continue; 206 scalar_single_iter_cost += cost_for_stmt (stmt) * factor; so, the stmt is unused but live. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC target triplet|i386-apple-darwin8.11.1 |i?86-*-* Last reconfirmed|0000-00-00 00:00:00 |2007-12-12 20:00:40 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34445