binutils-gdb/libctf
Nick Alcock d4e9d95657
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.
2025-06-04 12:51:28 +01:00
..
doc [libctf] Fix warning: @xref should not appear on @multitable line 2025-02-25 08:29:19 +01:00
testsuite libctf: dedup: preserve non-root flag across normal links 2025-06-04 12:51:25 +01:00
.gitignore libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
aclocal.m4 mmap: Avoid the sanitizer configure check failure 2024-04-10 03:57:46 -07:00
ChangeLog Add markers for bihnutils 2.44 branch 2025-01-19 12:09:01 +00:00
ChangeLog-2020 libctf: fix old ChangeLog typo 2021-01-05 14:53:40 +00:00
config.h.in libctf: suppress spurious failure of malloc-counting tests under valgrind 2024-06-18 13:20:32 +01:00
configure Revert "Remove LIBINTL_DEP" 2024-06-20 21:15:27 +09:30
configure.ac Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-archive.c libctf: archive, open: when opening, always set errp to something 2025-05-23 12:34:35 +01:00
ctf-create.c libctf: fix slices of slices and of enums 2025-02-28 14:16:38 +00:00
ctf-decl.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-decls.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-dedup.c libctf, dedup: reclaim space wasted by duplicate hidden types 2025-06-04 12:51:28 +01:00
ctf-dump.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-endian.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-error.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-hash.c libctf: dedup: preserve non-root flag across normal links 2025-06-04 12:51:25 +01:00
ctf-impl.h libctf: dedup: preserve non-root flag across normal links 2025-06-04 12:51:25 +01:00
ctf-inlines.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-intl.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-labels.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-link.c libctf: dedup: preserve non-root flag across normal links 2025-06-04 12:51:25 +01:00
ctf-lookup.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-open-bfd.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-open.c libctf: archive, open: when opening, always set errp to something 2025-05-23 12:34:35 +01:00
ctf-qsort_r.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-serialize.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-sha1.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-sha1.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-string.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-subr.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
ctf-types.c libctf: fix cv-qualified unnamed struct/union field lookup 2025-02-28 14:16:42 +00:00
ctf-util.c Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
elf.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
libctf.ver Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
Makefile.am Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
Makefile.in Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30
NEWS include, libctf, ld: extend variable section to contain functions too 2022-03-23 13:48:32 +00:00
swap.h Update year range in copyright notice of binutils files 2025-01-01 18:29:57 +10:30