• David Symonds's avatar
    [release-branch.go1.3] cmd/gc: don't generate zillions of linehists for wrapper functions · f34a051a
    David Symonds authored
    ««« CL 104840043 / 876107512a67
    cmd/gc: don't generate zillions of linehists for wrapper functions
    This is a workaround - the code should be better than this - but the
    fix avoids generating large numbers of linehist entries for the wrapper
    functions that enable interface conversions. There can be many of
    them, they all happen at the end of compilation, and they can all
    share a linehist entry.
    Avoids bad n^2 behavior in liblink.
    Test case in issue 8135 goes from 64 seconds to 2.5 seconds (still bad
    but not intolerable).
    
    Fixes #8135.
    
    LGTM=rsc
    R=rsc
    CC=golang-codereviews
    https://golang.org/cl/104840043
    »»»
    
    TBR=adg
    CC=golang-codereviews
    https://golang.org/cl/102070045
    f34a051a
subr.c 69.1 KB