mirror of git://gcc.gnu.org/git/gcc.git
tree-ssa-operands.c (swap_tree_operands): Always adjust existing operand positions.
2011-09-09 Richard Guenther <rguenther@suse.de> * tree-ssa-operands.c (swap_tree_operands): Always adjust existing operand positions. From-SVN: r178723
This commit is contained in:
parent
ffd78b302f
commit
64d9cb054e
|
|
@ -1,3 +1,8 @@
|
|||
2011-09-09 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-operands.c (swap_tree_operands): Always adjust
|
||||
existing operand positions.
|
||||
|
||||
2011-09-09 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/50333
|
||||
|
|
|
|||
|
|
@ -1149,7 +1149,8 @@ swap_tree_operands (gimple stmt, tree *exp0, tree *exp1)
|
|||
|
||||
/* If the operand cache is active, attempt to preserve the relative
|
||||
positions of these two operands in their respective immediate use
|
||||
lists. */
|
||||
lists by adjusting their use pointer to point to the new
|
||||
operand position. */
|
||||
if (ssa_operands_active () && op0 != op1)
|
||||
{
|
||||
use_optype_p use0, use1, ptr;
|
||||
|
|
@ -1170,14 +1171,12 @@ swap_tree_operands (gimple stmt, tree *exp0, tree *exp1)
|
|||
break;
|
||||
}
|
||||
|
||||
/* If both uses don't have operand entries, there isn't much we can do
|
||||
at this point. Presumably we don't need to worry about it. */
|
||||
if (use0 && use1)
|
||||
{
|
||||
tree *tmp = USE_OP_PTR (use1)->use;
|
||||
USE_OP_PTR (use1)->use = USE_OP_PTR (use0)->use;
|
||||
USE_OP_PTR (use0)->use = tmp;
|
||||
}
|
||||
/* And adjust their location to point to the new position of the
|
||||
operand. */
|
||||
if (use0)
|
||||
USE_OP_PTR (use0)->use = exp1;
|
||||
if (use1)
|
||||
USE_OP_PTR (use1)->use = exp0;
|
||||
}
|
||||
|
||||
/* Now swap the data. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue