From: Martin Jambor Date: Tue, 23 Feb 2016 10:55:47 +0000 (+0100) Subject: [pr 69666] No SRA default_def replacements for unscalarizable regions X-Git-Tag: basepoints/gcc-7~811 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20c5e09e3f0d681a4f82acd01fd4c91816f7d21e;p=thirdparty%2Fgcc.git [pr 69666] No SRA default_def replacements for unscalarizable regions 2016-02-23 Martin Jambor PR tree-optimization/69666 * tree-sra.c (sra_modify_assign): Do not attempt to create default_def replacements for unscalarizable regions. testsuite/ * gcc.dg/tree-ssa/pr69666.c: New test. From-SVN: r233626 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49f6c2539921..e416c463c34a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-02-23 Martin Jambor + + PR tree-optimization/69666 + * tree-sra.c (sra_modify_assign): Do not attempt to create + default_def replacements for unscalarizable regions. + 2016-02-20 Mark Wielaard PR c/28901 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7d23225e994c..4d2fd4321fbe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-02-23 Martin Jambor + + PR tree-optimization/69666 + * gcc.dg/tree-ssa/pr69666.c: New test. + 2016-02-23 Andre Vehreschild PR fortran/67451 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr69666.c b/gcc/testsuite/gcc.dg/tree-ssa/pr69666.c new file mode 100644 index 000000000000..9be77ea1523b --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr69666.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -w" } */ + +int a, c, d; +float b; +void *memcpy(); +int fun1(int p1, unsigned char *p2) { + p2[p1] = b; + return a; +} +void fun2() { + unsigned char e[16]; + fun1(16, e); + d = e[d]; + memcpy(&c, e, sizeof(e)); +} diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 72157edd02e3..663ded2e121e 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -3339,6 +3339,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi) } else if (racc && !racc->grp_unscalarized_data + && !racc->grp_unscalarizable_region && TREE_CODE (lhs) == SSA_NAME && !access_has_replacements_p (racc)) {