• Carl Shapiro's avatar
    cmd/5g, cmd/5l, cmd/6g, cmd/6l, cmd/8g, cmd/8l, cmd/gc, runtime: generate… · f056daf0
    Carl Shapiro authored
    cmd/5g, cmd/5l, cmd/6g, cmd/6l, cmd/8g, cmd/8l, cmd/gc, runtime: generate pointer maps by liveness analysis
    
    This change allows the garbage collector to examine stack
    slots that are determined as live and containing a pointer
    value by the garbage collector.  This results in a mean
    reduction of 65% in the number of stack slots scanned during
    an invocation of "GOGC=1 all.bash".
    
    Unfortunately, this does not yet allow garbage collection to
    be precise for the stack slots computed as live.  Pointers
    confound the determination of what definitions reach a given
    instruction.  In general, this problem is not solvable without
    runtime cost but some advanced cooperation from the compiler
    might mitigate common cases.
    
    R=golang-dev, rsc, cshapiro
    CC=golang-dev
    https://golang.org/cl/14430048
    f056daf0
reg.c 21.3 KB