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


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