mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
35a730f86f
commit
9c3b03463a
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue