aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-10-29 12:21:41 +0100
committerRichard Biener <rguenther@suse.de>2020-10-29 13:09:49 +0100
commite4b3d2a4c25c72211aaa8894a62b60900f543689 (patch)
tree927da55d15f9c346457ea259ef7152cf0e861302
parenteb6b71b83c9f099808bc50c6a467a0caf4002e50 (diff)
downloadgcc-e4b3d2a4c25c72211aaa8894a62b60900f543689.zip
gcc-e4b3d2a4c25c72211aaa8894a62b60900f543689.tar.gz
gcc-e4b3d2a4c25c72211aaa8894a62b60900f543689.tar.bz2
Consistently pass the vector type for scalar SLP cost compute
This avoids randomly (based on whether the stmt is SLP_TREE_REPRESENTATIVE and not a pattern stmt) passing a vector type or NULL to the add_stmt_cost hook for scalar code cost compute. For example the x86 backend uses only the vector type to decide on the scalar computation mode which makes costing off. So the following explicitely passes the vector type and uses SLP_TREE_VECTYPE for this purpose. 2020-10-29 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass SLP_TREE_VECTYPE to record_stmt_cost.
-rw-r--r--gcc/tree-vect-slp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 0a7b8e6..7a08908 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -3937,7 +3937,8 @@ vect_bb_slp_scalar_cost (vec_info *vinfo,
continue;
else
kind = scalar_stmt;
- record_stmt_cost (cost_vec, 1, kind, orig_stmt_info, 0, vect_body);
+ record_stmt_cost (cost_vec, 1, kind, orig_stmt_info,
+ SLP_TREE_VECTYPE (node), 0, vect_body);
}
auto_vec<bool, 20> subtree_life;