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 RFC] Doloop pattern for ARM


Hello,

The attached patch models doloop pattern for ARM.
I followed Chung-Lin Tang's suggestion to use
subs+bne sequence.
The patch is also fixed according to comments I
received when posting an initial version of it
to gcc@.

Bootstrap and regtest on ppc64-redhat-linux with SMS flags.
On SPU and ARM regtested on c,c++ and fortran.

On EEMBC/telecom/autcor benchmark I see 19% improvements
running on cortex-a9 with the following flags:
 -O3 -mcpu=cortex-a9  -mtune=cortex-a9  -funsafe-loop-optimizations
-fmodulo-sched

and 27% improvements when running with:
-O3 -mcpu=cortex-a9  -mtune=cortex-a9  -funsafe-loop-optimizations  -mthumb
-fmodulo-sched

Thanks,
Revital


ChangeLog:

        * modulo-sched.c (sms_schedule): Support new form of doloop pattern
        * loop-doloop.c (doloop_condition_get): Likewise.
        * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
        (doloop_end): New.
        * config/arm/arm.md (*addsi3_compare0): Remove "*".


(See attached file: patch_doloop_arm_23.txt)

Attachment: patch_doloop_arm_23.txt
Description: Text document


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