https://bugs.kde.org/show_bug.cgi?id=442061

Mark Wielaard <m...@klomp.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED
            Summary|Valgrind: very slow         |very slow execution under
                   |execution under Fedora 34   |Fedora 34 (readdwarf3)

--- Comment #13 from Mark Wielaard <m...@klomp.org> ---
Pushed after testing on various systems, no regressions found, loading
executable and libraries with debuginfo shows faster loading.

commit 2be10685c9a54102f0943a7841a500b7371f2f4a
Author: Mark Wielaard <m...@klomp.org>
Date:   Sun Sep 19 14:30:19 2021 +0200

    readdwarf3: Introduce abbv_state to read .debug_abbrev more lazily

    With the inline parser often a lot of DIEs are skipped, so reading
    all abbrevs up front wastes time and memory. A lot of time and memory
    can be saved by reading the abbrevs on demand. Do this by introducing
    an abbv_state that is used to keep track of the abbrevs already read.
    This does technically make the CUConst struct not const.

commit ab6795f5c23ff155d62e6f77ec6c28817a52cd15
Author: Mark Wielaard <m...@klomp.org>
Date:   Sat Sep 18 22:16:33 2021 +0200

    readdwarf3: Reuse abbrev if possible between units

    Instead of destroying the ht_abbrvs after processing a CU save it
    and the offset so it can be reused for the next CU if that happens
    to have the same abbrev offset. dwz compressed DWARF often reuse
    the same abbrev for multiple CUs.

commit 0a543c57c8ffca25f4817750317c981ea2d84311
Author: Mark Wielaard <m...@klomp.org>
Date:   Sat Sep 18 03:23:52 2021 +0200

    readdwarf3: Immediately skip to end of CU when not parsing children

commit 26a776da2d196b1b88e809464e98cd0a0d6fc746
Author: Mark Wielaard <m...@klomp.org>
Date:   Sat Sep 18 00:24:38 2021 +0200

    readdwarf3: Reuse fndn_ix_Table as much as possible

    Both the var parser and the inl parser kept a fndn_ix_Table.
    Initialize only one per debuginfo read pass and reuse if the stmt offset
    is the same as last time (CUs can share the same line table and alt
    files do share one for all units).

commit b4a6b165baf28b7371495f6c1f12bf745ff52d02
Author: Mark Wielaard <m...@klomp.org>
Date:   Thu Sep 16 22:49:41 2021 +0200

    readdwarf3: Only read line table for units with addresses for inlined
functions

    When parsing DIEs for inlined functions, only read the line table for
    units which can actually contain inlined_subroutines.

commit 75e3ef0f3b834f75f49333d35b5a040060247b03
Author: Mark Wielaard <m...@klomp.org>
Date:   Thu Sep 16 22:01:47 2021 +0200

    readdwarf3: Skip units without addresses when looking for inlined functions

    When a unit doesn't cover any addresses skip it because no actual code
    will be inside. Also use skip_DIE instead of read_DIE when not parsing
    (skipping) children.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to