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
|
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.
|