Index: tree-vectorizer.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/Attic/tree-vectorizer.c,v retrieving revision 1.1.2.57 diff -c -3 -p -r1.1.2.57 tree-vectorizer.c *** tree-vectorizer.c 29 Jul 2004 22:54:22 -0000 1.1.2.57 --- tree-vectorizer.c 3 Aug 2004 20:52:41 -0000 *************** vect_create_index_for_array_ref (tree st *** 532,538 **** struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info); tree expr = DR_REF (dr); tree access_fn; ! int init_val, step_val; tree init, step; loop_vec_info loop_info = loop->aux; int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_info); --- 532,538 ---- struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info); tree expr = DR_REF (dr); tree access_fn; ! int init_val; tree init, step; loop_vec_info loop_info = loop->aux; int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_info); *************** vect_create_index_for_array_ref (tree st *** 578,584 **** /* Calculate the 'step' of the new index. FORNOW: always 1. */ - step_val = TREE_INT_CST_LOW (step); step = integer_one_node; create_iv (init, step, NULL_TREE, loop, bsi, false, --- 578,583 ---- *************** vect_init_vector (tree stmt, tree vector *** 875,885 **** --- 874,887 ---- tree vec_oprnd; edge pe; basic_block new_bb; + tree new_temp; new_var = vect_get_new_vect_var (vectype, vect_simple_var, "cst_"); add_referenced_tmp_var (new_var); init_stmt = build2 (MODIFY_EXPR, vectype, new_var, vector_var); + new_temp = make_ssa_name (new_var, init_stmt); + TREE_OPERAND (init_stmt, 0) = new_temp; pe = loop_preheader_edge (loop); new_bb = bsi_insert_on_edge_immediate (pe, init_stmt); *************** vectorize_loops (struct loops *loops) *** 4119,4124 **** --- 4121,4129 ---- loop_vec_info loop_vinfo; struct loop *loop = loops->parray[i]; + if (!loop) + continue; + flow_loop_scan (loop, LOOP_ALL); loop_vinfo = vect_analyze_loop (loop); *************** vectorize_loops (struct loops *loops) *** 4157,4163 **** for (i = 1; i < loops_num; i++) { struct loop *loop = loops->parray[i]; ! loop_vec_info loop_vinfo = loop->aux; destroy_loop_vec_info (loop_vinfo); loop->aux = NULL; } --- 4162,4171 ---- for (i = 1; i < loops_num; i++) { struct loop *loop = loops->parray[i]; ! loop_vec_info loop_vinfo; ! if (!loop) ! continue; ! loop_vinfo = loop->aux; destroy_loop_vec_info (loop_vinfo); loop->aux = NULL; }