Patchwork [ARM] Define predicable attribute for arm_abssi2 and arm_neg_abssi2

login
register
mail settings
Submitter Kyrylo Tkachov
Date Nov. 20, 2012, 10:25 a.m.
Message ID <00af01cdc709$53e608f0$fbb21ad0$@tkachov@arm.com>
Download mbox | patch
Permalink /patch/200288/
State New
Headers show

Comments

Kyrylo Tkachov - Nov. 20, 2012, 10:25 a.m.
Hi all,
This is the updated version of the patch. It defines the predicable
attribute for the equivalent abssi2 and neg_abssi2 patterns in thumb2.md.
The previous version (with the changes only to arm.md) has been okayed but
not applied and this patch supersedes it.
The previous version is:
http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01578.html

No regressions for arm-none-eabi for qemu.

Ok for trunk?

Thanks,
Kyrill

gcc/ChangeLog

2012-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*arm_abssi2): Define predicable attribute.
	(*arm_neg_abssi2): Likewise.
	* config/arm/thumb2.md (*thumb2_abssi2): Likewise.
	(*thumb2_neg_abssi2): Likewise.


-----Original Message-----
From: Ramana Radhakrishnan 
Sent: 19 November 2012 18:05
To: Kyrylo Tkachov
Cc: gcc-patches@gcc.gnu.org; Richard Earnshaw
Subject: Re: [PATCH][ARM] Define predicable attribute for arm_abssi2 and
arm_neg_abssi2

On 11/19/12 17:51, Kyrylo Tkachov wrote:
> Hi all,
> This patch updates the arm_abssi2 and arm_neg_abssi2 patterns in the ARM
> machine description.
> We define the predicable attribute based on the alternative. When the
> patterns were introduced it was not possible to do that.
> Now the second alternative in each of the patterns that supports
predication
> is defined as predicable.
>
> No regressions on arm-none-eabi with qemu.
>
> Ok for trunk?

Ok, please apply.

Ramana
Richard Earnshaw - Nov. 20, 2012, 10:32 a.m.
On 20/11/12 10:25, Kyrylo Tkachov wrote:
> Hi all,
> This is the updated version of the patch. It defines the predicable
> attribute for the equivalent abssi2 and neg_abssi2 patterns in thumb2.md.
> The previous version (with the changes only to arm.md) has been okayed but
> not applied and this patch supersedes it.
> The previous version is:
> http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01578.html
>
> No regressions for arm-none-eabi for qemu.
>
> Ok for trunk?
>
> Thanks,
> Kyrill
>
> gcc/ChangeLog
>
> 2012-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>
> 	* config/arm/arm.md (*arm_abssi2): Define predicable attribute.
> 	(*arm_neg_abssi2): Likewise.
> 	* config/arm/thumb2.md (*thumb2_abssi2): Likewise.
> 	(*thumb2_neg_abssi2): Likewise.
>
>
> -----Original Message-----
> From: Ramana Radhakrishnan
> Sent: 19 November 2012 18:05
> To: Kyrylo Tkachov
> Cc: gcc-patches@gcc.gnu.org; Richard Earnshaw
> Subject: Re: [PATCH][ARM] Define predicable attribute for arm_abssi2 and
> arm_neg_abssi2
>
> On 11/19/12 17:51, Kyrylo Tkachov wrote:
>> Hi all,
>> This patch updates the arm_abssi2 and arm_neg_abssi2 patterns in the ARM
>> machine description.
>> We define the predicable attribute based on the alternative. When the
>> patterns were introduced it was not possible to do that.
>> Now the second alternative in each of the patterns that supports
> predication
>> is defined as predicable.
>>
>> No regressions on arm-none-eabi with qemu.
>>
>> Ok for trunk?
>
> Ok, please apply.
>
> Ramana
>

OK.

Thanks.

R.
Kyrylo Tkachov - Nov. 22, 2012, 11:34 a.m.
Thanks for the review.
As I do not have write access, can someone please apply?

http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01655.html

Thanks,
Kyrill

