mirror of
https://github.com/golang/go
synced 2024-11-23 14:50:07 -07:00
cmd/compile: ensure register args come before on-stack args in schedule
The register allocator doesn't like OpArg coming in between other OpIntArg operations, as it doesn't put the spills in the right place in that situation. This is just a bug in the new scheduler, I didn't copy over the proper score from the old scheduler correctly. Change-Id: I3b4ee1754982fb360e99c5864b19e7408d60b5bc Reviewed-on: https://go-review.googlesource.com/c/go/+/462858 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
f07910bd57
commit
b08d5ee5e9
@ -135,7 +135,7 @@ func schedule(f *Func) {
|
||||
if b != f.Entry {
|
||||
f.Fatalf("%s appeared outside of entry block, b=%s", v.Op, b.String())
|
||||
}
|
||||
score[v.ID] = ScoreArg
|
||||
score[v.ID] = ScorePhi
|
||||
case v.Op == OpArg:
|
||||
// We want all the args as early as possible, for better debugging.
|
||||
score[v.ID] = ScoreArg
|
||||
|
Loading…
Reference in New Issue
Block a user