Summary: * Code size benchmark analysis. * Linaro binary toolchain 2012.04 release.
Details: 1. Tuning the heuristic to assign register for copies. * Take the CONFLICT_HARD_REGS and HARD_REG_COSTS of copies into account when conflict_costs is NULL in update_conflict_hard_regno_costs, which handles the following case:
a = ... ... b = a // a can be assigned with r3 or r5 which have the same min_cost. ... // b is conflicted with r3 or the cost of r3 is very high = b
In this case, if a is assigned with r3, b can not be assigned with r3, so the copy "b = a" can not be optimized. When taking the CONFLICT_HARD_REGS or HARD_REG_COSTS of b into account, we can assign a with r5.
2. Linaro binary toolchain 2012.04 release. * Update gdb/TOOLCHAIN_PKGVERSION/README to 2012.04. * Test workaround localization patch to fix lp:918926. * Local build and tests show the toolchain can find the corresponding .mo file. * But if the host system does not have the corresponding font packages, it will show some mess characters. * gdb does not have gdb.mo.
3. Investigate code size regressions in 4.7. * Loop invariant hoisting might increase register pressure, which leads to much more spilling.
Plans: * Finalize Linaro binary toolchain 2012.04 release * Investigate other code size regressions in 4.7.
Planed leaves: * Labor Day’s holiday: April 30 and May 1.
Best regards! -Zhenqiang
linaro-toolchain@lists.linaro.org