Commit bedbdfcf by Richard Guenther Committed by Richard Biener

tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	* tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
	* tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
	* lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
	not stream TYPE_DEBUG_REPRESENTATION_TYPE.
	* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.

From-SVN: r164193
parent cf6a4097
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
* tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
* lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
not stream TYPE_DEBUG_REPRESENTATION_TYPE.
* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2010-09-10 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
* dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
......
......@@ -2037,8 +2037,6 @@ lto_input_ts_type_tree_pointers (struct lto_input_block *ib,
else if (TREE_CODE (expr) == FUNCTION_TYPE
|| TREE_CODE (expr) == METHOD_TYPE)
TYPE_ARG_TYPES (expr) = lto_input_tree (ib, data_in);
else if (TREE_CODE (expr) == VECTOR_TYPE)
TYPE_DEBUG_REPRESENTATION_TYPE (expr) = lto_input_tree (ib, data_in);
TYPE_SIZE (expr) = lto_input_tree (ib, data_in);
TYPE_SIZE_UNIT (expr) = lto_input_tree (ib, data_in);
......
......@@ -959,8 +959,6 @@ lto_output_ts_type_tree_pointers (struct output_block *ob, tree expr,
else if (TREE_CODE (expr) == FUNCTION_TYPE
|| TREE_CODE (expr) == METHOD_TYPE)
lto_output_tree_or_ref (ob, TYPE_ARG_TYPES (expr), ref_p);
else if (TREE_CODE (expr) == VECTOR_TYPE)
lto_output_tree_or_ref (ob, TYPE_DEBUG_REPRESENTATION_TYPE (expr), ref_p);
lto_output_tree_or_ref (ob, TYPE_SIZE (expr), ref_p);
lto_output_tree_or_ref (ob, TYPE_SIZE_UNIT (expr), ref_p);
......
......@@ -8792,24 +8792,6 @@ make_vector_type (tree innertype, int nunits, enum machine_mode mode)
layout_type (t);
{
tree index = build_int_cst (NULL_TREE, nunits - 1);
tree array = build_array_type (TYPE_MAIN_VARIANT (innertype),
build_index_type (index));
tree rt = make_node (RECORD_TYPE);
TYPE_FIELDS (rt) = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
get_identifier ("f"), array);
DECL_CONTEXT (TYPE_FIELDS (rt)) = rt;
layout_type (rt);
TYPE_DEBUG_REPRESENTATION_TYPE (t) = rt;
/* In dwarfout.c, type lookup uses TYPE_UID numbers. We want to output
the representation type, and we want to find that die when looking up
the vector type. This is most easily achieved by making the TYPE_UID
numbers equal. */
TYPE_UID (rt) = TYPE_UID (t);
}
hashcode = iterative_hash_host_wide_int (VECTOR_TYPE, hashcode);
hashcode = iterative_hash_host_wide_int (nunits, hashcode);
hashcode = iterative_hash_host_wide_int (mode, hashcode);
......
......@@ -2118,12 +2118,6 @@ extern enum machine_mode vector_type_mode (const_tree);
#define TYPE_IBIT(NODE) (GET_MODE_IBIT (TYPE_MODE (NODE)))
#define TYPE_FBIT(NODE) (GET_MODE_FBIT (TYPE_MODE (NODE)))
/* For a VECTOR_TYPE node, this describes a different type which is emitted
in the debugging output. We use this to describe a vector as a
structure containing an array. */
#define TYPE_DEBUG_REPRESENTATION_TYPE(NODE) \
(VECTOR_TYPE_CHECK (NODE)->type.values)
/* For record and union types, information about this type, as a base type
for itself. */
#define TYPE_BINFO(NODE) (RECORD_OR_UNION_CHECK(NODE)->type.binfo)
......
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