]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/internal/gc: convert standard IR into SSA.
authorKeith Randall <khr@golang.org>
Wed, 15 Apr 2015 22:51:25 +0000 (15:51 -0700)
committerKeith Randall <khr@golang.org>
Thu, 16 Apr 2015 22:31:05 +0000 (22:31 +0000)
commitd2fd43aa770094e579bc394946e2ce9c75a44417
tree82ae3283dc5caf0e509ca0f57e3e45d49a87f620
parent2f09b599c31428720f23f284d56dbb9a3d4b1afa
[dev.ssa] cmd/internal/gc: convert standard IR into SSA.

Hook into the current compiler to convert the existing
IR (after walk) into SSA.  Any function ending in "_ssa"
will take this path.  The resulting assembly is printed
and then discarded.

Use gc.Type directly in ssa instead of a wrapper for go types.
It makes the IR->SSA rewrite a lot simpler.

Only a few opcodes are implemented in this change.  It is
enough to compile simple examples like
    func f(p *int) int { return *p }
    func g(a []int, i int) int { return a[i] }

Change-Id: I5e18841b752a83ca0519aa1b2d36ef02ce1de6f9
Reviewed-on: https://go-review.googlesource.com/8971
Reviewed-by: Alan Donovan <adonovan@google.com>
28 files changed:
src/cmd/dist/buildtool.go
src/cmd/internal/gc/pgen.go
src/cmd/internal/gc/ssa.go [new file with mode: 0644]
src/cmd/internal/gc/type.go [new file with mode: 0644]
src/cmd/internal/ssa/cgen.go
src/cmd/internal/ssa/check.go
src/cmd/internal/ssa/config.go [new file with mode: 0644]
src/cmd/internal/ssa/cse.go
src/cmd/internal/ssa/deadcode.go
src/cmd/internal/ssa/deadcode_test.go
src/cmd/internal/ssa/func.go
src/cmd/internal/ssa/fuse.go
src/cmd/internal/ssa/generic.go
src/cmd/internal/ssa/id.go
src/cmd/internal/ssa/lower.go
src/cmd/internal/ssa/lowerAmd64.go
src/cmd/internal/ssa/op.go
src/cmd/internal/ssa/op_string.go
src/cmd/internal/ssa/rewrite.go
src/cmd/internal/ssa/rulegen/generic.rules
src/cmd/internal/ssa/rulegen/lower_amd64.rules
src/cmd/internal/ssa/rulegen/rulegen.go
src/cmd/internal/ssa/ssac/main.go
src/cmd/internal/ssa/type.go
src/cmd/internal/ssa/types/object.go [deleted file]
src/cmd/internal/ssa/types/sizes.go [deleted file]
src/cmd/internal/ssa/types/type.go [deleted file]
src/cmd/internal/ssa/value.go