aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-07-03 13:59:33 +0200
committerRichard Biener <rguenther@suse.de>2023-07-04 09:04:51 +0200
commit0682a32c026f1e246eb07bb8066abca4636f01d8 (patch)
tree7398ac782ac4989b785cb1b387c8f9feb6b77658 /gcc/rust/backend
parenteed9eeaab30fd7b9e509ec3cf78f5f3c881b0abf (diff)
downloadgcc-0682a32c026f1e246eb07bb8066abca4636f01d8.zip
gcc-0682a32c026f1e246eb07bb8066abca4636f01d8.tar.gz
gcc-0682a32c026f1e246eb07bb8066abca4636f01d8.tar.bz2
tree-optimization/110310 - move vector epilogue disabling to analysis phase
The following removes late deciding to elide vectorized epilogues to the analysis phase and also avoids altering the epilogues niter. The costing part from vect_determine_partial_vectors_and_peeling is moved to vect_analyze_loop_costing where we use the main loop analysis to constrain the epilogue scalar iterations. I have not tried to integrate this with vect_known_niters_smaller_than_vf. It seems the for_epilogue_p parameter in vect_determine_partial_vectors_and_peeling is largely useless and we could compute that in the function itself. PR tree-optimization/110310 * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling): Move costing part ... (vect_analyze_loop_costing): ... here. Integrate better estimate for epilogues from ... (vect_analyze_loop_2): Call vect_determine_partial_vectors_and_peeling with actual epilogue status. * tree-vect-loop-manip.cc (vect_do_peeling): ... here and avoid cancelling epilogue vectorization. (vect_update_epilogue_niters): Remove. No longer update epilogue LOOP_VINFO_NITERS. * gcc.target/i386/pr110310.c: New testcase. * gcc.dg/vect/slp-perm-12.c: Disable epilogue vectorization.
Diffstat (limited to 'gcc/rust/backend')
0 files changed, 0 insertions, 0 deletions