From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1507 invoked by alias); 13 Apr 2008 19:32:40 -0000 Received: (qmail 1386 invoked by alias); 13 Apr 2008 19:31:55 -0000 Date: Sun, 13 Apr 2008 19:32:00 -0000 Message-ID: <20080413193155.1385.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/35404] ra-conflict does not handle subregs optimally In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "zadeck at naturalbridge dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-04/txt/msg00937.txt.bz2 ------- Comment #5 from zadeck at naturalbridge dot com 2008-04-13 19:31 ------- Subject: Re: ra-conflict does not handle subregs optimally hutchinsonandy at gcc dot gnu dot org wrote: > ------- Comment #4 from hutchinsonandy at gcc dot gnu dot org 2008-04-13 19:15 ------- > Please look at PR35860. I believe this is same problem noted here. > subreg-lowering triggering the regression due to worsened conflicts. > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35860 > > > In a couple of days i will have a patch ready for public examination that will fix the 35404 issue. It does so by doing a more precise conflict building so that multiword registers can be packed on top of one another if they the "pieces" do not ever conflict. This is the info that is encoded in REG_NO_CONFLICT notes, but i have discovered that I find pairs of these even in places where no such notes/blocks were ever created. I am in the testing process now on the part that makes global understand the info my conflict builder is building. Stevenb is working on a patch that takes local-alloc out of the loop and that will help also. That is a more complex patch in that there are things in local that still have to be done. I have cc'ed my self and steven on this bugzilla and i will forward the patches to you as they become available and we can see if this solves your problems. kenny -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35404