This is the mail archive of the
mailing list for the GCC project.
Re: RFB: patch to fix PR37534
- From: Luis Machado <luisgpm at linux dot vnet dot ibm dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 10 Nov 2008 15:25:02 -0200
- Subject: Re: RFB: patch to fix PR37534
- References: <49186BA8.firstname.lastname@example.org>
- Reply-to: luisgpm at linux dot vnet dot ibm dot com
Thanks Vladimir. I'll give it a try and will report back.
On Mon, 2008-11-10 at 12:13 -0500, Vladimir Makarov wrote:
> Hi, Luis.
> Could you test the following patch. It uses another spill heuristic.
> Usually spill priority is spill cost divided by # of left conflicts for
> the corresponding node in the graph. Some RA literature mentions
> division by #left conflicts in power 2. The patch uses a heuristic
> close to the second one. I don't know why but instead of 17%
> degradation it gives 10% improvement on facerec (for -O2 -mtune=power6).
> Actually I tried many things to solve the problem:
> o different coalescing algorithms (iterative and optimistic ones)
> o usage of union of cover classes for pseudos. This is one drawback I
> see in IRA with comparison with the old RA. When pseudo is used only
> for transferring memory value (r<-m ... m<-r), it can be done through
> float or integer registers. When coloring is not possible for one class
> (e.g. integer registers) we could use another class (e.g. float registers).
> o using coloring with different spill heuristics and choosing the best
> one (Bernstein's approach)
> o different spill heuristics in reload.
> But the best result is achieved by this patch which is ironically the
> simplest one.
> In general the patch does not improve overall SPEC rates on other
> platforms. Because of NP-complete nature of RA, I don't believe that we
> can achieve better IRA behaviour on all tests but I think we should
> achieve not worse overall SPEC results.