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]

Re: [RFA/7.8 blocker] Revert c++/16253


On Thu, Jun 5, 2014 at 10:40 AM, Keith Seitz <keiths@redhat.com> wrote:
> Hi,
>
> We decided to revert my earlier patch for c++/16253 (variable name/tag name
> collision) because Doug reports that it causes a sizable performance
> regression:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=16253
>
> This patch reverts the whole thing.
>
> Tested on Fedora 20, x86_64 and native-gdbserver.
>
> Keith
>
> ChangeLog
> 2014-06-05  Keith Seitz  <keiths@redhat.com>
>
>         Revert:
>         PR c++/16253
>         * ada-lang.c (ada_symbol_matches_domain): Moved here and renamed
>         from symbol_matches_domain in symtab.c. All local callers
>         of symbol_matches_domain updated.
>         (standard_lookup): If DOMAIN is VAR_DOMAIN and no symbol is found,
>         search STRUCT_DOMAIN.
>         (ada_find_any_type_symbol): Do not search STRUCT_DOMAIN
>         independently.  standard_lookup will do that automatically.
>         * cp-namespace.c (cp_lookup_symbol_nonlocal): Explain when/why
>         VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
>         (cp_lookup_symbol_in_namespace): Likewise.
>         If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN.
>         (cp_lookup_symbol_exports): Explain when/why VAR_DOMAIN searches
>         may return a STRUCT_DOMAIN match.
>         (lookup_symbol_file): Search for the class name in STRUCT_DOMAIN.
>         * cp-support.c: Include language.h.
>         (inspect_type): Explicitly search STRUCT_DOMAIN before searching
>         VAR_DOMAIN.
>         * psymtab.c (match_partial_symbol): Compare the requested
>         domain with the symbol's domain directly.
>         (lookup_partial_symbol): Likewise.
>         * symtab.c (lookup_symbol_in_language): Explain when/why
>         VAR_DOMAIN searches may return a STRUCT_DOMAIN match.
>         If no VAR_DOMAIN symbol is found, search STRUCT_DOMAIN for
>         appropriate languages.
>         (symbol_matches_domain): Renamed `ada_symbol_matches_domain'
>         and moved to ada-lang.c
>         (lookup_block_symbol): Explain that this function only returns
>         symbol matching the requested DOMAIN.
>         Compare the requested domain with the symbol's domain directly.
>         (iterate_over_symbols): Compare the requested domain with the
>         symbol's domain directly.
>         * symtab.h (symbol_matches_domain): Remove.
>
> testsuite/ChangeLog
> 2014-06-05  Keith Seitz  <keiths@redhat.com>
>
>         Revert:
>         PR c++/16253
>         * gdb.cp/var-tag.cc: New file.
>         * gdb.cp/var-tag.exp: New file.
>         * gdb.dwarf2/dw2-ada-ffffffff.exp: Set the language to C++.
>         * gdb.dwarf2/dw2-anon-mptr.exp: Likewise.
>         * gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
>         * gdb.dwarf2/dw2-inheritance.exp: Likewise.

Thanks!

I've reverified my perf regression with HEAD, and then verified this
patch makes it go away.
[gotta love looking up "int64" 10 thousand times. 1/2 :-)]


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