]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: index line number tables by source file to improve sparsity
authorDavid Chase <drchase@google.com>
Mon, 17 Dec 2018 22:23:42 +0000 (17:23 -0500)
committerDavid Chase <drchase@google.com>
Tue, 14 May 2019 18:48:16 +0000 (18:48 +0000)
commit6081a9f7e631895b4c29d60269b6f159c338d919
tree1a57f302093876c69d129b1677779bfa02f786c6
parenta9e107c85cf69d735ac81c29f4a354643e40b2b5
cmd/compile: index line number tables by source file to improve sparsity

This reduces allocations and also resolves some
lurking inliner/inlinee line-number match problems.
However, it does add about 1.5% to compile time.

This fixes compiler OOMs seen compiling some large protobuf-
derived inputs.  For compiling the compiler itself,

compilebench -pkg cmd/compile/internal/ssa -memprofile withcl.prof

the numberlines-related memory consumption is reduced from 129MB
to 29MB (about a 5% overall reduction in allocation).

Additionally modified after going over changes with Austin
to remove unused code (nobody called size()) and correct
the cache-clearing code.

I've attempted to speed this up by not using maps, and have
not succeeded.  I'd rather get correct code in now, speed it
up later if I can.

Updates #27739.
Fixes #29279.

Change-Id: I098005de4e45196a5f5b10c0886a49f88e9f8fd5
Reviewed-on: https://go-review.googlesource.com/c/go/+/154617
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/ssa/biasedsparsemap.go
src/cmd/compile/internal/ssa/deadcode.go
src/cmd/compile/internal/ssa/func.go
src/cmd/compile/internal/ssa/func_test.go
src/cmd/compile/internal/ssa/nilcheck.go
src/cmd/compile/internal/ssa/numberlines.go
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/xposmap.go [new file with mode: 0644]
src/cmd/internal/src/xpos.go