rs6000.md/altivec.md problem in setting of vector registers
Dorit Naishlos
DORIT@il.ibm.com
Sun Mar 21 01:47:00 GMT 2004
> 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
<dalej@apple.com> To: Dorit Naishlos/Haifa/IBM@IBMIL
cc: gcc@gcc.gnu.org, David Edelsohn <dje@makai.watson.ibm.com>, Dale Johannesen
19/03/2004 20:55 <dalej@apple.com>
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.
More information about the Gcc
mailing list