aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/declextract
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2026-01-21 14:52:28 +0100
committerDmitry Vyukov <dvyukov@google.com>2026-01-22 11:23:54 +0000
commit084b5c918c53c4e2eeb51664f3d403095f59f25d (patch)
tree0b5bffd7ce76ebf64dea016a4caaada43e7c75f9 /pkg/declextract
parent7355a8eb9f9228c3c3b5b6874e33968333115b23 (diff)
pkg/codesearch: reduce memory consumption when building index
With all references in the index, it become quite big. Merge and dedup the resulting index on the fly. Also intern all strings b/c there are tons of duplicates. This also removes unnecessary duplicates (effectively ODR violations in the kernel) due to use of BUILD_BUG_ON. The macro produces different function calls in different translations units, so the same function may contain __compiletime_assert_N1 call in one TU and __compiletime_assert_N2 in another. Over this reduces resource consumption of index building from: time:296.11s user:16993.71s sys:6661.03s memory:82707MB to: time:194.28s user:16860.01s sys:6647.01s memory: 3243MB 25x reduction in memory consumption.
Diffstat (limited to 'pkg/declextract')
-rw-r--r--pkg/declextract/entity.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/pkg/declextract/entity.go b/pkg/declextract/entity.go
index 3b5e13a6d..82bf00446 100644
--- a/pkg/declextract/entity.go
+++ b/pkg/declextract/entity.go
@@ -228,7 +228,7 @@ type EntityGlobalAddr struct {
Name string
}
-func (out *Output) Merge(other *Output) {
+func (out *Output) Merge(other *Output, v *clangtool.Verifier) {
out.Functions = append(out.Functions, other.Functions...)
out.Consts = append(out.Consts, other.Consts...)
out.Enums = append(out.Enums, other.Enums...)