[multiple changes]
authorAlon Dayan <alond@il.ibm.com>
Thu, 13 Mar 2008 15:40:09 +0000 (15:40 +0000)
committerOlga Golovanevsky <olga@gcc.gnu.org>
Thu, 13 Mar 2008 15:40:09 +0000 (15:40 +0000)
2008-02-19  Alon Dayan  <alond@il.ibm.com>
            Olga Golovanevsky  <olga@il.ibm.com>

PR tree-optimization/35041
* gcc.dg/struct/wo_prof_double_malloc.c: New test.

2008-03-13  Alon Dayan  <alond@il.ibm.com>
    Olga Golovanevsky  <olga@il.ibm.com>

PR tree-optimization/35041
* ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
to locate the right position in a statement.

Co-Authored-By: Olga Golovanevsky <olga@il.ibm.com>
From-SVN: r133171

gcc/ChangeLog
gcc/ipa-struct-reorg.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c [new file with mode: 0644]

index a13353456c34084f991c8b5cb4c998019f381ba1..0b6653d6b1fe2c998c1aa4d34ccef6d83d61c11d 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-13  Alon Dayan  <alond@il.ibm.com>
+           Olga Golovanevsky  <olga@il.ibm.com>
+
+       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  <ubizjak@gmail.com>
 
        PR target/34000
index 514b9a22898d4281f2a1fa6874de6a49f0b79f1a..515dba67206e45e21ed155f0d309ee828cdaec24 100644 (file)
@@ -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;
index dbd8e8bfca3fbc0e3484f3f776802a3c96952006..b77a93cd5806331d46df7c735b80b8c175f11c3c 100644 (file)
@@ -1,3 +1,9 @@
+2008-02-19  Alon Dayan  <alond@il.ibm.com>
+            Olga Golovanevsky  <olga@il.ibm.com>
+       
+       PR tree-optimization/35041
+       * gcc.dg/struct/wo_prof_double_malloc.c: New test.
+
 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
 
        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 (file)
index 0000000..27503f8
--- /dev/null
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+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 "*" } } */