This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[RFA/ARM][Patch 00/05]: Introduction - Generate LDRD/STRD in prologue/epilogue instead of PUSH/POP.
- From: Sameera Deshpande <sameera dot deshpande at arm dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: "nickc at redhat dot com" <nickc at redhat dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, "paul at codesourcery dot com" <paul at codesourcery dot com>, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>
- Date: Tue, 11 Oct 2011 10:08:58 +0100
- Subject: [RFA/ARM][Patch 00/05]: Introduction - Generate LDRD/STRD in prologue/epilogue instead of PUSH/POP.
This series of 5 patches generate LDRD/STRD instead of POP/PUSH in
epilogue/prologue for ARM and Thumb-2 mode of A15.
Patch [1/5] introduces new field in tune which can be used to indicate
whether LDRD/STRD are preferred over POP/PUSH by the specific core.
Patches [2-5/5] use this field to determine if LDRD/STRD can be
generated instead of PUSH/POP in ARM and Thumb-2 mode.
Patch [2/5] generates LDRD instead of POP for Thumb-2 epilogue in A15.
This patch depends on patch [1/5].
Patch [3/5] generates STRD instead of PUSH for Thumb-2 prologue in A15.
This patch depends for variables, functions and patterns defined in
[1/5] and [2/5].
Patch [4/5] generates STRD instead of PUSH for ARM prologue in A15. This
patch depends on [1/5].
Patch [5/5] generates LDRD instead of POP for ARM epilogue in A15. This
patch depends for variables, functions and patterns defined in [1/5] and
[4/5].
All these patches depend upon the Thumb2/ARM RTL epilogue patches
http://gcc.gnu.org/ml/gcc-patches/2011-09/msg01854.html,
http://gcc.gnu.org/ml/gcc-patches/2011-09/msg01855.html submitted for
review.
All these patches are applied in given order and tested with check-gcc,
check-gdb and bootstrap without regression.
In case of ARM mode, significant performance improvement can be seen on
some parts of a popular embedded consumer benchmark (~26%).
However, in most of the cases, not much effect is seen on performance.
(~ 3% improvement)
In case of thumb2, the performance improvement observed on same parts
the benchmark is ~11% (2.5% improvement).
--