-----Original Message-----
From: Richard Earnshaw 
Sent: 20 November 2012 10:32
To: Kyrylo Tkachov
Cc: gcc-patches@gcc.gnu.org; Ramana Radhakrishnan
Subject: Re: [PATCH][ARM] Define predicable attribute for arm_abssi2 and
arm_neg_abssi2

On 20/11/12 10:25, Kyrylo Tkachov wrote:
> Hi all,
> This is the updated version of the patch. It defines the predicable
> attribute for the equivalent abssi2 and neg_abssi2 patterns in thumb2.md.
> The previous version (with the changes only to arm.md) has been okayed but
> not applied and this patch supersedes it.
> The previous version is:
> http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01578.html
>
> No regressions for arm-none-eabi for qemu.
>
> Ok for trunk?
>
> Thanks,
> Kyrill
>
> gcc/ChangeLog
>
> 2012-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>
> 	* config/arm/arm.md (*arm_abssi2): Define predicable attribute.
> 	(*arm_neg_abssi2): Likewise.
> 	* config/arm/thumb2.md (*thumb2_abssi2): Likewise.
> 	(*thumb2_neg_abssi2): Likewise.
>
>
> -----Original Message-----
> From: Ramana Radhakrishnan
> Sent: 19 November 2012 18:05
> To: Kyrylo Tkachov
> Cc: gcc-patches@gcc.gnu.org; Richard Earnshaw
> Subject: Re: [PATCH][ARM] Define predicable attribute for arm_abssi2 and
> arm_neg_abssi2
>
> On 11/19/12 17:51, Kyrylo Tkachov wrote:
>> Hi all,
>> This patch updates the arm_abssi2 and arm_neg_abssi2 patterns in the ARM
>> machine description.
>> We define the predicable attribute based on the alternative. When the
>> patterns were introduced it was not possible to do that.
>> Now the second alternative in each of the patterns that supports
> predication
>> is defined as predicable.
>>
>> No regressions on arm-none-eabi with qemu.
>>
>> Ok for trunk?
>
> Ok, please apply.
>
> Ramana
>

OK.

Thanks.

R.

Patch

--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -4263,7 +4263,7 @@  (define_insn "*arm_abssi2"
    eor%?\\t%0, %1, %1, asr #31\;sub%?\\t%0, %0, %1, asr #31"
   [(set_attr "conds" "clob,*")
    (set_attr "shift" "1")
-   ;; predicable can't be set based on the variant, so left as no
+   (set_attr "predicable" "no, yes")
    (set_attr "length" "8")]
 )
 
@@ -4291,7 +4291,7 @@  (define_insn "*arm_neg_abssi2"
    eor%?\\t%0, %1, %1, asr #31\;rsb%?\\t%0, %0, %1, asr #31"
   [(set_attr "conds" "clob,*")
    (set_attr "shift" "1")
-   ;; predicable can't be set based on the variant, so left as no
+   (set_attr "predicable" "no, yes")
    (set_attr "length" "8")]
 )
 
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index a5302f479f5091d08f4bf1a9ee9b0423692372af..0000000000000000000000000000000000000000 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -141,7 +141,7 @@  (define_insn "*thumb2_abssi2"
    eor%?\\t%0, %1, %1, asr #31\;sub%?\\t%0, %0, %1, asr #31"
   [(set_attr "conds" "clob,*")
    (set_attr "shift" "1")
-   ;; predicable can't be set based on the variant, so left as no
+   (set_attr "predicable" "no, yes")
    (set_attr "length" "10,8")]
 )
 
@@ -155,7 +155,7 @@  (define_insn "*thumb2_neg_abssi2"
    eor%?\\t%0, %1, %1, asr #31\;rsb%?\\t%0, %0, %1, asr #31"
   [(set_attr "conds" "clob,*")
    (set_attr "shift" "1")
-   ;; predicable can't be set based on the variant, so left as no
+   (set_attr "predicable" "no, yes")
    (set_attr "length" "10,8")]
 )