postreload.c (reload_cse_simplify_operands): Fix bug in sorting algorithm so as to choose the best, not the worst, alternative.

* postreload.c (reload_cse_simplify_operands): Fix bug in sorting
	algorithm so as to choose the best, not the worst, alternative.
	Reset accumulated register class before processing next alternative.

From-SVN: r106780
This commit is contained in:
Ulrich Weigand 2005-11-11 09:38:52 +00:00 committed by Ulrich Weigand
parent a5df14d4e5
commit 8a4c09c833
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-11-11 Ulrich Weigand <uweigand@de.ibm.com>
* postreload.c (reload_cse_simplify_operands): Fix bug in sorting
algorithm so as to choose the best, not the worst, alternative.
Reset accumulated register class before processing next alternative.
2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/24445

View File

@ -575,6 +575,7 @@ reload_cse_simplify_operands (rtx insn, rtx testreg)
op_alt_regno[i][j] = regno;
}
j++;
class = (int) NO_REGS;
break;
}
p += CONSTRAINT_LEN (c, p);
@ -607,7 +608,7 @@ reload_cse_simplify_operands (rtx insn, rtx testreg)
int this_nregs = alternative_nregs[alternative_order[j]];
if (this_reject < best_reject
|| (this_reject == best_reject && this_nregs < best_nregs))
|| (this_reject == best_reject && this_nregs > best_nregs))
{
best = j;
best_reject = this_reject;