aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2011-07-21 18:07:39 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2011-07-21 18:07:39 +0000
commit777a4e9acc49f2d98ab6e16de9a1b89f4f3bbd0a (patch)
tree8cc158808753e750c27deadc59431f29be7db986 /gcc
parentd4add9520645abcfa2e1aabb71dfd1f8669f70ad (diff)
downloadgcc-777a4e9acc49f2d98ab6e16de9a1b89f4f3bbd0a.zip
gcc-777a4e9acc49f2d98ab6e16de9a1b89f4f3bbd0a.tar.gz
gcc-777a4e9acc49f2d98ab6e16de9a1b89f4f3bbd0a.tar.bz2
re PR tree-optimization/49749 (Reassociation rank algorithm does not include all non-NULL operands)
2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/49749 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and remove no-longer-used maxrank variable. From-SVN: r176581
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-reassoc.c11
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b9d95fa..023f478 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/49749
+ * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
+ remove no-longer-used maxrank variable.
+
2011-07-21 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index d8f9e2e..86d26fb 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -235,7 +235,7 @@ get_rank (tree e)
if (TREE_CODE (e) == SSA_NAME)
{
gimple stmt;
- long rank, maxrank;
+ long rank;
int i, n;
if (TREE_CODE (SSA_NAME_VAR (e)) == PARM_DECL
@@ -258,7 +258,6 @@ get_rank (tree e)
/* Otherwise, find the maximum rank for the operands, or the bb
rank, whichever is less. */
rank = 0;
- maxrank = bb_rank[gimple_bb(stmt)->index];
if (gimple_assign_single_p (stmt))
{
tree rhs = gimple_assign_rhs1 (stmt);
@@ -267,15 +266,15 @@ get_rank (tree e)
rank = MAX (rank, get_rank (rhs));
else
{
- for (i = 0;
- i < n && TREE_OPERAND (rhs, i) && rank != maxrank; i++)
- rank = MAX(rank, get_rank (TREE_OPERAND (rhs, i)));
+ for (i = 0; i < n; i++)
+ if (TREE_OPERAND (rhs, i))
+ rank = MAX(rank, get_rank (TREE_OPERAND (rhs, i)));
}
}
else
{
n = gimple_num_ops (stmt);
- for (i = 1; i < n && rank != maxrank; i++)
+ for (i = 1; i < n; i++)
{
gcc_assert (gimple_op (stmt, i));
rank = MAX(rank, get_rank (gimple_op (stmt, i)));