]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: addressed vars and closures
authorDavid Chase <drchase@google.com>
Fri, 11 Sep 2015 20:40:05 +0000 (16:40 -0400)
committerDavid Chase <drchase@google.com>
Tue, 22 Sep 2015 18:07:03 +0000 (18:07 +0000)
commit956f3199a397ef05a4a34b2059d15c033556517a
treef46855fb29ffcb593d2d84f4758775f6cb07979b
parent04d6edc36debf5e3ec5420f2522f7ef4341bb65e
[dev.ssa] cmd/compile: addressed vars and closures

Cleaned up first-block-in-function code.
Added cases for |PHEAP for PPARAM and PAUTO.
Made PPARAMOUT act more like PAUTO for purposes
of address generation and vardef placement.
Added cases for OCLOSUREVAR and Ops for getting closure
pointer.  Closure ops are scheduled at top of entry block
to capture DX.

Wrote test that seems to show proper behavior for addressed
parameters, locals, and returns.

Change-Id: Iee93ebf9e3d9f74cfb4d1c1da8038eb278d8a857
Reviewed-on: https://go-review.googlesource.com/14650
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: David Chase <drchase@google.com>
13 files changed:
src/cmd/compile/internal/gc/plive.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/ssa_test.go
src/cmd/compile/internal/gc/syntax.go
src/cmd/compile/internal/gc/testdata/addressed_ssa.go [new file with mode: 0644]
src/cmd/compile/internal/ssa/check.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/gen/genericOps.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/schedule.go