summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lra-constraints.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9e3d7838d25..b94a74bd739 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
+
+ * lra-constraints.c (process_alt_operands): Add checking alt
+ number to choose the best alternative.
+
2013-05-02 Richard Biener <rguenther@suse.de>
* tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 94f965bd7e9..4e7361155b3 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -2197,7 +2197,9 @@ process_alt_operands (int only_alternative)
number of reload regs. */
&& (reload_nregs < best_reload_nregs
|| (reload_nregs == best_reload_nregs
- && best_reload_sum < reload_sum))))))
+ && (best_reload_sum < reload_sum
+ || (best_reload_sum == reload_sum
+ && nalt < goal_alt_number))))))))
{
for (nop = 0; nop < n_operands; nop++)
{
OpenPOWER on IntegriCloud