This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[IRA] New register allocator question
- From: "Bingfeng Mei" <bmei at broadcom dot com>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Cc: "Vladimir Makarov" <vmakarov at redhat dot com>
- Date: Fri, 2 Jan 2009 03:50:21 -0800
- 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.