Commit ab3dfff7 by Sameera Deshpande Committed by Greta Yorsh

arm-protos.h (tune_params): Add prefer_ldrd_strd.

gcc/

2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
            Greta Yorsh  <Greta.Yorsh@arm.com>

        * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
        * config/arm/arm.c (arm_slowmul_tune): Initialize it.
        (arm_fastmul_tune, arm_strongarm_tune): Likewise.
        (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
        (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
        (arm_fa726te_tune): Likewise.



Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>

From-SVN: r189722
parent 3ebc22c1
2012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
* config/arm/arm.c (arm_slowmul_tune): Initialize it.
(arm_fastmul_tune, arm_strongarm_tune): Likewise.
(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
(arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
(arm_fa726te_tune): Likewise.
2012-07-20 Richard Guenther <rguenther@suse.de> 2012-07-20 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (collect_dfa_stats): Simplify. * tree-dfa.c (collect_dfa_stats): Simplify.
......
...@@ -238,6 +238,8 @@ struct tune_params ...@@ -238,6 +238,8 @@ struct tune_params
int l1_cache_line_size; int l1_cache_line_size;
bool prefer_constant_pool; bool prefer_constant_pool;
int (*branch_cost) (bool, bool); int (*branch_cost) (bool, bool);
/* Prefer STRD/LDRD instructions over PUSH/POP/LDM/STM. */
bool prefer_ldrd_strd;
}; };
extern const struct tune_params *current_tune; extern const struct tune_params *current_tune;
......
...@@ -875,7 +875,8 @@ const struct tune_params arm_slowmul_tune = ...@@ -875,7 +875,8 @@ const struct tune_params arm_slowmul_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_fastmul_tune = const struct tune_params arm_fastmul_tune =
...@@ -886,7 +887,8 @@ const struct tune_params arm_fastmul_tune = ...@@ -886,7 +887,8 @@ const struct tune_params arm_fastmul_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
/* StrongARM has early execution of branches, so a sequence that is worth /* StrongARM has early execution of branches, so a sequence that is worth
...@@ -900,7 +902,8 @@ const struct tune_params arm_strongarm_tune = ...@@ -900,7 +902,8 @@ const struct tune_params arm_strongarm_tune =
3, /* Max cond insns. */ 3, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_xscale_tune = const struct tune_params arm_xscale_tune =
...@@ -911,7 +914,8 @@ const struct tune_params arm_xscale_tune = ...@@ -911,7 +914,8 @@ const struct tune_params arm_xscale_tune =
3, /* Max cond insns. */ 3, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_9e_tune = const struct tune_params arm_9e_tune =
...@@ -922,7 +926,8 @@ const struct tune_params arm_9e_tune = ...@@ -922,7 +926,8 @@ const struct tune_params arm_9e_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_v6t2_tune = const struct tune_params arm_v6t2_tune =
...@@ -933,7 +938,8 @@ const struct tune_params arm_v6t2_tune = ...@@ -933,7 +938,8 @@ const struct tune_params arm_v6t2_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
false, /* Prefer constant pool. */ false, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
/* Generic Cortex tuning. Use more specific tunings if appropriate. */ /* Generic Cortex tuning. Use more specific tunings if appropriate. */
...@@ -945,7 +951,8 @@ const struct tune_params arm_cortex_tune = ...@@ -945,7 +951,8 @@ const struct tune_params arm_cortex_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
false, /* Prefer constant pool. */ false, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
/* Branches can be dual-issued on Cortex-A5, so conditional execution is /* Branches can be dual-issued on Cortex-A5, so conditional execution is
...@@ -959,7 +966,8 @@ const struct tune_params arm_cortex_a5_tune = ...@@ -959,7 +966,8 @@ const struct tune_params arm_cortex_a5_tune =
1, /* Max cond insns. */ 1, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
false, /* Prefer constant pool. */ false, /* Prefer constant pool. */
arm_cortex_a5_branch_cost arm_cortex_a5_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_cortex_a9_tune = const struct tune_params arm_cortex_a9_tune =
...@@ -970,7 +978,8 @@ const struct tune_params arm_cortex_a9_tune = ...@@ -970,7 +978,8 @@ const struct tune_params arm_cortex_a9_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_BENEFICIAL(4,32,32), ARM_PREFETCH_BENEFICIAL(4,32,32),
false, /* Prefer constant pool. */ false, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
const struct tune_params arm_fa726te_tune = const struct tune_params arm_fa726te_tune =
...@@ -981,7 +990,8 @@ const struct tune_params arm_fa726te_tune = ...@@ -981,7 +990,8 @@ const struct tune_params arm_fa726te_tune =
5, /* Max cond insns. */ 5, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL, ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */ true, /* Prefer constant pool. */
arm_default_branch_cost arm_default_branch_cost,
false /* Prefer LDRD/STRD. */
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment