OSDN Git Service

2009-04-07 Bob Duff <duff@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / matrix-reorg.c
index 6614551..8f71be5 100644 (file)
@@ -1,5 +1,5 @@
 /* Matrix layout transformations.
-   Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    Contributed by Razya Ladelsky <razya@il.ibm.com>
    Originally written by Revital Eres and Mustafa Hagog.
    
@@ -261,9 +261,6 @@ struct matrix_info
 
   gimple min_indirect_level_escape_stmt;
 
-  /* Is the matrix transposed.  */
-  bool is_transposed_p;
-
   /* Hold the allocation site for each level (dimension).
      We can use NUM_DIMS as the upper bound and allocate the array
      once with this number of elements and no need to use realloc and
@@ -272,6 +269,9 @@ struct matrix_info
 
   int max_malloced_level;
 
+  /* Is the matrix transposed.  */
+  bool is_transposed_p;
+
   /* The location of the allocation sites (they must be in one
      function).  */
   tree allocation_function_decl;
@@ -303,7 +303,7 @@ struct matrix_info
 
   /* An array of the accesses to be flattened.
      elements are of type "struct access_site_info *".  */
-    VEC (access_site_info_p, heap) * access_l;
+  VEC (access_site_info_p, heap) * access_l;
 
   /* A map of how the dimensions will be organized at the end of 
      the analyses.  */
@@ -658,8 +658,7 @@ ssa_accessed_in_assign_rhs (gimple stmt, struct ssa_acc_in_tree *a)
 
     case SSA_NAME:
     case INDIRECT_REF:
-    case CONVERT_EXPR:
-    case NOP_EXPR:
+    CASE_CONVERT:
     case VIEW_CONVERT_EXPR:
       ssa_accessed_in_tree (gimple_assign_rhs1 (stmt), a);
       break;
@@ -931,7 +930,7 @@ analyze_transpose (void **slot, void *data ATTRIBUTE_UNUSED)
              free (acc_info);
              continue;
            }
-         if (simple_iv (loop, acc_info->stmt, acc_info->offset, &iv, true))
+         if (simple_iv (loop, loop, acc_info->offset, &iv, true))
            {
              if (iv.step != NULL)
                {
@@ -1602,7 +1601,7 @@ check_allocation_function (void **slot, void *data ATTRIBUTE_UNUSED)
     {
       gimple call_stmt;
       tree size;
-      struct malloc_call_data mcd;
+      struct malloc_call_data mcd = {NULL, NULL_TREE, NULL_TREE};
 
       call_stmt = mi->malloc_for_level[level];
 
@@ -1963,6 +1962,7 @@ transform_access_sites (void **slot, void *data ATTRIBUTE_UNUSED)
                {
                  gcc_assert (TREE_CODE (offset) == INTEGER_CST);
                  gimple_assign_set_rhs2 (acc_info->stmt, tmp1);
+                 update_stmt (acc_info->stmt);
                }
            }
        }
@@ -2026,7 +2026,7 @@ transform_allocation_sites (void **slot, void *data ATTRIBUTE_UNUSED)
   struct cgraph_node *c_node;
   struct cgraph_edge *e;
   gimple_stmt_iterator gsi;
-  struct malloc_call_data mcd;
+  struct malloc_call_data mcd = {NULL, NULL_TREE, NULL_TREE};
   HOST_WIDE_INT element_size;
 
   imm_use_iterator imm_iter;
@@ -2421,7 +2421,7 @@ struct simple_ipa_opt_pass pass_ipa_matrix_reorg =
   0,                           /* static_pass_number */
   0,                           /* tv_id */
   0,                           /* properties_required */
-  PROP_trees,                  /* properties_provided */
+  0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
   TODO_dump_cgraph | TODO_dump_func    /* todo_flags_finish */