diff mbox

[ARM] Handle clz, rbit types in arm pipeline descriptions

Message ID 53C3AB2B.6090400@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov July 14, 2014, 10:04 a.m. UTC
Hi all,

I noticed that we don't have scheduling information for the clz and rbit 
instructions in any of the arm pipeline
models except the Cortex-A8 one.

This patch adds those insn types to the relevant models. They're treated 
as simple ALU operations.

Tested arm-none-eabi.

Ok for trunk?

Thanks,
Kyrill

2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
     * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
     * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
     * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
     * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
     * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
     * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.

Comments

Richard Earnshaw July 14, 2014, 10:15 a.m. UTC | #1
On 14/07/14 11:04, Kyrill Tkachov wrote:
> Hi all,
> 
> I noticed that we don't have scheduling information for the clz and rbit 
> instructions in any of the arm pipeline
> models except the Cortex-A8 one.
> 
> This patch adds those insn types to the relevant models. They're treated 
> as simple ALU operations.
> 
> Tested arm-none-eabi.
> 
> Ok for trunk?
> 
OK.

R.

> Thanks,
> Kyrill
> 
> 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>      * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
>      * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
>      * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
>      * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
>      * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
>      * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
>      * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
>
diff mbox

Patch

commit 6aea17465cba2980f803bc3e8e8dbee5fded68a4
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date:   Thu Jul 10 10:58:14 2014 +0100

    [ARM] Add clz, rbit types in pipeline descriptions

diff --git a/gcc/config/arm/cortex-a15.md b/gcc/config/arm/cortex-a15.md
index 28f5dc4..209d872 100644
--- a/gcc/config/arm/cortex-a15.md
+++ b/gcc/config/arm/cortex-a15.md
@@ -64,7 +64,7 @@ 
        (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                         alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        adr,bfm,rev,\
+                        adr,bfm,clz,rbit,rev,\
                         shift_imm,shift_reg,\
                         mov_imm,mov_reg,\
                         mvn_imm,mvn_reg,\
diff --git a/gcc/config/arm/cortex-a5.md b/gcc/config/arm/cortex-a5.md
index eed098e..8b037ae 100644
--- a/gcc/config/arm/cortex-a5.md
+++ b/gcc/config/arm/cortex-a5.md
@@ -61,7 +61,7 @@ 
        (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                         alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        adr,bfm,rev,\
+                        adr,bfm,clz,rbit,rev,\
                         shift_imm,shift_reg,\
                         mov_imm,mov_reg,mvn_imm,mvn_reg,\
                         mrs,multiple,no_insn"))
diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md
index 72262d7..7fd7b1a 100644
--- a/gcc/config/arm/cortex-a53.md
+++ b/gcc/config/arm/cortex-a53.md
@@ -75,7 +75,7 @@ 
        (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                         alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        adr,bfm,csel,rev,\
+                        adr,bfm,csel,clz,rbit,rev,\
                         shift_imm,shift_reg,\
                         mov_imm,mov_reg,mvn_imm,mvn_reg,\
                         mrs,multiple,no_insn"))
diff --git a/gcc/config/arm/cortex-a7.md b/gcc/config/arm/cortex-a7.md
index 8291d7f..2613750 100644
--- a/gcc/config/arm/cortex-a7.md
+++ b/gcc/config/arm/cortex-a7.md
@@ -137,7 +137,7 @@ 
   (and (eq_attr "tune" "cortexa7")
        (eq_attr "type" "alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        bfm,rev,\
+                        bfm,clz,rbit,rev,\
                         shift_imm,shift_reg,mov_reg,mvn_reg"))
   "cortex_a7_ex1")
 
diff --git a/gcc/config/arm/cortex-a9.md b/gcc/config/arm/cortex-a9.md
index a888896..a47813d 100644
--- a/gcc/config/arm/cortex-a9.md
+++ b/gcc/config/arm/cortex-a9.md
@@ -83,7 +83,7 @@  cortex_a9_p1_e2 + cortex_a9_p0_e1 + cortex_a9_p1_e1")
        (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                         alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        adr,bfm,rev,\
+                        adr,bfm,clz,rbit,rev,\
                         shift_imm,shift_reg,\
                         mov_imm,mov_reg,mvn_imm,mvn_reg,\
                         mov_shift_reg,mov_shift,\
diff --git a/gcc/config/arm/cortex-m4.md b/gcc/config/arm/cortex-m4.md
index 690ce75..7b59353 100644
--- a/gcc/config/arm/cortex-m4.md
+++ b/gcc/config/arm/cortex-m4.md
@@ -34,7 +34,7 @@ 
        (ior (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                              alu_reg,alus_reg,logic_reg,logics_reg,\
                              adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                             adr,bfm,rev,\
+                             adr,bfm,clz,rbit,rev,\
                              shift_imm,shift_reg,extend,\
                              alu_shift_imm,alus_shift_imm,\
                              logic_shift_imm,logics_shift_imm,\
diff --git a/gcc/config/arm/cortex-r4.md b/gcc/config/arm/cortex-r4.md
index f000124..6e420ef 100644
--- a/gcc/config/arm/cortex-r4.md
+++ b/gcc/config/arm/cortex-r4.md
@@ -81,7 +81,7 @@ 
        (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
                         alu_reg,alus_reg,logic_reg,logics_reg,\
                         adc_imm,adcs_imm,adc_reg,adcs_reg,\
-                        adr,bfm,rev,\
+                        adr,bfm,clz,rbit,rev,\
                         shift_imm,shift_reg,mvn_imm,mvn_reg"))
   "cortex_r4_alu")