https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97382
Bug ID: 97382
Summary: STMT_VINFO_SAME_ALIGN_REFS should go away
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Target Milestone: ---
We record for each stmt info with a DR the set of DRs with "the same alignment"
and use that for quick counting and align adjustment in peeling for alignment.
We can do better & cheaper if we simply record the set of DRs which use the
same DR_BASE_ADDRESS, DR_OFFSET and DR_STEP. We can then improve
adjusting DR_MISALIGNMENT even for not equal align refs based on
DR_INIT differences.
A single loop over DRs and a hash-map from the triple to a vector of DRs
local to vect_enhance_data_refs_alignment is probably better than the current
storage which is quadratic in size.
STMT_VINFO_SAME_ALIGN_REFS is one consumer that depends on the vector type
choosen for a DR and thus vect_update_shared_vectype and its problems.