* tree.h (DECL_RESTRICTED_P): Delete.
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2012 13:56:23 +0000 (13:56 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 26 Nov 2012 13:56:23 +0000 (13:56 +0000)
(DECL_READ_P): Add comment.
(DECL_NONSHAREABLE): Likewise.
(TYPE_NO_FORCE_BLK): Fix comment.
(struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
* tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
fortran/
* trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.

* alias.c (nonoverlapping_component_refs_p): Fix thinko.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193815 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/alias.c
gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/tree-emutls.c
gcc/tree-streamer-in.c
gcc/tree-streamer-out.c
gcc/tree.h

index 2a03bca..1ff798f 100644 (file)
@@ -1,3 +1,16 @@
+2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (DECL_RESTRICTED_P): Delete.
+       (DECL_READ_P): Add comment.
+       (DECL_NONSHAREABLE): Likewise.
+       (TYPE_NO_FORCE_BLK): Fix comment.
+       (struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
+       * tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
+       * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
+       * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
+
+       * alias.c (nonoverlapping_component_refs_p): Fix thinko.
+
 2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * doc/sourcebuild.texi: Document arm_v8_vfp_ok.
index 21daa5f..15fd7f3 100644 (file)
@@ -2237,19 +2237,9 @@ nonoverlapping_component_refs_p (const_rtx rtlx, const_rtx rtly)
 
     found:
       /* If we're left with accessing different fields of a structure, then no
-        possible overlap, unless they are both true bitfields, i.e. bitfields
-        for which the size isn't a multiple of the (memory) unit.  */
+        possible overlap, unless they are both bitfields.  */
       if (TREE_CODE (typex) == RECORD_TYPE && fieldx != fieldy)
-       {
-         if (!DECL_BIT_FIELD (fieldx) || !DECL_BIT_FIELD (fieldy))
-           return true;
-
-         if ((tree_low_cst (DECL_SIZE (fieldx), 1) % BITS_PER_UNIT) == 0
-             || (tree_low_cst (DECL_SIZE (fieldy), 1) % BITS_PER_UNIT) == 0)
-           return true;
-
-         return false;
-       }
+       return !(DECL_BIT_FIELD (fieldx) && DECL_BIT_FIELD (fieldy));
 
       /* The comparison on the current field failed.  If we're accessing
         a very nested structure, look at the next outer level.  */
index d6c759c..2aa8d60 100644 (file)
@@ -1,3 +1,7 @@
+2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.
+
 2012-11-26  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/54997
index 9adcb8b..3bee178 100644 (file)
@@ -611,12 +611,6 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
   if (sym->attr.threadprivate
       && (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
     DECL_TLS_MODEL (decl) = decl_default_tls_model (decl);
-
-  if (!sym->attr.target
-      && !sym->attr.pointer
-      && !sym->attr.cray_pointee
-      && !sym->attr.proc_pointer)
-    DECL_RESTRICTED_P (decl) = 1;
 }
 
 
index 93270b8..8731b24 100644 (file)
@@ -296,7 +296,6 @@ new_emutls_decl (tree decl, tree alias_of)
   DECL_WEAK (to) = DECL_WEAK (decl);
   DECL_VISIBILITY (to) = DECL_VISIBILITY (decl);
   DECL_VISIBILITY_SPECIFIED (to) = DECL_VISIBILITY_SPECIFIED (decl);
-  DECL_RESTRICTED_P (to) = DECL_RESTRICTED_P (decl);
   DECL_DLLIMPORT_P (to) = DECL_DLLIMPORT_P (decl);
 
   DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to);
index 62649d1..73dc73c 100644 (file)
@@ -236,7 +236,6 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
       if (TREE_CODE (expr) == VAR_DECL
          || TREE_CODE (expr) == PARM_DECL)
        DECL_HAS_VALUE_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
-      DECL_RESTRICTED_P (expr) = (unsigned) bp_unpack_value (bp, 1);
     }
 }
 
index f1470c1..525426c 100644 (file)
@@ -202,7 +202,6 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
       if (TREE_CODE (expr) == VAR_DECL
          || TREE_CODE (expr) == PARM_DECL)
        bp_pack_value (bp, DECL_HAS_VALUE_EXPR_P (expr), 1);
-      bp_pack_value (bp, DECL_RESTRICTED_P (expr), 1);
     }
 }
 
index a830e28..9f17253 100644 (file)
@@ -1321,18 +1321,13 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
   (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
                RESULT_DECL)->decl_common.decl_by_reference_flag)
 
-/* In a RESULT_DECL, PARM_DECL and VAR_DECL, means that this decl
-   can be used as restricted tag to disambiguate against other restrict
-   pointers.  Used by fortran to capture something like non-addressability
-   (which it isn't really because the middle-end does take addresses of
-   such variables).  */
-#define DECL_RESTRICTED_P(NODE) \
-  (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
-               RESULT_DECL)->decl_common.decl_restricted_flag)
-
+/* In VAR_DECL and PARM_DECL, set when the decl has been used except for
+   being set.  */
 #define DECL_READ_P(NODE) \
   (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
 
+/* In VAR_DECL or RESULT_DECL, set when significant code movement precludes
+   attempting to share the stack slot with some other variable.  */
 #define DECL_NONSHAREABLE(NODE) \
   (TREE_CHECK2 (NODE, VAR_DECL, \
                RESULT_DECL)->decl_common.decl_nonshareable_flag)
@@ -2195,8 +2190,8 @@ extern enum machine_mode vector_type_mode (const_tree);
    get one debug info record for them.  */
 #define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
 
-/* In a RECORD_TYPE, UNION_TYPE or QUAL_UNION_TYPE, it means the type
-   has BLKmode only because it lacks the alignment requirement for
+/* In a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ARRAY_TYPE, it means
+   the type has BLKmode only because it lacks the alignment required for
    its size.  */
 #define TYPE_NO_FORCE_BLK(NODE) \
   (TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
@@ -2848,26 +2843,22 @@ struct GTY(()) tree_decl_common {
      In VAR_DECL, PARM_DECL and RESULT_DECL, this is
      DECL_HAS_VALUE_EXPR_P.  */
   unsigned decl_flag_2 : 1;
+  /* 1 bit unused.  */
+  unsigned decl_flag_3 : 1;
   /* Logically, these two would go in a theoretical base shared by var and
      parm decl. */
   unsigned gimple_reg_flag : 1;
   /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE.  */
   unsigned decl_by_reference_flag : 1;
-  /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_RESTRICTED_P.  */
-  unsigned decl_restricted_flag : 1;
-
-  /* In VAR_DECL and PARM_DECL set when the decl has been used except for
-     being set.  */
+  /* In a VAR_DECL and PARM_DECL, this is DECL_READ_P.  */
   unsigned decl_read_flag : 1;
-
-  /* In VAR_DECL or RESULT_DECL set when significant code movement precludes
-     attempting to share the stack slot with some other variable.  */
+  /* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE.  */
   unsigned decl_nonshareable_flag : 1;
 
   /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs.  */
   unsigned int off_align : 8;
 
-  /* 24-bits unused.  */
+  /* 24 bits unused.  */
 
   /* DECL_ALIGN.  It should have the same size as TYPE_ALIGN.  */
   unsigned int align;