• Josh Bleecher Snyder's avatar
    cmd/compile: don't alloc Name/Param for unresolved syms · 20edeabc
    Josh Bleecher Snyder authored
    ONONAME nodes generated from unresolved symbols don't need Params.
    They only need Names to store Iota; move Iota to Node.Xoffset.
    While we're here, change iota to int64 to reduce casting.
    
    Passes toolstash -cmp.
    
    name       old alloc/op     new alloc/op     delta
    Template       39.9MB ± 0%      39.7MB ± 0%  -0.39%        (p=0.000 n=19+20)
    Unicode        30.9MB ± 0%      30.7MB ± 0%  -0.35%        (p=0.000 n=20+20)
    GoTypes         119MB ± 0%       118MB ± 0%  -0.42%        (p=0.000 n=20+20)
    Compiler        464MB ± 0%       461MB ± 0%  -0.54%        (p=0.000 n=19+20)
    
    name       old allocs/op    new allocs/op    delta
    Template         386k ± 0%        383k ± 0%  -0.62%        (p=0.000 n=20+20)
    Unicode          323k ± 0%        321k ± 0%  -0.49%        (p=0.000 n=20+20)
    GoTypes         1.16M ± 0%       1.15M ± 0%  -0.67%        (p=0.000 n=20+20)
    Compiler        4.09M ± 0%       4.05M ± 0%  -0.95%        (p=0.000 n=20+20)
    
    Change-Id: Ib27219a0d0405def1b4dadacf64935ba12d10a94
    Reviewed-on: https://go-review.googlesource.com/32237
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    20edeabc
typecheck.go 80.3 KB