This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, ARM] Improve Thumb2 prologues when using STRD


This patch slightly improves the code sequence generated when using STRD
instructions instead of PUSH.  Rather than emit a stack decrement
operation followed by a sequence of STRDs and a final STR we merge the
stack decrement with the initial store.

Furthermore, we arrange the STR operation so that the STRD operations
will be naturally aligned (64-bit) provided that the stack was
previously 64-bit aligned (the normal case).  This should minimise the
number of stalls in the store pipe, particularly for cortex-a15.

Further optimizations are possible, but they will depend on a more
general restructuring of the prologue and epilogue generating code.

        * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
        initial store.
        * thumb2.md (thumb2_storewb_parisi): New pattern.

Bootstrapped and regtested on cortex-a15 with Thumb2 and installed on trunk.

Attachment: patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]