]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: implement static data generation
authorJosh Bleecher Snyder <josharian@gmail.com>
Tue, 28 Jul 2015 17:56:39 +0000 (10:56 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 28 Jul 2015 19:43:31 +0000 (19:43 +0000)
commit6b41665039e278a83823051b44628e25415b0205
tree8f2944c81390db853729b130bb14776602b9a4ac
parent2a5e6c47bc2e56296204aa721dec90804bee1501
[dev.ssa] cmd/compile: implement static data generation

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/12790
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/gen.go
src/cmd/compile/internal/gc/sinit.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/func.go