diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-loop-linear.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 593b82e..e9a82c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-02-08 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/42931 + * tree-loop-linear.c (try_interchange_loops): Don't call + double_int_mul if estimated_loop_iterations failed. + 2010-02-08 Martin Jambor <mjambor@suse.cz> PR middle-end/42898 diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c index 5461975..04731c7 100644 --- a/gcc/tree-loop-linear.c +++ b/gcc/tree-loop-linear.c @@ -1,5 +1,5 @@ /* Linear Loop transforms - Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009 + Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Daniel Berlin <dberlin@dberlin.org>. @@ -246,9 +246,10 @@ try_interchange_loops (lambda_trans_matrix trans, res = cmp < 0 ? estimated_loop_iterations (loop_j, false, &nb_iter): estimated_loop_iterations (loop_i, false, &nb_iter); - large = double_int_mul (large, nb_iter); - if (res && double_int_ucmp (large, l1_cache_size) < 0) + if (res + && double_int_ucmp (double_int_mul (large, nb_iter), + l1_cache_size) < 0) continue; if (dependence_steps_i < dependence_steps_j |