re PR rtl-optimization/21617 (CRC64 algorithm optimization problem on Intel 32-bit)

2011-12-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/21617
	* ira-color.c (bucket_allocno_compare_func): Don't compare
	allocno classes.  Compare number of hard registers needed.

From-SVN: r182263
This commit is contained in:
Vladimir Makarov 2011-12-12 20:51:16 +00:00 committed by Vladimir Makarov
parent 35a730f86f
commit 9c3b03463a
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2011-12-12 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/21617
* ira-color.c (bucket_allocno_compare_func): Don't compare
allocno classes. Compare number of hard registers needed.
2011-12-12 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/50569

View File

@ -1797,8 +1797,14 @@ bucket_allocno_compare_func (const void *v1p, const void *v2p)
ira_allocno_t a1 = *(const ira_allocno_t *) v1p;
ira_allocno_t a2 = *(const ira_allocno_t *) v2p;
int diff, a1_freq, a2_freq, a1_num, a2_num;
int cl1 = ALLOCNO_CLASS (a1), cl2 = ALLOCNO_CLASS (a2);
if ((diff = (int) ALLOCNO_CLASS (a2) - ALLOCNO_CLASS (a1)) != 0)
/* Push pseudos requiring less hard registers first. It means that
we will assign pseudos requiring more hard registers first
avoiding creation small holes in free hard register file into
which the pseudos requiring more hard registers can not fit. */
if ((diff = (ira_reg_class_max_nregs[cl1][ALLOCNO_MODE (a1)]
- ira_reg_class_max_nregs[cl2][ALLOCNO_MODE (a2)])) != 0)
return diff;
a1_freq = ALLOCNO_FREQ (a1);
a2_freq = ALLOCNO_FREQ (a2);