This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch to fix PR21617


The following patch solves PR 21617 which is described on http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21617.

Just adding number of necessary hard registers solves the problem but creates 2% SPEC2000 perlbmk degradation on x86. Fortunately, removing allocno class comparison removes the degradation. The allocno class comparison was originally added for debugging purposes to put coloring of allocnos of the same class in one place. It was ok when we had cover classes which did not intersect. Now allocno classes intersect and this comparison should be not used (at least as highest priority heuristic).

Beside solving the problem, the patch improves a bit SPEC2000 performance and code size on x86.

The patch was successfully bootstrapped on x86/x86-64. I expect it should be pretty safe for other targets because it changes heuristics only.

Committed as rev. 182263.


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.

Attachment: pr21617.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]