This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: IRA has been merged into trunk
- From: "Andrew Pinski" <pinskia at gmail dot com>
- To: "Vladimir Makarov" <vmakarov at redhat dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 Aug 2008 13:04:46 -0700
- Subject: Re: IRA has been merged into trunk
- References: <48B3F9C5.5090904@redhat.com>
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.
Thanks,
Andrew Pinski