• Robert Griesemer's avatar
    [dev.inline] cmd/internal/src: replace src.Pos with syntax.Pos · 4808fc44
    Robert Griesemer authored
    This replaces the src.Pos LineHist-based position tracking with
    the syntax.Pos implementation and updates all uses.
    
    The LineHist table is not used anymore - the respective code is still
    there but should be removed eventually. CL forthcoming.
    
    Passes toolstash -cmp when comparing to the master repo (with the
    exception of a couple of swapped assembly instructions, likely due
    to different instruction scheduling because the line-based sorting
    has changed; though this is won't affect correctness).
    
    The sizes of various important compiler data structures have increased
    significantly (see the various sizes_test.go files); this is probably
    the reason for an increase of compilation times (to be addressed). Here
    are the results of compilebench -count 5, run on a "quiet" machine (no
    apps running besides a terminal):
    
    name       old time/op     new time/op     delta
    Template       256ms ± 1%      280ms ±15%  +9.54%          (p=0.008 n=5+5)
    Unicode        132ms ± 1%      132ms ± 1%    ~             (p=0.690 n=5+5)
    GoTypes        891ms ± 1%      917ms ± 2%  +2.88%          (p=0.008 n=5+5)
    Compiler       3.84s ± 2%      3.99s ± 2%  +3.95%          (p=0.016 n=5+5)
    MakeBash       47.1s ± 1%      47.2s ± 2%    ~             (p=0.841 n=5+5)
    
    name       old user-ns/op  new user-ns/op  delta
    Template        309M ± 1%       326M ± 2%  +5.18%          (p=0.008 n=5+5)
    Unicode         165M ± 1%       168M ± 4%    ~             (p=0.421 n=5+5)
    GoTypes        1.14G ± 2%      1.18G ± 1%  +3.47%          (p=0.008 n=5+5)
    Compiler       5.00G ± 1%      5.16G ± 1%  +3.12%          (p=0.008 n=5+5)
    
    Change-Id: I241c4246cdff627d7ecb95cac23060b38f9775ec
    Reviewed-on: https://go-review.googlesource.com/34273
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    4808fc44
tokenizer.go 2.98 KB