aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-05-02 19:02:19 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-05-02 19:02:19 +0000
commitf15feaf95fd95c6fe2756f97aa01cc6f9c778b6c (patch)
tree32a80d4246433f266e38d26a75f0cbdb96cdba4b /gcc
parentd90e76d4e1e07d5285b7f5869922fa4d1b65cc32 (diff)
downloadgcc-f15feaf95fd95c6fe2756f97aa01cc6f9c778b6c.zip
gcc-f15feaf95fd95c6fe2756f97aa01cc6f9c778b6c.tar.gz
gcc-f15feaf95fd95c6fe2756f97aa01cc6f9c778b6c.tar.bz2
lra-constraints.c (process_alt_operands): Add checking alt number to choose the best alternative.
2013-05-02 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (process_alt_operands): Add checking alt number to choose the best alternative. From-SVN: r198558
Diffstat (limited to 'gcc')
-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 9e3d783..b94a74b 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 94f965bd..4e73611 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++)
{