https://sourceware.org/bugzilla/show_bug.cgi?id=33047

--- Comment #5 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Nick Alcock <n...@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d4e9d956572a7bbf96a5500d70ddfe5a33f23ced

commit d4e9d956572a7bbf96a5500d70ddfe5a33f23ced
Author: Nick Alcock <nick.alc...@oracle.com>
Date:   Tue Jun 3 12:01:45 2025 +0100

    libctf, dedup: reclaim space wasted by duplicate hidden types

    In normal deduplicating links, we insert every type (identified by its
    unique hash) precisely once.  But conflicting types appear in multiple
    dicts, so for those, we loop, inserting them into every target dict
    in turn (each corresponding to an input dict that type appears in).
    But in cu-mapped links, some of those dicts may have been merged into
    one: now that we are hiding duplicate conflicting types more
    aggressively in such links, we are getting duplicate identical hidden
    types turning up in large numbers.

    Fix this by eliminating them in cu-mapping phase 1 (the phase in which this
    merging takes place), by checking to see if a type with this hash has
    already been inserted in this dict and skipping it if so.  This is
    redundant and a waste of time in other cu-mapping phases and in normal
    links, but in cu-mapped links it saves a few tens to hundreds of kilobytes
    in kernel-sized links.

    libctf/
            PR libctf/33047
            * ctf-dedup.c (ctf_dedup_emit_type): Check for already-emitted
            types in cu-mapping phase 1.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to