This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/7.8 blocker] Revert c++/16253
- From: Doug Evans <dje at google dot com>
- To: Keith Seitz <keiths at redhat dot com>
- Cc: "gdb-patches at sourceware dot org ml" <gdb-patches at sourceware dot org>
- Date: Fri, 6 Jun 2014 16:29:06 -0700
- Subject: Re: [RFA/7.8 blocker] Revert c++/16253
- Authentication-results: sourceware.org; auth=none
- References: <5390ABAA dot 2080209 at redhat dot com> <CADPb22RhUsbtbKgfauZBj7fOV39D-=O4w0WLRo8o09KqiVas6w at mail dot gmail dot com>
On Fri, Jun 6, 2014 at 2:20 PM, Doug Evans <dje@google.com> wrote:
> 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 :-)]
Hi.
I also did a sanity check and verified this patch reverts commit
b50c861487bb7d71185777193a9246bac81e4f26.
Please commit.
And thanks very very much again!