mirror of
https://github.com/golang/go
synced 2024-10-05 20:31:20 -06:00
[dev.ssa] cmd/compile: minor cleanup
Change-Id: Ib33f3b1cfa09f410675d275e214d8ddc246c53c3 Reviewed-on: https://go-review.googlesource.com/12548 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
61aa0953e5
commit
e0ac5c5337
@ -22,6 +22,7 @@ func buildssa(fn *Node) (ssafn *ssa.Func, usessa bool) {
|
||||
usessa = strings.HasSuffix(name, "_ssa")
|
||||
|
||||
if usessa {
|
||||
fmt.Println("generating SSA for", name)
|
||||
dumplist("buildssa-enter", fn.Func.Enter)
|
||||
dumplist("buildssa-body", fn.Nbody)
|
||||
}
|
||||
@ -481,16 +482,14 @@ func (s *state) stmt(n *Node) {
|
||||
|
||||
s.startBlock(bThen)
|
||||
s.stmtList(n.Nbody)
|
||||
b = s.endBlock()
|
||||
if b != nil {
|
||||
if b := s.endBlock(); b != nil {
|
||||
addEdge(b, bEnd)
|
||||
}
|
||||
|
||||
if n.Rlist != nil {
|
||||
s.startBlock(bElse)
|
||||
s.stmtList(n.Rlist)
|
||||
b = s.endBlock()
|
||||
if b != nil {
|
||||
if b := s.endBlock(); b != nil {
|
||||
addEdge(b, bEnd)
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ Regalloc
|
||||
- Handle 2-address instructions.
|
||||
- Floating point registers
|
||||
- Make calls clobber all registers
|
||||
- Make liveness analysis non-quadratic.
|
||||
|
||||
StackAlloc:
|
||||
- Sort variables so all ptr-containing ones are first (so stack
|
||||
@ -60,3 +61,5 @@ Other
|
||||
expression subtrees in the output.
|
||||
- Implement memory zeroing with REPSTOSQ and DuffZero
|
||||
- make deadstore work with zeroing.
|
||||
- Add a value range propagation optimization pass.
|
||||
Use it for bounds check elimination and bitwidth reduction.
|
||||
|
Loading…
Reference in New Issue
Block a user