[Ping][Patch, GCC/Thumb1] Improve 64bit constant load for Thumb1
Terry Guo
terry.guo@arm.com
Thu Apr 24 07:13:00 GMT 2014
Ping ...
BR,
Terry
> -----Original Message-----
> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches-
> owner@gcc.gnu.org] On Behalf Of Terry Guo
> Sent: Friday, April 11, 2014 3:36 PM
> To: gcc-patches@gcc.gnu.org
> Cc: Richard Earnshaw; Ramana Radhakrishnan
> Subject: [Patch, GCC/Thumb1] Improve 64bit constant load for Thumb1
>
> Hi there,
>
> Current gcc prefers to using two LDR instructions to load 64bit constants.
> This could miss some chances that 64bit load can be done in fewer
> instructions or fewer cycles. For example, below code to load 0x100000001
>
> mov r0, #1
> mov r1, #1
>
> is better than current solution:
>
> ldr r1, .L2+4
> ldr r0, .L2
> .L2:
> .word 1
> .word 1
>
> The attached patch intends to split 64bit load to take advantage of such
> chances. Tested with gcc regression test on cortex-m0. No new regressions.
>
> Is it ok to stage 1?
>
> BR,
> Terry
>
> gcc/
> 2014-04-11 Terry Guo <terry.guo@arm.com>
>
> * config/arm/arm.md (split 64-bit constant for Thumb1): New split
> pattern.
>
> gcc/testsuite/
> 2014-04-11 Terry Guo <terry.guo@arm.com>
>
> * gcc.target/arm/thumb1-load-64bit-constant-1.c: New test.
> * gcc.target/arm/thumb1-load-64bit-constant-2.c: Ditto.
> * gcc.target/arm/thumb1-load-64bit-constant-3.c: Ditto.
More information about the Gcc-patches
mailing list