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
This commit is contained in:
Bill Schmidt 2011-07-21 18:07:39 +00:00 committed by William Schmidt
parent d4add95206
commit 777a4e9acc
2 changed files with 11 additions and 6 deletions

View File

@ -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.

View File

@ -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)));