From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13727 invoked by alias); 20 Mar 2004 22:08:33 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 13698 invoked from network); 20 Mar 2004 22:08:30 -0000 Received: from unknown (HELO mtagate3.de.ibm.com) (195.212.29.152) by sources.redhat.com with SMTP; 20 Mar 2004 22:08:30 -0000 Received: from d12relay02.megacenter.de.ibm.com (d12relay02.megacenter.de.ibm.com [9.149.165.196]) by mtagate3.de.ibm.com (8.12.10/8.12.10) with ESMTP id i2KM8JxJ146552; Sat, 20 Mar 2004 22:08:19 GMT Received: from d12ml102.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12relay02.megacenter.de.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i2KM8JZJ233966; Sat, 20 Mar 2004 23:08:19 +0100 In-Reply-To: Subject: Re: rs6000.md/altivec.md problem in setting of vector registers To: Dale Johannesen Cc: gcc@gcc.gnu.org, David Edelsohn Message-ID: From: Dorit Naishlos Date: Sun, 21 Mar 2004 01:47:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-SW-Source: 2004-03/txt/msg01223.txt.bz2 > I haven't tried it, but this might well break passing of vector > parameters in int regs. I would be surprised if this hack did not create all kinds of code generation problems. Maybe it could be reworked or perhaps something else could be tweaked to achieve the same effect? dorit Dale Johannesen To: Dorit Naishlos/Haifa/IBM@IBMIL cc: gcc@gcc.gnu.org, David Edelsohn , Dale Johannesen 19/03/2004 20:55 Subject: Re: rs6000.md/altivec.md problem in setting of vector registers On Mar 18, 2004, at 4:52 PM, Dorit Naishlos wrote: > I managed to hack something that causes Reload to make the "right" > decision > and generate the same code as it generates for i386 - i.e., the spill > code > is created out of the loop. > > The hack modifies the macro CANNOT_CHANGE_MODE_CLASS in rs6000.h to not > allow a mode change from a vector mode to a smaller mode in > ALTIVEC_REGS or > GENERAL_REGS. As a result, these register classes cannot be considered > for > allocation in this case; instead, Reload directly creates stores to > memory, > outside the loop, like for i386. I haven't tried it, but this might well break passing of vector parameters in int regs.