This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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]

[commit/Ada] Improve name lookup performance


Hello,

This change should not bring any behavior change, but should very
noticeably speed name lookups.  For instance, when we used a pretty
large program from one of our customers (roughly 350 kSLOCs and
290MB), printing the value of a global variable for which no debugging
info is available (to force us to go through all symtabs/psymtabs first),
goes down from 1.7 second down to 0.5 second...

2008-08-29  Paul N. Hilfinger  <hilfinger@adacore.com> 
            Joel Brobecker  <brobecker@adacore.com>

        * ada-lang.c (is_digits_suffix): New function.
        (is_dot_digits_suffix): Remove.
        (ada_lookup_symbol_list): Remove digits suffix from minimal symbols
        before looking up in symbol table, and do not use wild matches on them.
        (wild_match): Reimplement for speed and to allow matching of operator
        symbols.
        (is_valid_name_for_wild_match): Return zero for names that do not
        follow the GNAT encoding.

        (is_name_suffix): Fix typo in comment.
        (to_record_with_fixed_variant_part): Ditto.

Tested on x86-linux. Checked in.

-- 
Joel

Attachment: 01-perf1.diff
Description: Text document


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