• Josh Bleecher Snyder's avatar
    [dev.ssa] cmd/compile: implement static data generation · 6b416650
    Josh Bleecher Snyder authored
    The existing backend recognizes special
    assignment statements as being implementable
    with static data rather than code.
    Unfortunately, it assumes that it is in the middle
    of codegen; it emits data and modifies the AST.
    
    This does not play well with SSA's two-phase
    bootstrapping approach, in which we attempt to
    compile code but fall back to the existing backend
    if something goes wrong.
    
    To work around this:
    
    * Add the ability to inquire about static data
    without side-effects.
    * Save the static data required for a function.
    * Emit that static data during SSA codegen.
    
    Change-Id: I2e8a506c866ea3e27dffb597095833c87f62d87e
    Reviewed-on: https://go-review.googlesource.com/12790Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    6b416650
gen.go 25.7 KB