This reminds me of a PR that Bernd did: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40657
It is also support for adding the r0-r3 registers to the epilogue/prologue push-pop for sake of reducing code size, though in a sense even more aggressive; it tries to merge the local stack allocation SP sub/add with the stm/ldm. Bernd's patch was for Thumb-1, though I don't see why it can't be implemented for ARM/Thumb-2 too. Chung-Lin On 2010/9/7 21:36, Julian Brown wrote: > On Tue, 07 Sep 2010 21:06:10 +0800 > Yao Qi<yao...@linaro.org> wrote: > >> Julian Brown wrote: >>> So yeah, I think there is indeed a possible improvement here (and we >>> don't even need to break the EABI, I don't think). Unless I've >>> overlooked something, anyway... >> Julian, >> I revert back the first example, and add your comments in it. >> https://wiki.linaro.org/YaoQi/Sandbox/Thumb2SizeOptimize >> >> In order to teach gcc chooses low register when keeping stack >> alignment, which part of gcc shall I have a look? Is it about RA or >> regrename? > > No, all the code to generate prologues& epilogues is target-specific, > and happens after register allocation. Take a look at e.g. > arm.c:arm_expand_prologue and friends. (Beware though, they can be > quite fiddly!) > > Julian _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain