summaryrefslogtreecommitdiff
path: root/gdb/ChangeLog.intercu
blob: 76b97d31e9bf98fe8ab5e8c22af6431fe86c3f98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (REF_HASH_SIZE): Move above struct dwarf2_cu.
	(struct dwarf2_cu): Add die_ref_table.
	(die_ref_table): Delete static variable.
	(store_in_ref_table): Take a comp unit argument and use its
	die_ref_table.
	(dwarf2_empty_hash_tables): Likewise.
	(read_comp_unit): Update call to dwarf2_empty_hash_tables.
	(read_die_and_children): Update call to store_in_ref_table.
	(follow_die_ref): Use the comp unit's die_ref_table.

2004-02-23  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (read_structure_scope): Don't create a symbol
	or call process_die.  Return immediately if die->type is set.
	Call read_type_die before dwarf2_add_member_fn.
	(process_structure_scope): New function.
	(read_enumeration_type, read_enumeration_scope): New functions,
	broken out from read_enumeration.  Don't create the enumeration
	type if it has already been created.
	(read_enumeration): Removed.
	(process_die): Call process_structure_scope, read_enumeration_type,
	and read_enumeration_scope.  Just call new_symbol for base and
	subrange types.  Add a comment about other type dies.
	(read_type_die): Call read_enumeration_type.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_attr_with_cu): New function, renamed
	from dwarf2_attr.  Also return the compilation unit associated
	with the attribute if we have followed a reference.  Complain
	if we return a reference attribute and the caller does not want
	the target compilation unit.
	(dwarf2_attr): Call dwarf2_attr_with_cu.
	(die_specification, dwarf2_extension): Also return a compilation
	unit.
	(follow_die_ref): Take attribute and compilation unit arguments.
	Call dwarf2_get_ref_die_offset.  Also return the target
	compilation unit.
	(read_func_scope, read_structure_scope): Update calls to
	die_specification.  Use the result.
	(read_namespace): Update call to dwarf2_extension.
	(namespace_name): Likewise.  Use the result.
	(new_symbol): Call dwarf2_attr_with_cu to check for DIE type.
	(die_type): Likewise.  Update call to follow_die_ref.  Use the
	results.
	(dwarf2_add_member_fn, read_structure_scope): Likewise for
	DW_AT_containing_type.
	(die_containing_type): Likewise.
	(die_is_declaration): Likewise for DW_AT_specification.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (MAX_CACHE_AGE): Define.
	(struct dwarf2_cu): Add last_used counter.
	(free_comp_units_worker): New function, based on
	clear_per_cu_pointer.  Support aging.
	(clear_per_cu_pointer): Use it.
	(free_cached_comp_units, free_one_cached_comp_unit): New functions.
	(dwarf2_build_psymtabs_hard): Keep read_in_chain across iterations.
	Free all cached comp units after building psymtabs.  Free any cached
	copy of a comp unit before building a psymtab for it.
	(find_partial_die): Clear the last_used counter.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_die_full_name): Always return NULL or
	malloc'd memory.  Don't try to free real_parent->full_name.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add read_in_chain and per_cu.
	(dwarf2_cu_tree): New variable.
	(struct dwarf2_per_cu_data): New type.
	(struct partial_die_info): Remove abbrev.  Make tag a bitfield.  Add
	full_name_set.
	(load_partial_dies): Take a flag indicating whether we are building
	a psymtab.
	(find_partial_die_in_comp_unit): Rename frome find_partial_die.
	(find_partial_die): New function to support inter-CU references.
	Return the CU of the found DIE.
	(splay_tree_obstack_allocate): Remove #if 0.
	(partial_read_comp_unit_head): New function, broken out from
	dwarf2_build_psymtabs_hard.
	(dwarf2_build_psymtabs_hard): Remove unused variable abbrev_ptr.
	Add the current CU to the splay tree if the tree already exists.
	Update call to load_partial_dies.
	(partial_die_full_name): Rewrite to support inter-CU references.
	(add_partial_symbol): Check and set pdi->full_name_set.
	(fixup_partial_die): Support inter-CU references.
	(dwarf2_find_containing_comp_unit, clear_per_cu_pointer)
	(load_comp_unit, create_comp_unit_tree, _initialize_dwarf2_read): New
	functions.

