* combine.c (combine_simplify_rtx): Fix RTL sharing bug.

From-SVN: r70778
This commit is contained in:
Ulrich Weigand 2003-08-25 20:10:03 +00:00 committed by Ulrich Weigand
parent 12ea3302e6
commit c62793785d
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2003-08-25 Ulrich Weigand <uweigand@de.ibm.com>
* combine.c (combine_simplify_rtx): Fix RTL sharing bug.
2003-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* pretty-print.h (pp_maybe_newline_and_indent): New macro.

View File

@ -3636,9 +3636,11 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int last,
return x;
/* Simplify the alternative arms; this may collapse the true and
false arms to store-flag values. */
true_rtx = subst (true_rtx, pc_rtx, pc_rtx, 0, 0);
false_rtx = subst (false_rtx, pc_rtx, pc_rtx, 0, 0);
false arms to store-flag values. Be careful to use copy_rtx
here since true_rtx or false_rtx might share RTL with x as a
result of the if_then_else_cond call above. */
true_rtx = subst (copy_rtx (true_rtx), pc_rtx, pc_rtx, 0, 0);
false_rtx = subst (copy_rtx (false_rtx), pc_rtx, pc_rtx, 0, 0);
/* If true_rtx and false_rtx are not general_operands, an if_then_else
is unlikely to be simpler. */