• David Chase's avatar
    cmd/compile: index line number tables by source file to improve sparsity · 6081a9f7
    David Chase authored
    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: default avatarKeith Randall <khr@golang.org>
    6081a9f7
rewrite.go 33 KB