[AArch64/GCC][17/N] Optimize prologue when there is no frame pointe

Jiong Wang jiong.wang@arm.com
Thu Jul 24 12:46:00 GMT 2014


Under new pro/epi code, we could also utilize our store write-back to optimize
stack adjustment when there is no frame pointer.

* if there is candidate reg pair and adjustment amount is less than 512 then we
could use aarch64's paired store write-back.
* if there is only a single candidate reg and adjustment amount is less than 256,
we could use aarch64's single store write-back.
* otherwise use explictly subtraction to finish stack adjustment.
     
   Improved testcases:
     
     gcc.target/aarch64/test_frame_1.c
     gcc.target/aarch64/test_frame_10.c
     gcc.target/aarch64/test_frame_2.c
     gcc.target/aarch64/test_frame_4.c
     gcc.target/aarch64/test_frame_6.c
     gcc.target/aarch64/test_frame_7.c
     gcc.target/aarch64/test_frame_8.c
     gcc.target/aarch64/test_fp_attribute_1.c

ok for install?

gcc/
   * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
   (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.

gcc/testsuite/
   * gcc.target/aarch64/test_frame_1.c: Match optimized instruction sequences.
   * gcc.target/aarch64/test_frame_10.c: Likewise.
   * gcc.target/aarch64/test_frame_2.c: Likewise.
   * gcc.target/aarch64/test_frame_4.c: Likewise.
   * gcc.target/aarch64/test_frame_6.c: Likewise.
   * gcc.target/aarch64/test_frame_7.c: Likewise.
   * gcc.target/aarch64/test_frame_8.c: Likewise.
   * gcc.target/aarch64/test_fp_attribute_1.c: Likewise.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0017-AArch64-GCC-18-20-Optimize-prologue-when-there-is-no.patch
Type: text/x-patch
Size: 10893 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140724/26e56aa4/attachment.bin>


More information about the Gcc-patches mailing list