https://gcc.gnu.org/g:40445711b8af113ef423d8bcac1a7ce1c47f62d7

commit r15-9251-g40445711b8af113ef423d8bcac1a7ce1c47f62d7
Author: Martin Jambor <mjam...@suse.cz>
Date:   Mon Apr 7 13:32:10 2025 +0200

    sra: Clear grp_same_access_path of acesses created by total scalarization 
(PR118924)
    
    During analysis of PR 118924 it was discussed that total scalarization
    invents access paths (strings of COMPONENT_REFs and possibly even
    ARRAY_REFs) which did not exist in the program before which can have
    unintended effects on subsequent AA queries.  Although not doing that
    does not mean that SRA cannot create such situations (see the bug for
    more info), it has been agreed that not doing this is generally better.
    This patch therfore makes SRA fall back on creating simple MEM_REFs when
    accessing components of an aggregate corresponding to what a SRA
    variable now represents.
    
    gcc/ChangeLog:
    
    2025-03-26  Martin Jambor  <mjam...@suse.cz>
    
            PR tree-optimization/118924
            * tree-sra.cc (create_total_scalarization_access): Set
            grp_same_access_path flag to zero.

Diff:
---
 gcc/tree-sra.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-sra.cc b/gcc/tree-sra.cc
index ae7cd57a5f23..302b73e83b8f 100644
--- a/gcc/tree-sra.cc
+++ b/gcc/tree-sra.cc
@@ -3462,7 +3462,7 @@ create_total_scalarization_access (struct access *parent, 
HOST_WIDE_INT pos,
   access->grp_write = parent->grp_write;
   access->grp_total_scalarization = 1;
   access->grp_hint = 1;
-  access->grp_same_access_path = path_comparable_for_same_access (expr);
+  access->grp_same_access_path = 0;
   access->reverse = reverse_storage_order_for_component_p (expr);
 
   access->next_sibling = next_sibling;

Reply via email to