On 09/17/14 03:18, Zhenqiang Chen wrote:
Hi,
When assign_hard_reg, we always check_hard_reg_p, which has code
if (! TEST_HARD_REG_BIT (profitable_regs, hard_regno))
return false;
i.e. If a hard_regno is not in profitable_regs, we can not allocate it to
the ira_allocno_t A.
So the conflict on a hard_regno, which does not belong to the
profitable_regs, can be ignored. Please refer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63210 for the detail of the
test case.
Bootstrap and no make check regression on X86-64 and ARM Chromebook.
NO spec2k performance regression on X86-64 and ARM Chromebook.
CSiBE code size is 0.01% better for ARM Cortex-M0.
OK for trunk?
Thanks!
-Zhenqiang
ChangeLog:
2014-09-17 Zhenqiang Chen <zhenqiang.c...@arm.com>
PR rtl-optimization/63210
* ira-color.c (assign_hard_reg): Ignore conflict cost if the
HARD_REGNO is not availabe for CONFLICT_A.
testsuite/ChangeLog:
2014-09-17 Zhenqiang Chen <zhenqiang.c...@arm.com>
* gcc.target/arm/pr63210.c: New test.
OK for the trunk.
Thanks,
Jeff