On Fri, Dec 06, 2013 at 02:27:25PM +0100, Jakub Jelinek wrote:
> > You can install that as cleanup now if you split it out (so hopefully
> > no users creep back that make removing it impossible).
> 
> Ok, will do.

Here is that part, bootstrapped/regtested on x86_64-linux and i686-linux,
committed to trunk.

2013-12-06  Jakub Jelinek  <ja...@redhat.com>

        * tree-data-ref.c (struct data_ref_loc_d): Replace pos field with ref.
        (get_references_in_stmt): Don't record operand addresses, but
        operands themselves.
        (find_data_references_in_stmt, graphite_find_data_references_in_stmt):
        Adjust for the pos -> ref change.

--- gcc/tree-data-ref.c.jj      2013-11-28 16:01:05.674837413 +0100
+++ gcc/tree-data-ref.c 2013-12-06 18:31:35.496730632 +0100
@@ -4320,8 +4320,8 @@ compute_all_dependences (vec<data_refere
 
 typedef struct data_ref_loc_d
 {
-  /* Position of the memory reference.  */
-  tree *pos;
+  /* The memory reference.  */
+  tree ref;
 
   /* True if the memory reference is read.  */
   bool is_read;
@@ -4336,7 +4336,7 @@ get_references_in_stmt (gimple stmt, vec
 {
   bool clobbers_memory = false;
   data_ref_loc ref;
-  tree *op0, *op1;
+  tree op0, op1;
   enum gimple_code stmt_code = gimple_code (stmt);
 
   /* ASM_EXPR and CALL_EXPR may embed arbitrary side effects.
@@ -4369,15 +4369,15 @@ get_references_in_stmt (gimple stmt, vec
   if (stmt_code == GIMPLE_ASSIGN)
     {
       tree base;
-      op0 = gimple_assign_lhs_ptr (stmt);
-      op1 = gimple_assign_rhs1_ptr (stmt);
+      op0 = gimple_assign_lhs (stmt);
+      op1 = gimple_assign_rhs1 (stmt);
 
-      if (DECL_P (*op1)
-         || (REFERENCE_CLASS_P (*op1)
-             && (base = get_base_address (*op1))
+      if (DECL_P (op1)
+         || (REFERENCE_CLASS_P (op1)
+             && (base = get_base_address (op1))
              && TREE_CODE (base) != SSA_NAME))
        {
-         ref.pos = op1;
+         ref.ref = op1;
          ref.is_read = true;
          references->safe_push (ref);
        }
@@ -4386,16 +4386,16 @@ get_references_in_stmt (gimple stmt, vec
     {
       unsigned i, n;
 
-      op0 = gimple_call_lhs_ptr (stmt);
+      op0 = gimple_call_lhs (stmt);
       n = gimple_call_num_args (stmt);
       for (i = 0; i < n; i++)
        {
-         op1 = gimple_call_arg_ptr (stmt, i);
+         op1 = gimple_call_arg (stmt, i);
 
-         if (DECL_P (*op1)
-             || (REFERENCE_CLASS_P (*op1) && get_base_address (*op1)))
+         if (DECL_P (op1)
+             || (REFERENCE_CLASS_P (op1) && get_base_address (op1)))
            {
-             ref.pos = op1;
+             ref.ref = op1;
              ref.is_read = true;
              references->safe_push (ref);
            }
@@ -4404,11 +4404,11 @@ get_references_in_stmt (gimple stmt, vec
   else
     return clobbers_memory;
 
-  if (*op0
-      && (DECL_P (*op0)
-         || (REFERENCE_CLASS_P (*op0) && get_base_address (*op0))))
+  if (op0
+      && (DECL_P (op0)
+         || (REFERENCE_CLASS_P (op0) && get_base_address (op0))))
     {
-      ref.pos = op0;
+      ref.ref = op0;
       ref.is_read = false;
       references->safe_push (ref);
     }
@@ -4435,7 +4435,7 @@ find_data_references_in_stmt (struct loo
   FOR_EACH_VEC_ELT (references, i, ref)
     {
       dr = create_data_ref (nest, loop_containing_stmt (stmt),
-                           *ref->pos, stmt, ref->is_read);
+                           ref->ref, stmt, ref->is_read);
       gcc_assert (dr != NULL);
       datarefs->safe_push (dr);
     }
@@ -4464,7 +4464,7 @@ graphite_find_data_references_in_stmt (l
 
   FOR_EACH_VEC_ELT (references, i, ref)
     {
-      dr = create_data_ref (nest, loop, *ref->pos, stmt, ref->is_read);
+      dr = create_data_ref (nest, loop, ref->ref, stmt, ref->is_read);
       gcc_assert (dr != NULL);
       datarefs->safe_push (dr);
     }

        Jakub

Reply via email to