This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][RFC]Speed up bfd_dwarf2_find_line.


Hi Doug,

2007-07-17 Doug Kwan <dougkwan@google.com>

    Speed up bfd_dwarf2_find_line.
    * dwarf2.c (struct dwarf2_debug): Add new fields to support function
    and variable info hash tables. Add last_comp_unit, info_hash_count,
    funcinfo_hash_table, varinfo_hash_table, hash_units_head.
    (struct comp_unit): Add prev_unit, cached.
    (struct info_list_node, struct info_hash_entry,
    struct info_hash_table): New.
    (info_hash_table_newfunc, create_info_hash_table,
    insert_info_hash_table, lookup_info_hash_table): New functions
    implementing function and variable info hash tables.
    (scan_unit_for_symbols): Add checks to make sure hash tables are
    consistent with compilation units.
    (comp_unit_maybe_decode_line_info): New function.
    (comp_unit_find_line): Use comp_unit_maybe_decode_line_info.
    (reverse_funcinfo_list, reverse_varinfo_list, comp_unit_hash_info,
    info_hash_lookup_funcinfo, info_hash_lookup_varinfo,
    stash_maybe_update_info_hash_table, stash_verify_info_hash_table,
    stash_maybe_enable_info_hash_tables, stash_find_line_fast): New
    functions. Make use of info hash tables to speed up
    bfd_dwarf2_find_line.
    (find_line): Use hash table for faster lookup if it is turned on.
    Also add code to maintain bi-directional link in comp units.

Approved and applied.


Cheers
  Nick



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]