diff options
author | wilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-28 11:52:08 +0000 |
---|---|---|
committer | wilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-28 11:52:08 +0000 |
commit | b2b28d24f9e8e257d1211a9b7717d9f32dc71544 (patch) | |
tree | 01eefad07cd25439ef89e429e6aa15805e974d2b /gcc/cfgexpand.c | |
parent | 9c6705c6e61ead4f7a97a727216a30218cb0241f (diff) | |
download | gcc-b2b28d24f9e8e257d1211a9b7717d9f32dc71544.tar.gz |
Add support for vector permute cost since various permutes can expand
into a complex sequence of instructions. This fixes major performance
regressions due to recent changes in SLP vectorizer (which now vectorizes
more aggressively and emits many complex permutes). Set the cost to > 1
for all microarchitectures so that the number of permutes is usually zero
and regressions disappear.
2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
* config/aarch64/aarch64.c (generic_vector_cost):
Set vec_permute_cost.
(cortexa57_vector_cost): Likewise.
(exynosm1_vector_cost): Likewise.
(xgene1_vector_cost): Likewise.
(aarch64_builtin_vectorization_cost): Use vec_permute_cost.
* config/aarch64/aarch64-protos.h (cpu_vector_cost):
Add vec_permute_cost entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232922 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgexpand.c')
0 files changed, 0 insertions, 0 deletions