aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.c
diff options
context:
space:
mode:
authorDorit Naishlos <dorit@il.ibm.com>2004-11-14 18:25:33 +0000
committerDorit Nuzman <dorit@gcc.gnu.org>2004-11-14 18:25:33 +0000
commit4951c3fd4cf321e46d44f08b01b3e07476d27de2 (patch)
tree764fd71b6c4ca088f3c911386d45d5b5575c5818 /gcc/tree-vectorizer.c
parent9beeb4ee4c1bf42a2d3a66d75d250cf20c9c1f9f (diff)
downloadgcc-4951c3fd4cf321e46d44f08b01b3e07476d27de2.zip
gcc-4951c3fd4cf321e46d44f08b01b3e07476d27de2.tar.gz
gcc-4951c3fd4cf321e46d44f08b01b3e07476d27de2.tar.bz2
re PR tree-optimization/18425 (ICE in vector.tcc when -ftree-vectorize enabled)
2004-11-14 Dorit Naishlos <dorit@il.ibm.com> Andrew Pinski <pinskia@physics.uc.edu> 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 <pinskia@physics.uc.edu> From-SVN: r90625
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r--gcc/tree-vectorizer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index e1095f5..e013302 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);