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>
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 {
}
}
+ 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
}