[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