aarch64: Ignore inductions when costing vector code
In practice it seems to be better not to cost a vector induction. The scalar code generally needs the same induction but doesn't cost it, making an apples-for-apples comparison harder. Most inductions also have a low latency and their cost usually gets hidden by other operations. Like with the previous patches, this one only becomes active if a CPU selects use_new_vector_costs. It should therefore have a very low impact on other CPUs. gcc/ * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype): Assume a zero cost for induction phis.
This commit is contained in:
parent
99f94ae501
commit
e4180ab2fe
1 changed files with 6 additions and 0 deletions
|
@ -14541,6 +14541,12 @@ aarch64_detect_vector_stmt_subtype (vec_info *vinfo, vect_cost_for_stmt kind,
|
|||
if (aarch64_sve_mode_p (TYPE_MODE (vectype)))
|
||||
sve_costs = aarch64_tune_params.vec_costs->sve;
|
||||
|
||||
/* It's generally better to avoid costing inductions, since the induction
|
||||
will usually be hidden by other operations. This is particularly true
|
||||
for things like COND_REDUCTIONS. */
|
||||
if (is_a<gphi *> (stmt_info->stmt))
|
||||
return 0;
|
||||
|
||||
/* Detect cases in which vec_to_scalar is describing the extraction of a
|
||||
vector element in preparation for a scalar store. The store itself is
|
||||
costed separately. */
|
||||
|
|
Loading…
Add table
Reference in a new issue