• Luuk van Dijk's avatar
    gc: inlining fixes · 97fd7d5f
    Luuk van Dijk authored
    flag -l means: inlining on, -ll inline with early typecheck
    -l lazily typechecks imports on use and re-export, nicer for debugging
    -lm produces output suitable for errchk tests, repeated -mm... increases inl.c's verbosity
    export processed constants, instead of originals
    outparams get ->inlvar too, and initialized to zero
    fix shared rlist bug, that lead to typecheck messing up the patched tree
    properly handle non-method calls to methods T.meth(t, a...)
    removed embryonic code to handle closures in inlined bodies
    also inline calls inside closures (todo: move from phase 6b to 4)
    
    Fixes #2579.
    
    R=rsc
    CC=golang-dev
    https://golang.org/cl/5489106
    97fd7d5f
fmt.c 32 KB