]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/internal/ssa: implement more compiler passes
authorKeith Randall <khr@golang.org>
Tue, 24 Mar 2015 00:02:11 +0000 (17:02 -0700)
committerKeith Randall <khr@golang.org>
Tue, 24 Mar 2015 22:26:45 +0000 (22:26 +0000)
commit7b9628429553b2bce59cd292c0894a2276c54245
tree4863f66e0e4ce99722702f1c2d34cd59ae4d3371
parent7c2c0b4e533d3d75df8993eb87f6948c49c04cc8
[dev.ssa] cmd/internal/ssa: implement more compiler passes

opt:      machine-independent optimization
fuse:     join basic blocks
lower:    convert to machine-dependent opcodes
critical: remove critical edges for register alloc
layout:   order basic blocks
schedule: order values in basic blocks
cgen:     generate assembly output

opt and lower use machine-generated matching rules using
the rule generator in rulegen/

cgen will probably change in the real compiler, as we want to
generate binary directly instead of ascii assembly.

Change-Id: Iedd7ca70f6f55a4cde30e27cfad6a7fa05691b83
Reviewed-on: https://go-review.googlesource.com/7981
Reviewed-by: Alan Donovan <adonovan@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
18 files changed:
src/cmd/internal/ssa/cgen.go [new file with mode: 0644]
src/cmd/internal/ssa/compile.go
src/cmd/internal/ssa/critical.go [new file with mode: 0644]
src/cmd/internal/ssa/fuse.go [new file with mode: 0644]
src/cmd/internal/ssa/generic.go [new file with mode: 0644]
src/cmd/internal/ssa/layout.go [new file with mode: 0644]
src/cmd/internal/ssa/lower.go [new file with mode: 0644]
src/cmd/internal/ssa/lowerAmd64.go [new file with mode: 0644]
src/cmd/internal/ssa/op.go
src/cmd/internal/ssa/op_string.go
src/cmd/internal/ssa/opt.go [new file with mode: 0644]
src/cmd/internal/ssa/rewrite.go [new file with mode: 0644]
src/cmd/internal/ssa/rulegen/generic.rules [new file with mode: 0644]
src/cmd/internal/ssa/rulegen/lower_amd64.rules [new file with mode: 0644]
src/cmd/internal/ssa/rulegen/rulegen.go [new file with mode: 0644]
src/cmd/internal/ssa/schedule.go [new file with mode: 0644]
src/cmd/internal/ssa/ssac/fib.goir
src/cmd/internal/ssa/ssac/fibiter.goir