re PR middle-end/68251 (sorry, unimplemented: reverse storage order for BLKmode)
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 9 Nov 2015 12:14:07 +0000 (12:14 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 9 Nov 2015 12:14:07 +0000 (12:14 +0000)
PR middle-end/68251
* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
* tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
* tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.

From-SVN: r230015

gcc/ChangeLog
gcc/tree-core.h
gcc/tree-streamer-in.c
gcc/tree-streamer-out.c
gcc/tree.h

index 4e96aeb..2c80165 100644 (file)
@@ -1,3 +1,11 @@
+2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/68251
+       * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
+       * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
+       * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
+       * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
+
 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        PR rtl-optimization/67749
index d7b4ca4..ff061ef 100644 (file)
@@ -1157,9 +1157,6 @@ struct GTY(()) tree_base {
        TYPE_SATURATING in
            other types
 
-       REF_REVERSE_STORAGE_ORDER in
-           BIT_FIELD_REF, MEM_REF
-
        VAR_DECL_IS_VIRTUAL_OPERAND in
           VAR_DECL
 
@@ -1174,6 +1171,9 @@ struct GTY(()) tree_base {
 
    default_def_flag:
 
+       TYPE_FINAL_P in
+          RECORD_TYPE, UNION_TYPE and QUAL_UNION_TYPE
+
        TYPE_VECTOR_OPAQUE in
           VECTOR_TYPE
 
@@ -1183,8 +1183,8 @@ struct GTY(()) tree_base {
        DECL_NONLOCAL_FRAME in
           VAR_DECL
 
-       TYPE_FINAL_P in
-          RECORD_TYPE, UNION_TYPE and QUAL_UNION_TYPE
+       REF_REVERSE_STORAGE_ORDER in
+           BIT_FIELD_REF, MEM_REF
 */
 
 struct GTY(()) tree_typed {
index 7417eaf..65a1ce3 100644 (file)
@@ -143,7 +143,10 @@ unpack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
       TYPE_ADDR_SPACE (expr) = (unsigned) bp_unpack_value (bp, 8);
     }
   else if (TREE_CODE (expr) == BIT_FIELD_REF || TREE_CODE (expr) == MEM_REF)
-    REF_REVERSE_STORAGE_ORDER (expr) = (unsigned) bp_unpack_value (bp, 1);
+    {
+      REF_REVERSE_STORAGE_ORDER (expr) = (unsigned) bp_unpack_value (bp, 1);
+      bp_unpack_value (bp, 8);
+    }
   else if (TREE_CODE (expr) == SSA_NAME)
     {
       SSA_NAME_IS_DEFAULT_DEF (expr) = (unsigned) bp_unpack_value (bp, 1);
index 9ca0271..d0b7f6d 100644 (file)
@@ -117,7 +117,10 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
       bp_pack_value (bp, TYPE_ADDR_SPACE (expr), 8);
     }
   else if (TREE_CODE (expr) == BIT_FIELD_REF || TREE_CODE (expr) == MEM_REF)
-    bp_pack_value (bp, REF_REVERSE_STORAGE_ORDER (expr), 1);
+    {
+      bp_pack_value (bp, REF_REVERSE_STORAGE_ORDER (expr), 1);
+      bp_pack_value (bp, 0, 8);
+    }
   else if (TREE_CODE (expr) == SSA_NAME)
     {
       bp_pack_value (bp, SSA_NAME_IS_DEFAULT_DEF (expr), 1);
index e71eba4..2a5ccfc 100644 (file)
@@ -927,7 +927,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
    But, of course, the storage order must be preserved when the accesses
    themselves are rewritten or transformed.  */
 #define REF_REVERSE_STORAGE_ORDER(NODE) \
-  (TREE_CHECK2 (NODE, BIT_FIELD_REF, MEM_REF)->base.u.bits.saturating_flag)
+  (TREE_CHECK2 (NODE, BIT_FIELD_REF, MEM_REF)->base.default_def_flag)
 
 /* These flags are available for each language front end to use internally.  */
 #define TREE_LANG_FLAG_0(NODE) \