2004-02-22  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_die_full_name): Remove allocate argument,
	always use concat.
	(add_partial_symbol): Copy the name from the psymbol.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct partial_die_info): Add full_name.
	(scan_partial_symbols, add_partial_symbol, add_partial_structure)
	(add_partial_enumeration): Change namespace argument to
	have_namespace_info flag.  Move DW_TAG_namespace handling to
	add_partial_symbol.  Update comments.
	(pdi_needs_namespace): Remove namespace argument.  Handle
	DW_TAG_namespace.
	(partial_determine_prefix, partial_determine_prefix_aux): Remove.
	(dwarf2_build_psymtabs_hard): Update call to scan_partial_symbols.
	(partial_die_full_name): New function.
	(load_partial_die): Correct comment formatting.  Don't handle
	DW_TAG_enumeration_type.
	(load_partial_dies): Correct comment formatting.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (load_partial_dies): Check for NULL name before
	adding types.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (maybe_specification_partial_die): Removed.
	(is_type_tag_for_partial): Renamed from is_type_tag.  Remove
	some tags.
	(load_partial_dies): Call is_type_tag_for_partial.  Handle simple
	DIEs early.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (scan_partial_symbols): Don't return anything.  Take
	a DIE argument instead of an info_ptr.
	(add_partial_namespace, add_partial_structure)
	add_partial_enumeration): Likewise.
	(load_partial_dies): Return the first interesting DIE.
	Do not add DIEs to the hash table if we aren't going to look them
	up.
	(dwarf2_build_psymtabs_hard): Adjust call to scan_partial_symbols.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (peek_die_abbrev): Add prototype.
	(load_partial_die): Take an abbrev and its uleb128 length as
	arguments.
	(dwarf2_build_psymtabs_hard): Adjust call to load_partial_die.
	(load_partial_dies): Likewise.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (splay_tree_obstack_allocate): Disable.
	(add_partial_symbol): Fix a warning.
	(fixup_partial_die): Recurse if necessary.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (partial_determine_prefix)
	(partial_determine_prefix_aux): New functions.
	(add_partial_symbol): Call partial_determine_prefix.
	(add_partial_structure): Remove workaround for DW_AT_specification.
	(load_partial_die): Save DW_AT_extension.
	(determine_prefix_aux): Reuse the return value of dwarf2_name.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (load_partial_dies): Follow unions.  Follow
	aggregates for all non-C languages.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (dwarf2_build_psymtabs_hard): Estimate the initial
	size of the hash table.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add abbrev_obstack.
	(struct abbrev_info): Shorten two int flags.
	(dwarf_alloc_abbrev): Take a CU argument.
	(dwarf2_build_psymtabs_hard): Call dwarf2_empty_abbrev_table
	each time through the loop.  Update cleanup argument.
	(psymtab_to_symtab_1): Update cleanup argument.
	(dwarf2_read_abbrevs, dwarf2_alloc_abbrev): Allocate on the
	abbrev_obstack.
	(dwarf2_empty_abbrev_table): Just call obstack_free.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in (hashtab_h): Add.
	(dwarf2read.o): Update dependencies.
	* dwarf2read.c: Include "hashtab.h".
	(struct dwarf2_cu): Change partial_dies to an htab_t.
	(hash_obstack_allocate, partial_die_hash, partial_die_eq): New
	functions.
	(dwarf2_build_psymtabs_hard): Call htab_create_alloc_ex.
	(load_partial_dies): Call htab_find_slot_with_hash.
	(find_partial_die): Call htab_find_with_hash.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct partial_die_info): Use bitfields and
	rearrange members for packing.  Replace spec_attr with spec_offset.
	(load_partial_dies): Only follow structures for C++.
	(load_partial_die): Use memset.  Save specification attributes
	only as offsets.
	(fixup_partial_die): Adjust to use spec_offset.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (struct dwarf2_cu): Add partial_die_obstack.
	(splay_tree_obstack_allocate, splay_tree_obstack_deallocate): New
	functions.
	(dwarf2_build_psymtabs_hard): Use splay_tree_new_with_allocator
	and obstack_free to manage partial_dies.
	(load_partial_dies): Allocate partial DIEs on the obstack.  Don't
	initialize the splay tree here.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (skip_leb128, peek_die_abbrev, skip_one_die)
	(skip_children): New functions.
	(locate_pdi_sibling): Call skip_children.
	(load_partial_dies): Use peek_die_abbrev and skip_one_die.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c (find_partial_die, fixup_partial_die): New functions,
	broken out from read_partial_die.
	(read_partial_die): Remove function.
	(dwarf2_build_psymtabs_hard): Update comments.
	(scan_partial_symbols): Use the new functions.  Reduce copying of
	partial DIEs.

2004-02-21  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2read.c: Include "splay-tree.h".
	(struct dwarf2_cu): Add splay tree for partial DIEs.
	(struct partial_die_info): Move after struct attribute.
	Add has_specification, spec_attr, die_parent, die_child,
	and die_sibling fields.
	(load_partial_dies): New function.
	(load_partial_die): New function, broken out from read_partial_die.
	Correct setting of part_die->offset.  Save any specification
	attributes for later.
	(read_partial_die): Look up DIEs in the splay tree.
	(dwarf2_build_psymtabs_hard): Initialize partial_dies.  Call
	load_partial_die to read in the compilation unit DIE.  Call
	load_partial_dies.  Free the splay tree after use.
	(scan_partial_symbols): Follow the die_sibling chain.
	(add_partial_structure): Use die_child and die_sibling instead of
	read_partial_die and locate_pdi_sibling.
	(add_partial_enumeration): Likewise.
	(locate_pdi_sibling): Use load_partial_die instead of
	read_partial_die.
	(is_type_tag): New function.

	* Makefile.in (dwarf2read.o): Update dependencies.