From 4951c3fd4cf321e46d44f08b01b3e07476d27de2 Mon Sep 17 00:00:00 2001 From: Dorit Naishlos Date: Sun, 14 Nov 2004 18:25:33 +0000 Subject: [PATCH] re PR tree-optimization/18425 (ICE in vector.tcc when -ftree-vectorize enabled) 2004-11-14 Dorit Naishlos Andrew Pinski PR tree-opt/18425 * tree-vectorize.c (vect_build_loop_niters): Do not insert NULL into the instruction stream. Initialize new_bb to NULL. (vect_update_ivs_after_vectorizer): Likewise. (vect_gen_niters_for_prolog_loop): Likewise. Co-Authored-By: Andrew Pinski From-SVN: r90625 --- gcc/ChangeLog | 9 +++++++++ gcc/tree-vectorizer.c | 8 +++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 285c1beff07..601a1364f72 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-11-14 Dorit Naishlos + Andrew Pinski + + PR tree-opt/18425 + * tree-vectorize.c (vect_build_loop_niters): Do not insert + NULL into the instruction stream. Initialize new_bb to NULL. + (vect_update_ivs_after_vectorizer): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + 2004-11-14 Zdenek Dvorak PR tree-optimization/18431 diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index e1095f579be..e0133024255 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -2684,7 +2684,7 @@ vect_build_loop_niters (loop_vec_info loop_vinfo) { tree ni_name, stmt, var; edge pe; - basic_block new_bb; + basic_block new_bb = NULL; struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); tree ni = unshare_expr (LOOP_VINFO_NITERS(loop_vinfo)); @@ -2702,7 +2702,8 @@ vect_build_loop_niters (loop_vec_info loop_vinfo) ni_name = force_gimple_operand (ni, &stmt, false, var); pe = loop_preheader_edge (loop); - new_bb = bsi_insert_on_edge_immediate (pe, stmt); + if (stmt) + new_bb = bsi_insert_on_edge_immediate (pe, stmt); if (new_bb) add_bb_to_loop (new_bb, EDGE_PRED (new_bb, 0)->src->loop_father); @@ -3115,7 +3116,8 @@ vect_gen_niters_for_prolog_loop (loop_vec_info loop_vinfo, tree niters) /* Insert stmt on loop preheader edge. */ pe = loop_preheader_edge (loop); - new_bb = bsi_insert_on_edge_immediate (pe, stmt); + if (stmt) + new_bb = bsi_insert_on_edge_immediate (pe, stmt); if (new_bb) add_bb_to_loop (new_bb, EDGE_PRED (new_bb, 0)->src->loop_father); -- 2.30.2