mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.ssa] cmd/compile: zero register masks for each edge
Forgot to reset these masks before each merge edge is processed. Change-Id: I2f593189b63f50a1cd12b2dd4645ca7b9614f1f3 Reviewed-on: https://go-review.googlesource.com/18223 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: David Chase <drchase@google.com>
This commit is contained in:
parent
7d9f1067d1
commit
d7ad7b9efe
1 changed files with 9 additions and 0 deletions
|
|
@ -1052,6 +1052,9 @@ func (e *edgeState) setup(idx int, srcReg []endReg, dstReg []startReg, stacklive
|
|||
for k := range e.contents {
|
||||
delete(e.contents, k)
|
||||
}
|
||||
e.usedRegs = 0
|
||||
e.uniqueRegs = 0
|
||||
e.finalRegs = 0
|
||||
|
||||
// Live registers can be sources.
|
||||
for _, x := range srcReg {
|
||||
|
|
@ -1384,6 +1387,12 @@ func (e *edgeState) findRegFor(typ Type) Location {
|
|||
}
|
||||
}
|
||||
|
||||
fmt.Printf("m:%d unique:%d final:%d\n", m, e.uniqueRegs, e.finalRegs)
|
||||
for vid, a := range e.cache {
|
||||
for _, c := range a {
|
||||
fmt.Printf("v%d: %s %s\n", vid, c, e.s.f.getHome(c.ID).Name())
|
||||
}
|
||||
}
|
||||
e.s.f.Fatalf("can't find empty register on edge %s->%s", e.p, e.b)
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue