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.