• Russ Cox's avatar
    cmd/gc: use 100x less memory for []byte("string") · d227d680
    Russ Cox authored
    []byte("string") was simplifying to
    []byte{0: 0x73, 1: 0x74, 2: 0x72, 3: 0x69, 4: 0x6e, 5: 0x67},
    but that latter form takes up much more memory in the compiler.
    Preserve the string form and recognize it to turn global variables
    initialized this way into linker-initialized data.
    
    Reduces the compiler memory footprint for a large []byte initialized
    this way from approximately 10 kB/B to under 100 B/B.
    
    See also issue 6643.
    
    R=golang-codereviews, r, iant, oleku.konko, dave, gobot, bradfitz
    CC=golang-codereviews
    https://golang.org/cl/15930045
    d227d680
Name
Last commit
Last update
..
Makefile Loading commit data...
align.c Loading commit data...
array.c Loading commit data...
bisonerrors Loading commit data...
bits.c Loading commit data...
builtin.c Loading commit data...
bv.c Loading commit data...
closure.c Loading commit data...
const.c Loading commit data...
cplx.c Loading commit data...
dcl.c Loading commit data...
doc.go Loading commit data...
esc.c Loading commit data...
export.c Loading commit data...
fmt.c Loading commit data...
gen.c Loading commit data...
go.errors Loading commit data...
go.h Loading commit data...
go.y Loading commit data...
init.c Loading commit data...
inl.c Loading commit data...
lex.c Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
mkbuiltin Loading commit data...
mkbuiltin1.c Loading commit data...
mkopnames Loading commit data...
mparith1.c Loading commit data...
mparith2.c Loading commit data...
mparith3.c Loading commit data...
obj.c Loading commit data...
order.c Loading commit data...
pgen.c Loading commit data...
plive.c Loading commit data...
popt.c Loading commit data...
popt.h Loading commit data...
racewalk.c Loading commit data...
range.c Loading commit data...
reflect.c Loading commit data...
runtime.go Loading commit data...
select.c Loading commit data...
sinit.c Loading commit data...
subr.c Loading commit data...
swt.c Loading commit data...
typecheck.c Loading commit data...
unsafe.c Loading commit data...
unsafe.go Loading commit data...
walk.c Loading commit data...
y.tab.c Loading commit data...
y.tab.h Loading commit data...
yerr.h Loading commit data...