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.