summaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-31 00:58:26 +0000
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-31 00:58:26 +0000
commit056b102d35742308366c6c6a473772bcbea517c1 (patch)
tree74da652d261bc868451481842f3c2ef76afa1b8e /gcc/tree-sra.c
parentf4d6cd201ff10364c75a1f591fa2282e8c1b59ae (diff)
downloadgcc-056b102d35742308366c6c6a473772bcbea517c1.tar.gz
* tree-sra.c (decide_block_copy): Disable scalarization of sub-elements.
* g++.dg/tree-sra/ssa-sra-3.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97301 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index f8aeebe573e..2fb23bd6022 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1299,6 +1299,12 @@ decide_block_copy (struct sra_elt *elt)
fputc ('\n', dump_file);
}
+ /* Disable scalarization of sub-elements */
+ for (c = elt->children; c; c = c->sibling)
+ {
+ c->cannot_scalarize = 1;
+ decide_block_copy (c);
+ }
return false;
}