• Matthew Dempsky's avatar
    cmd/yacc: generate arrays instead of slices where possible · a1bb3030
    Matthew Dempsky authored
    Yacc generates a bunch of global variables of the form
    
        var yyFoo = []int{...}
    
    where yyFoo is never subsequently modified to point to a different
    slice.  Since these variables are implicitly compiled as
    
        var yyFoo = ([...]int{...})[:]
    
    anyway, by simply converting them all to
    
        var yyFoo = [...]int{...}
    
    we save sizeof(sliceStruct) bytes of data memory for each variable and
    also make len(yyFoo) into compile-time constant expressions, which
    shaves some bytes off text size:
    
        $ size 6g.before 6g.after
           text	   data	    bss	    dec	    hex	filename
        4598019	 605968	 342700	5546687	 54a2bf	6g.before
        4597810	 605552	 342700	5546062	 54a04e	6g.after
    
    Change-Id: I53c7aa6efdb2d52738013e9d337a59afbfcb2494
    Reviewed-on: https://go-review.googlesource.com/7520
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDave Cheney <dave@cheney.net>
    Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    a1bb3030
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...