Commit 291d3f4d by Richard Biener Committed by Richard Biener

dwarf2out.c (decl_scope_table): Remove.

2018-06-28  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (decl_scope_table): Remove.
	(push_decl_scope): Likewise.
	(pop_decl_scope): Likewise.
	(gen_type_die_for_member): Do not call push/pop_decl_scope.
	(gen_struct_or_union_type_die): Likewise.
	(gen_tagged_type_die): Likewise.
	(dwarf2out_init): Do not initialize decl_scope_table.
	(dwarf2out_c_finalize): Do not free it.

From-SVN: r262218
parent 4ece5af3
2018-06-28 Richard Biener <rguenther@suse.de> 2018-06-28 Richard Biener <rguenther@suse.de>
* dwarf2out.c (decl_scope_table): Remove.
(push_decl_scope): Likewise.
(pop_decl_scope): Likewise.
(gen_type_die_for_member): Do not call push/pop_decl_scope.
(gen_struct_or_union_type_die): Likewise.
(gen_tagged_type_die): Likewise.
(dwarf2out_init): Do not initialize decl_scope_table.
(dwarf2out_c_finalize): Do not free it.
2018-06-28 Richard Biener <rguenther@suse.de>
* dwarf2out.c (gen_subprogram_die): Use is_unit_die when * dwarf2out.c (gen_subprogram_die): Use is_unit_die when
deciding whether to not re-use a DIE. deciding whether to not re-use a DIE.
......
...@@ -150,13 +150,6 @@ static GTY(()) vec<rtx, va_gc> *used_rtx_array; ...@@ -150,13 +150,6 @@ static GTY(()) vec<rtx, va_gc> *used_rtx_array;
it. */ it. */
static GTY(()) vec<tree, va_gc> *incomplete_types; static GTY(()) vec<tree, va_gc> *incomplete_types;
/* A pointer to the base of a table of references to declaration
scopes. This table is a display which tracks the nesting
of declaration scopes at the current scope and containing
scopes. This table is used to find the proper place to
define type declaration DIE's. */
static GTY(()) vec<tree, va_gc> *decl_scope_table;
/* Pointers to various DWARF2 sections. */ /* Pointers to various DWARF2 sections. */
static GTY(()) section *debug_info_section; static GTY(()) section *debug_info_section;
static GTY(()) section *debug_skeleton_info_section; static GTY(()) section *debug_skeleton_info_section;
...@@ -3835,8 +3828,6 @@ static void add_name_and_src_coords_attributes (dw_die_ref, tree, bool = false); ...@@ -3835,8 +3828,6 @@ static void add_name_and_src_coords_attributes (dw_die_ref, tree, bool = false);
static void add_discr_value (dw_die_ref, dw_discr_value *); static void add_discr_value (dw_die_ref, dw_discr_value *);
static void add_discr_list (dw_die_ref, dw_discr_list_ref); static void add_discr_list (dw_die_ref, dw_discr_list_ref);
static inline dw_discr_list_ref AT_discr_list (dw_attr_node *); static inline dw_discr_list_ref AT_discr_list (dw_attr_node *);
static void push_decl_scope (tree);
static void pop_decl_scope (void);
static dw_die_ref scope_die_for (tree, dw_die_ref); static dw_die_ref scope_die_for (tree, dw_die_ref);
static inline int local_scope_p (dw_die_ref); static inline int local_scope_p (dw_die_ref);
static inline int class_scope_p (dw_die_ref); static inline int class_scope_p (dw_die_ref);
...@@ -21361,22 +21352,6 @@ dwarf2out_vms_debug_main_pointer (void) ...@@ -21361,22 +21352,6 @@ dwarf2out_vms_debug_main_pointer (void)
} }
#endif /* VMS_DEBUGGING_INFO */ #endif /* VMS_DEBUGGING_INFO */
/* Push a new declaration scope. */
static void
push_decl_scope (tree scope)
{
vec_safe_push (decl_scope_table, scope);
}
/* Pop a declaration scope. */
static inline void
pop_decl_scope (void)
{
decl_scope_table->pop ();
}
/* walk_tree helper function for uses_local_type, below. */ /* walk_tree helper function for uses_local_type, below. */
static tree static tree
...@@ -22359,7 +22334,6 @@ gen_type_die_for_member (tree type, tree member, dw_die_ref context_die) ...@@ -22359,7 +22334,6 @@ gen_type_die_for_member (tree type, tree member, dw_die_ref context_die)
dw_die_ref type_die; dw_die_ref type_die;
gcc_assert (!decl_ultimate_origin (member)); gcc_assert (!decl_ultimate_origin (member));
push_decl_scope (type);
type_die = lookup_type_die_strip_naming_typedef (type); type_die = lookup_type_die_strip_naming_typedef (type);
if (TREE_CODE (member) == FUNCTION_DECL) if (TREE_CODE (member) == FUNCTION_DECL)
gen_subprogram_die (member, type_die); gen_subprogram_die (member, type_die);
...@@ -22381,8 +22355,6 @@ gen_type_die_for_member (tree type, tree member, dw_die_ref context_die) ...@@ -22381,8 +22355,6 @@ gen_type_die_for_member (tree type, tree member, dw_die_ref context_die)
} }
else else
gen_variable_die (member, NULL_TREE, type_die); gen_variable_die (member, NULL_TREE, type_die);
pop_decl_scope ();
} }
} }
...@@ -25153,9 +25125,7 @@ gen_struct_or_union_type_die (tree type, dw_die_ref context_die, ...@@ -25153,9 +25125,7 @@ gen_struct_or_union_type_die (tree type, dw_die_ref context_die,
if (type_die->die_parent == NULL) if (type_die->die_parent == NULL)
add_child_die (scope_die, type_die); add_child_die (scope_die, type_die);
push_decl_scope (type);
gen_member_die (type, type_die); gen_member_die (type, type_die);
pop_decl_scope ();
add_gnat_descriptive_type_attribute (type_die, type, context_die); add_gnat_descriptive_type_attribute (type_die, type, context_die);
if (TYPE_ARTIFICIAL (type)) if (TYPE_ARTIFICIAL (type))
...@@ -25309,14 +25279,12 @@ gen_tagged_type_die (tree type, ...@@ -25309,14 +25279,12 @@ gen_tagged_type_die (tree type,
dw_die_ref context_die, dw_die_ref context_die,
enum debug_info_usage usage) enum debug_info_usage usage)
{ {
int need_pop;
if (type == NULL_TREE if (type == NULL_TREE
|| !is_tagged_type (type)) || !is_tagged_type (type))
return; return;
if (TREE_ASM_WRITTEN (type)) if (TREE_ASM_WRITTEN (type))
need_pop = 0; ;
/* If this is a nested type whose containing class hasn't been written /* If this is a nested type whose containing class hasn't been written
out yet, writing it out will cover this one, too. This does not apply out yet, writing it out will cover this one, too. This does not apply
to instantiations of member class templates; they need to be added to to instantiations of member class templates; they need to be added to
...@@ -25333,9 +25301,7 @@ gen_tagged_type_die (tree type, ...@@ -25333,9 +25301,7 @@ gen_tagged_type_die (tree type,
return; return;
/* If that failed, attach ourselves to the stub. */ /* If that failed, attach ourselves to the stub. */
push_decl_scope (TYPE_CONTEXT (type));
context_die = lookup_type_die (TYPE_CONTEXT (type)); context_die = lookup_type_die (TYPE_CONTEXT (type));
need_pop = 1;
} }
else if (TYPE_CONTEXT (type) != NULL_TREE else if (TYPE_CONTEXT (type) != NULL_TREE
&& (TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL)) && (TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL))
...@@ -25348,13 +25314,9 @@ gen_tagged_type_die (tree type, ...@@ -25348,13 +25314,9 @@ gen_tagged_type_die (tree type,
specification. */ specification. */
if (context_die && is_declaration_die (context_die)) if (context_die && is_declaration_die (context_die))
context_die = NULL; context_die = NULL;
need_pop = 0;
} }
else else
{ context_die = declare_in_namespace (type, context_die);
context_die = declare_in_namespace (type, context_die);
need_pop = 0;
}
if (TREE_CODE (type) == ENUMERAL_TYPE) if (TREE_CODE (type) == ENUMERAL_TYPE)
{ {
...@@ -25366,9 +25328,6 @@ gen_tagged_type_die (tree type, ...@@ -25366,9 +25328,6 @@ gen_tagged_type_die (tree type,
else else
gen_struct_or_union_type_die (type, context_die, usage); gen_struct_or_union_type_die (type, context_die, usage);
if (need_pop)
pop_decl_scope ();
/* Don't set TREE_ASM_WRITTEN on an incomplete struct; we want to fix /* Don't set TREE_ASM_WRITTEN on an incomplete struct; we want to fix
it up if it is ever completed. gen_*_type_die will set it for us it up if it is ever completed. gen_*_type_die will set it for us
when appropriate. */ when appropriate. */
...@@ -28658,9 +28617,6 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED) ...@@ -28658,9 +28617,6 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED)
/* Allocate the cached_dw_loc_list_table. */ /* Allocate the cached_dw_loc_list_table. */
cached_dw_loc_list_table = hash_table<dw_loc_list_hasher>::create_ggc (10); cached_dw_loc_list_table = hash_table<dw_loc_list_hasher>::create_ggc (10);
/* Allocate the initial hunk of the decl_scope_table. */
vec_alloc (decl_scope_table, 256);
/* Allocate the initial hunk of the abbrev_die_table. */ /* Allocate the initial hunk of the abbrev_die_table. */
vec_alloc (abbrev_die_table, 256); vec_alloc (abbrev_die_table, 256);
/* Zero-th entry is allocated, but unused. */ /* Zero-th entry is allocated, but unused. */
...@@ -32102,7 +32058,6 @@ dwarf2out_c_finalize (void) ...@@ -32102,7 +32058,6 @@ dwarf2out_c_finalize (void)
cached_next_real_insn = NULL; cached_next_real_insn = NULL;
used_rtx_array = NULL; used_rtx_array = NULL;
incomplete_types = NULL; incomplete_types = NULL;
decl_scope_table = NULL;
debug_info_section = NULL; debug_info_section = NULL;
debug_skeleton_info_section = NULL; debug_skeleton_info_section = NULL;
debug_abbrev_section = NULL; debug_abbrev_section = NULL;
......
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