From 1efcacec695000770deef50698e4d3d5eb2c8b05 Mon Sep 17 00:00:00 2001 From: rguenth Date: Thu, 16 Apr 2009 12:44:46 +0000 Subject: 2009-04-16 Richard Guenther Ira Rosen PR tree-optimization/39698 * tree-vect-loop.c (get_initial_def_for_reduction): Use the type of the reduction variable. Only generate the def if it is needed. * omp-low.c (expand_omp_for_generic): When converting to a pointer make sure to first convert to an integer of the same precision. * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain the type of the evolution correctly in computing the new induction variable base. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146180 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/omp-low.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'gcc/omp-low.c') diff --git a/gcc/omp-low.c b/gcc/omp-low.c index c28bbb0a1ca..0fa938acb2a 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -3812,21 +3812,25 @@ expand_omp_for_generic (struct omp_region *region, /* Iteration setup for sequential loop goes in L0_BB. */ gsi = gsi_start_bb (l0_bb); + t = istart0; if (bias) - t = fold_convert (type, fold_build2 (MINUS_EXPR, fd->iter_type, - istart0, bias)); - else - t = fold_convert (type, istart0); + t = fold_build2 (MINUS_EXPR, fd->iter_type, t, bias); + if (POINTER_TYPE_P (type)) + t = fold_convert (lang_hooks.types.type_for_size (TYPE_PRECISION (type), + 0), t); + t = fold_convert (type, t); t = force_gimple_operand_gsi (&gsi, t, false, NULL_TREE, false, GSI_CONTINUE_LINKING); stmt = gimple_build_assign (fd->loop.v, t); gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING); + t = iend0; if (bias) - t = fold_convert (type, fold_build2 (MINUS_EXPR, fd->iter_type, - iend0, bias)); - else - t = fold_convert (type, iend0); + t = fold_build2 (MINUS_EXPR, fd->iter_type, t, bias); + if (POINTER_TYPE_P (type)) + t = fold_convert (lang_hooks.types.type_for_size (TYPE_PRECISION (type), + 0), t); + t = fold_convert (type, t); iend = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE, false, GSI_CONTINUE_LINKING); if (fd->collapse > 1) -- cgit v1.2.1