[IRA] New register allocator question
Bingfeng Mei
bmei@broadcom.com
Fri Jan 2 14:35:00 GMT 2009
I found if I define a new register class that covers both GR_REGS and PR_REGS, the issue can be solved. New IRA spill the predicate register to general regsister first instead of memory. Is this right approach?
#define IRA_COVER_CLASSES \
{ \
GRPR_REGS, M_REGS, BXBC_REGS, LIM_REG_CLASSES \
}
> -----Original Message-----
> From: gcc-owner@gcc.gnu.org [mailto:gcc-owner@gcc.gnu.org] On
> Behalf Of Bingfeng Mei
> Sent: 02 January 2009 11:50
> To: gcc@gcc.gnu.org
> Cc: Vladimir Makarov
> Subject: [IRA] New register allocator question
>
> Hello,
> I recently ported our GCC to new IRA by following mainline
> development. The only interface I added is
> IRA_COVER_CLASSES. Our architecture has predicate register
> file. When predicate register has to be spilled, the new IRA
> produces inferior code to the old register allocator. The
> old allocator first tries to spill to general register file,
> which is far cheaper on our architecture than spilling to
> memory. The IRA always spills the predicate register to
> memory directly.
>
> #define IRA_COVER_CLASSES \
> { \
> GR_REGS, PR_REGS, M_REGS, BXBC_REGS, LIM_REG_CLASSES \
> }
>
> Apart from above macro, what other interfaces/parameters I
> can tune to change this behaviour in new IRA? Thanks in advance.
>
> Happy New Year,
> Bingfeng Mei
>
> Broadcom UK.
>
>
>
More information about the Gcc
mailing list