aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-loop-linear.c7
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