Commit 7b95c729 by Eric Botcazou Committed by Eric Botcazou

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
parent 0780fbab
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> 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/67749 PR rtl-optimization/67749
...@@ -1157,9 +1157,6 @@ struct GTY(()) tree_base { ...@@ -1157,9 +1157,6 @@ struct GTY(()) tree_base {
TYPE_SATURATING in TYPE_SATURATING in
other types other types
REF_REVERSE_STORAGE_ORDER in
BIT_FIELD_REF, MEM_REF
VAR_DECL_IS_VIRTUAL_OPERAND in VAR_DECL_IS_VIRTUAL_OPERAND in
VAR_DECL VAR_DECL
...@@ -1174,6 +1171,9 @@ struct GTY(()) tree_base { ...@@ -1174,6 +1171,9 @@ struct GTY(()) tree_base {
default_def_flag: default_def_flag:
TYPE_FINAL_P in
RECORD_TYPE, UNION_TYPE and QUAL_UNION_TYPE
TYPE_VECTOR_OPAQUE in TYPE_VECTOR_OPAQUE in
VECTOR_TYPE VECTOR_TYPE
...@@ -1183,8 +1183,8 @@ struct GTY(()) tree_base { ...@@ -1183,8 +1183,8 @@ struct GTY(()) tree_base {
DECL_NONLOCAL_FRAME in DECL_NONLOCAL_FRAME in
VAR_DECL VAR_DECL
TYPE_FINAL_P in REF_REVERSE_STORAGE_ORDER in
RECORD_TYPE, UNION_TYPE and QUAL_UNION_TYPE BIT_FIELD_REF, MEM_REF
*/ */
struct GTY(()) tree_typed { struct GTY(()) tree_typed {
......
...@@ -143,7 +143,10 @@ unpack_ts_base_value_fields (struct bitpack_d *bp, tree expr) ...@@ -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); TYPE_ADDR_SPACE (expr) = (unsigned) bp_unpack_value (bp, 8);
} }
else if (TREE_CODE (expr) == BIT_FIELD_REF || TREE_CODE (expr) == MEM_REF) 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) else if (TREE_CODE (expr) == SSA_NAME)
{ {
SSA_NAME_IS_DEFAULT_DEF (expr) = (unsigned) bp_unpack_value (bp, 1); SSA_NAME_IS_DEFAULT_DEF (expr) = (unsigned) bp_unpack_value (bp, 1);
......
...@@ -117,7 +117,10 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr) ...@@ -117,7 +117,10 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, TYPE_ADDR_SPACE (expr), 8); bp_pack_value (bp, TYPE_ADDR_SPACE (expr), 8);
} }
else if (TREE_CODE (expr) == BIT_FIELD_REF || TREE_CODE (expr) == MEM_REF) 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) else if (TREE_CODE (expr) == SSA_NAME)
{ {
bp_pack_value (bp, SSA_NAME_IS_DEFAULT_DEF (expr), 1); bp_pack_value (bp, SSA_NAME_IS_DEFAULT_DEF (expr), 1);
......
...@@ -927,7 +927,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, ...@@ -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 But, of course, the storage order must be preserved when the accesses
themselves are rewritten or transformed. */ themselves are rewritten or transformed. */
#define REF_REVERSE_STORAGE_ORDER(NODE) \ #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. */ /* These flags are available for each language front end to use internally. */
#define TREE_LANG_FLAG_0(NODE) \ #define TREE_LANG_FLAG_0(NODE) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment