diff options
author | Richard Biener <rguenther@suse.de> | 2025-05-25 19:28:54 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2025-07-08 10:12:29 +0200 |
commit | df64d099faf843d90e8fe29aec17d84277986ee9 (patch) | |
tree | 79e35f6eeeab570836bb9227ad05af7e45547d1c /gcc/rust/backend/rust-compile-struct-field-expr.h | |
parent | d1f05661fa6c8a6ea6f59ad365a84469100e425e (diff) | |
download | gcc-df64d099faf843d90e8fe29aec17d84277986ee9.zip gcc-df64d099faf843d90e8fe29aec17d84277986ee9.tar.gz gcc-df64d099faf843d90e8fe29aec17d84277986ee9.tar.bz2 |
Allow the target to request a masked vector epilogue
Targets recently got the ability to request the vector mode to be
used for a vector epilogue (or the epilogue of a vector epilogue). The
following adds the ability for it to indicate the epilogue should use
loop masking, irrespective of the --param vect-partial-vector-usage
default setting.
The patch below uses a separate flag from the epilogue mode, not
addressing the issue that on x86 the vector_modes mode iteration
hook would not allow for both masked and unmasked variants to be
tried and costed given this doesn't naturally map to modes on
that target. That's left for a future exercise - turning on
cost comparison for the x86 backend would be a prerequesite there.
* tree-vectorizer.h (vector_costs::suggested_epilogue_mode):
Add masked output parameter and return m_masked_epilogue.
(vector_costs::m_masked_epilogue): New tristate flag.
(vector_costs::vector_costs): Initialize m_masked_epilogue.
* tree-vect-loop.cc (vect_analyze_loop_1): Pass in masked
flag to optionally initialize can_use_partial_vectors_p.
(vect_analyze_loop): For epilogues also get whether to use
a masked epilogue for this loop from the target and use
that for the first epilogue mode we try.
Diffstat (limited to 'gcc/rust/backend/rust-compile-struct-field-expr.h')
0 files changed, 0 insertions, 0 deletions