aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2019-03-18 12:28:01 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2019-03-18 12:28:01 +0100
commitcfce6e055d98cf55a912dfe814d48a331ec2eee9 (patch)
treef503ed0e9c71e2b6d7bb8244dcf11f98b8ef3659 /gcc/tree-sra.c
parent4d7dfada8935a362601d1782bd6598e3e1d78d74 (diff)
downloadgcc-cfce6e055d98cf55a912dfe814d48a331ec2eee9.zip
gcc-cfce6e055d98cf55a912dfe814d48a331ec2eee9.tar.gz
gcc-cfce6e055d98cf55a912dfe814d48a331ec2eee9.tar.bz2
Add forgotten requeing in propagate_subaccesses_across_link
2019-03-18 Martin Jambor <mjambor@suse.cz> PR tree-optimization/89546 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if any propagation to its children took place. testsuite/ * gcc.dg/tree-ssa/pr89546.c: New test. From-SVN: r269761
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index ca3858d..fd51a3d 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2752,8 +2752,12 @@ propagate_subaccesses_across_link (struct access *lacc, struct access *racc)
rchild->grp_hint = 1;
new_acc->grp_hint |= new_acc->grp_read;
- if (rchild->first_child)
- ret |= propagate_subaccesses_across_link (new_acc, rchild);
+ if (rchild->first_child
+ && propagate_subaccesses_across_link (new_acc, rchild))
+ {
+ ret = 1;
+ add_access_to_work_queue (new_acc);
+ }
}
else
{