From 3992c686b6fdc7e7fdebb960dd21b52fe510a7c2 Mon Sep 17 00:00:00 2001 From: olga Date: Thu, 13 Mar 2008 15:40:09 +0000 Subject: [PATCH] 2008-02-19 Alon Dayan Olga Golovanevsky PR tree-optimization/35041 * gcc.dg/struct/wo_prof_double_malloc.c: New test. 2008-03-13 Alon Dayan Olga Golovanevsky PR tree-optimization/35041 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option to locate the right position in a statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133171 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++ gcc/ipa-struct-reorg.c | 2 +- gcc/testsuite/ChangeLog | 6 +++++ .../gcc.dg/struct/wo_prof_double_malloc.c | 30 ++++++++++++++++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a133534..0b6653d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-03-13 Alon Dayan + Olga Golovanevsky + + PR tree-optimization/35041 + * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option + to locate the right position in a statement. + 2008-03-13 Uros Bizjak PR target/34000 diff --git a/gcc/ipa-struct-reorg.c b/gcc/ipa-struct-reorg.c index 514b9a2..515dba6 100644 --- a/gcc/ipa-struct-reorg.c +++ b/gcc/ipa-struct-reorg.c @@ -887,7 +887,7 @@ find_pos_in_stmt_1 (tree *tp, int *walk_subtrees, void * data) tree ref = r_pos->ref; tree t = *tp; - if (t == ref) + if (t == ref || (TREE_CODE (t) == SSA_NAME && SSA_NAME_VAR (t) == ref)) { r_pos->pos = tp; return t; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dbd8e8b..b77a93c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2008-02-19 Alon Dayan + Olga Golovanevsky + + PR tree-optimization/35041 + * gcc.dg/struct/wo_prof_double_malloc.c: New test. + 2008-03-13 Uros Bizjak PR target/34000 diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c b/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c new file mode 100644 index 0000000..27503f8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-do run } */ + +#include + +typedef struct test_struct +{ + int a; + int b; +} type_struct; + +typedef type_struct **struct_pointer2; + +struct_pointer2 str1; + +int main() +{ + int i, j; + + str1 = malloc (2 * sizeof (type_struct *)); + + for (i = 0; i <= 1; i++) + str1[i] = malloc (2 * sizeof (type_struct)); + + return 0; +} + +/*--------------------------------------------------------------------------*/ +/* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */ +/* { dg-final { cleanup-ipa-dump "*" } } */ -- 2.7.4