]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile/internal/ssa: New register allocator
authorKeith Randall <khr@golang.org>
Tue, 11 Aug 2015 19:51:33 +0000 (12:51 -0700)
committerKeith Randall <khr@golang.org>
Mon, 17 Aug 2015 21:06:30 +0000 (21:06 +0000)
commit0b46b42943ee9d7ad4e9a19772d22468718173c9
tree6e1a374e1ef13e8b88bf800833944afa8f3e7a15
parent759b9c3b80da47a8db59f015bfca551a2a15ae18
[dev.ssa] cmd/compile/internal/ssa: New register allocator

Implement a global (whole function) register allocator.
This replaces the local (per basic block) register allocator.

Clobbering of registers by instructions is handled properly.
A separate change will add the correct clobbers to all the instructions.

Change-Id: I38ce4dc7dccb8303c1c0e0295fe70247b0a3f2ea
Reviewed-on: https://go-review.googlesource.com/13622
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Todd Neal <todd@tneal.org>
12 files changed:
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/testdata/regalloc_ssa.go [new file with mode: 0644]
src/cmd/compile/internal/ssa/deadcode.go
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/gen/main.go
src/cmd/compile/internal/ssa/html.go
src/cmd/compile/internal/ssa/op.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/stackalloc.go
src/cmd/compile/internal/ssa/tighten.go
src/cmd/compile/internal/ssa/value.go