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.

Reply via email to