diff mbox

[ARM] Adjust arith_shiftsi for ARMv8-style

Message ID 53747F0B.2060107@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov May 15, 2014, 8:47 a.m. UTC
Hi all,

Shifted arithmetic operations can never be encoded in 16-bits in and therefore 
can not appear in Thumb2 IT blocks under ARMv8-A rules (and the -mrestrict-it 
rules). This patch adjusts the relevant pattern for that purpose.

Tested and bootstrapped on arm-none-linux-gnueabihf and made sure no performance 
regressions on a number of benchmarks.

This is a bug (not wrong-code though) in -mrestrict-it that affects 4.9 as well 
as trunk, so is it ok to backport it there?


Thanks,
Kyrill

2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/arm/arm.md (arith_shiftsi): Do not predicate for
     arm_restrict_it.

Comments

Richard Earnshaw May 20, 2014, 1:07 p.m. UTC | #1
On 15/05/14 09:47, Kyrill Tkachov wrote:
> Hi all,
> 
> Shifted arithmetic operations can never be encoded in 16-bits in and therefore 
> can not appear in Thumb2 IT blocks under ARMv8-A rules (and the -mrestrict-it 
> rules). This patch adjusts the relevant pattern for that purpose.
> 
> Tested and bootstrapped on arm-none-linux-gnueabihf and made sure no performance 
> regressions on a number of benchmarks.
> 
> This is a bug (not wrong-code though) in -mrestrict-it that affects 4.9 as well 
> as trunk, so is it ok to backport it there?
> 
> 
> Thanks,
> Kyrill
> 
> 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>      * config/arm/arm.md (arith_shiftsi): Do not predicate for
>      arm_restrict_it.
> 

OK both.

R.
diff mbox

Patch

commit 8d54d43e84925ee5c53e70ecc7036bc5a7e867ba
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date:   Fri Apr 4 16:10:39 2014 +0100

    [ARM] Adjust arith_shiftsi for arm_restrict_it

diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 38ca058..9468c70 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -9860,6 +9860,7 @@ 
   "TARGET_32BIT"
   "%i1%?\\t%0, %2, %4%S3"
   [(set_attr "predicable" "yes")
+   (set_attr "predicable_short_it" "no")
    (set_attr "shift" "4")
    (set_attr "arch" "a,t2,t2,a")
    ;; Thumb2 doesn't allow the stack pointer to be used for