This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch, ARM][0/8] Epilogue in RTL: introduction (Sameera's patches, Part I)
- From: "Greta Yorsh" <Greta dot Yorsh at arm dot com>
- To: "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Cc: <joseph at codesourcery dot com>, "Richard Earnshaw" <Richard dot Earnshaw at arm dot com>, <sameera dot deshpande at gmail dot com>, "Ramana Radhakrishnan" <Ramana dot Radhakrishnan at arm dot com>, <paul at codesourcery dot com>, <nickc at redhat dot com>
- Date: Thu, 31 May 2012 14:43:26 +0100
- Subject: [Patch, ARM][0/8] Epilogue in RTL: introduction (Sameera's patches, Part I)
This sequence of patches adds support for epilogue generation in RTL.
This is the first part of Sameera's work on ARM prologue/epilogue. Sameera
Deshpande posted it for review in December 2011, having addressed all
previous comments: http://gcc.gnu.org/ml/gcc-patches/2011-12/msg00049.html.
The latest version hasn't been approved yet. Originally, it was split into
two patches:
[1/2]: Thumb2 epilogue in RTL
[2/2]: ARM epilogue in RTL
I rebased Sameera's patches, made small changes in the patterns and fixed
RTL epilogue generated for -mapcs-frame. To make reviewing easier, I split
the patches into smaller steps:
* Reorganization - already committed upstream.
* New insn and expand patterns - main functionality change.
* Cleanup of dead code.
Here is the list of patches:
1-update-predicate.patch
2-patterns.patch
3-patterns-vfp.patch
4-expand-epilog-apcs-frame.patch
5-expand-epilog.patch
6-simple-return.patch
7-expand-thumb2-return.patch
8-remove-dead-code.patch
Testing:
* Crossbuild for target arm-none-eabi with cpu cortex-a9 neon softfp and
tested in three configuration: -marm (default), -mthumb, -mapcs-frame. No
regression on qemu.
* Crossbuild for target arm-none-eabi thumb2 with cpu cortex-m3. No
regression on qemu.
* Crossbuild for target arm-none-eabi thumb1 with cpu arm7tdmi and
arm1136jf-s. No regression on qemu.
* Crossbuild for target arm-linux-gnueabi with cpu cortex-a9 with eglibc and
used this compiler to build AEL linux kernel. It boots successfully.
* Bootstrap the compiler on cortex-a8 successfully for
--languages=c,c++,fortran and used this compiler to build gdb. No regression
with check-gcc and check-gdb.
Notes:
* The patches are to be applied in the above order.
* The patches are not intended to be used individually.
* The patches have been tested only as a sequence.
* The patches have been tested on gcc from 20 March 2012 (fsf trunk r185582
of gcc-4.8 stage 1). The patches apply cleanly to current trunk (r188056).
* The patches have not been explicitly tested with any FPA variants (which
are deprecated in 4.7 and expected to become obsolete in 4.8).
Ok for trunk?
Thank you,
Greta
- Follow-Ups:
- [Patch, ARM][1/8] Epilogue in RTL: update ldm_stm_operation_p
- [Patch, ARM][2/8] Epilogue in RTL: new patterns for int regs
- [Patch, ARM][3/8] Epilogue in RTL: new patterns for vfp regs
- [Patch, ARM][4/8] Epilogue in RTL: expand epilogue for apcs frame
- [Patch, ARM][5/8] Epilogue in RTL: expand
- [Patch, ARM][6/8] Epilogue in RTL: simple return
- [Patch, ARM][7/8] Epilogue in RTL: expand thumb2 return
- [Patch, ARM][8/8] Epilogue in RTL: remove dead code
- Re: [Patch, ARM][0/8] Epilogue in RTL: introduction (Sameera's patches, Part I)