[AARCH64][Insn classification unification 3/N] ALU/shift types
Sofiane Naci
sofiane.naci@arm.com
Thu Aug 1 13:51:00 GMT 2013
Hi,
This patch is part of the ongoing work to unify instruction classification
between the ARM and AARCH64 backends.
This patch fine tunes the ALU/shift type attribute values in the ARM backend
as detailed in the table below:
Old New
----------------------------------------------------------------------
arlo_imm alu_imm, alus_imm, logic_imm, logics_imm
arlo_reg adc, adcs, adr, alu_ext, alu_reg, alus_ext, alus_reg,
bfm, csel, logic_reg, logics_reg, rev.
arlo_shift alu_shift_imm, alus_shift_imm, logic_shift_imm,
logics_shift_imm.
arlo_shift_reg alu_shift_reg, alus_shift_reg, logic_shift_reg,
logics_shift_reg.
clz clz, rbit.
shift shift_imm (rename).
The changes are propagated through the AARCH64 backend, and all the pipeline
descriptions in the ARM backend.
OK for trunk?
Thanks
Sofiane
-----
ChangeLog:
* config/arm/types.md (define_attr "type"): Expand "arlo_imm" into
"alu_imm", "alus_imm", "logic_imm", "logics_imm". Expand "arlo_reg"
into
"adc", "adcs", "adr", "alu_ext", "alu_reg", "alus_ext", "alus_reg",
"bfm", "csel", "logic_reg", "logics_reg", "rev". Expand
"arlo_shift" into
"alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
"logics_shift_imm".
Expand "arlo_shift_reg" into "alu_shift_reg", "alus_shift_reg",
"logic_shift_reg", "logics_shift_reg". Expand "clz" into "clz,
"rbit".
Rename "shift" to "shift_imm".
* config/arm/arm.md (define_attr "core_cycles"): Update for
attribute
changes.
Update for attribute changes all occurrences of arlo_* and shift*
types.
* config/arm/arm-fixed.md: Update for attribute changes all
occurrences
of arlo_* types.
* config/arm/thumb2.md: Update for attribute changes all occurrences
of arlo_* types.
* config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
(cortexa7_older_only): Likewise.
(cortexa7_younger): Likewise.
* config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
(1020alu_shift_op): Likewise.
(1020alu_shift_reg_op): Likewise.
* config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
(alu_shift_op): Likewise.
(alu_shift_reg_op): Likewise.
* config/arm/arm1136jfs.md (11_alu_op): Update for attribute
changes.
(11_alu_shift_op): Likewise.
(11_alu_shift_reg_op): Likewise.
* config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
(9_alu_shift_reg_op): Likewise.
* config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
changes.
(cortex_a15_alu_shift): Likewise.
(cortex_a15_alu_shift_reg): Likewise.
* config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
changes.
(cortex_a5_alu_shift): Likewise.
* config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
changes.
(cortex_a53_alu_shift): Likewise.
* config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
changes.
(cortex_a7_alu_reg): Likewise.
(cortex_a7_alu_shift): Likewise.
* config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
changes.
(cortex_a8_alu_shift): Likewise.
(cortex_a8_alu_shift_reg): Likewise.
* config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute
changes.
(cortex_a9_dp_shift): Likewise.
* config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
changes.
* config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
changes.
(cortex_r4_mov): Likewise.
(cortex_r4_alu_shift_reg): Likewise.
* config/arm/fa526.md (526_alu_op): Update for attribute changes.
(526_alu_shift_op): Likewise.
* config/arm/fa606te.md (606te_alu_op): Update for attribute
changes.
* config/arm/fa626te.md (626te_alu_op): Update for attribute
changes.
(626te_alu_shift_op): Likewise.
* config/arm/fa726te.md (726te_alu_op): Update for attribute
changes.
(726te_alu_shift_op): Likewise.
(726te_alu_shift_reg_op): Likewise.
* config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
(mp626_alu_shift_op): Likewise.
* config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
(pj4_alu_conds): Likewise.
(pj4_shift): Likewise.
(pj4_shift_conds): Likewise.
(pj4_alu_shift): Likewise.
(pj4_alu_shift_conds): Likewise.
* config/aarch64/aarch64.md: Update for attribute change all
occurrences
of arlo_* and shift* types.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-a64-fine-tune-alu.diff
Type: application/octet-stream
Size: 85678 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130801/beb5dfce/attachment.obj>
More information about the Gcc-patches
mailing list