aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/gfortran.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-06-19 12:57:27 +0200
committerRichard Biener <rguenther@suse.de>2024-06-20 08:47:44 +0200
commit46bb4ce4d30ab749d40f6f4cef6f1fb7c7813452 (patch)
treea45311f21186aa365e1ae840f429abec2a3d16b1 /gcc/fortran/gfortran.h
parentbea447a2982f3094aa3423b5045cea929f4f4700 (diff)
downloadgcc-46bb4ce4d30ab749d40f6f4cef6f1fb7c7813452.zip
gcc-46bb4ce4d30ab749d40f6f4cef6f1fb7c7813452.tar.gz
gcc-46bb4ce4d30ab749d40f6f4cef6f1fb7c7813452.tar.bz2
tree-optimization/114413 - SLP CSE after permute optimization
We currently fail to re-CSE SLP nodes after optimizing permutes which results in off cost estimates. For gcc.dg/vect/bb-slp-32.c this shows in not re-using the SLP node with the load and arithmetic for both the store and the reduction. The following implements CSE by re-bst-mapping nodes as finalization part of vect_optimize_slp. I've tried to make the CSE part of permute materialization but it isn't a very good fit there. I've not bothered to implement something more complete, also handling external defs or defs without SLP_TREE_SCALAR_STMTS. I realize this might result in more BB SLP which in turn might slow down code given costing for BB SLP is difficult (even that we now vectorize gcc.dg/vect/bb-slp-32.c on x86_64 might be not a good idea). This is nevertheless feeding more accurate info to costing which is good. PR tree-optimization/114413 * tree-vect-slp.cc (release_scalar_stmts_to_slp_tree_map): New function, split out from ... (vect_analyze_slp): ... here. Call it. (vect_cse_slp_nodes): New function. (vect_optimize_slp): Call it. * gcc.dg/vect/bb-slp-32.c: Expect CSE and vectorization on x86.
Diffstat (limited to 'gcc/fortran/gfortran.h')
0 files changed, 0 insertions, 0 deletions