From 7b95c729031bc2d698075a8c594b7ed6ba9e0191 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Mon, 9 Nov 2015 12:14:07 +0000 Subject: [PATCH] re PR middle-end/68251 (sorry, unimplemented: reverse storage order for BLKmode) 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 | 8 ++++++++ gcc/tree-core.h | 10 +++++----- gcc/tree-streamer-in.c | 5 ++++- gcc/tree-streamer-out.c | 5 ++++- gcc/tree.h | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e96aeb27f1..2c80165650b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-11-09 Eric Botcazou + + 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 PR rtl-optimization/67749 diff --git a/gcc/tree-core.h b/gcc/tree-core.h index d7b4ca4914a..ff061ef8637 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -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 { diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index 7417eaf81e7..65a1ce3bef4 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -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); diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index 9ca02719a19..d0b7f6db171 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -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); diff --git a/gcc/tree.h b/gcc/tree.h index e71eba43d50..2a5ccfc6802 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -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) \ -- 2.30.2