IRA has been merged into trunk

Andrew Pinski pinskia@gmail.com
Thu Aug 28 23:55:00 GMT 2008


On Wed, Aug 27, 2008 at 1:04 PM, Andrew Pinski <pinskia@gmail.com> wrote:
> On Tue, Aug 26, 2008 at 5:40 AM, Vladimir Makarov <vmakarov@redhat.com> wrote:
>>  Recently I got an approval of the last part of IRA -- reload
>> changes.  Therefore I've just merged IRA into mainline.
>
> This causes the PowerPC64 testcase gcc.target/powerpc/ppc64-double-1.c
> to fail.  This was added to make sure that the register allocator
> would get the correct answer of using the floating point registers for
> fix_truncdfdi2 and floatdidf2.
> Which have the following constraints:
> "!f#r"
>
> Before the register allocator we have:
> (insn:HI 6 7 12 2
> gcc/gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c:9 (set (reg:DI
> 122)
>        (fix:DI (reg:DF 33 1 [ d ]))) 267 {fix_truncdfdi2}
> (expr_list:REG_DEAD (reg:DF 33 1 [ d ])
>        (nil)))
>
> (insn:HI 12 6 18 2
> gcc/gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c:11 (set
> (reg/i:DF 33 1)
>        (float:DF (reg:DI 122))) 263 {floatdidf2} (expr_list:REG_DEAD
> (reg:DI 122)
>        (nil)))
>
> IRA says:
> Pass 0 for finding allocno costs
>
>    a0 (r122,l0) best GENERAL_REGS, cover GENERAL_REGS
>
> Which is wrong as FLOAT_REGS is still better as both instruction take
> FLOAT_REGS but is discouraged.

I forgot to mention, that now this causes a reload that did not happen before.

Thanks,
Andrew Pinski



More information about the Gcc-patches mailing list