Commit 075880a8 authored by Keith Randall's avatar Keith Randall

cmd/compile: fix build

Run live vars test only on ssa builds.
We can't just drop KeepAlive ops during regalloc.  We need
to replace them with copies.

Change-Id: Ib4b3b1381415db88fdc2165fc0a9541b73ad9759
Reviewed-on: https://go-review.googlesource.com/23225
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent 6ab45c09
......@@ -948,13 +948,14 @@ func (s *regAllocState) regalloc(f *Func) {
if vi.spillUsed {
// Use the spill location.
v.SetArg(0, vi.spill)
b.Values = append(b.Values, v)
} else {
// No need to keep unspilled values live.
// These are typically rematerializeable constants like nil,
// or values of a variable that were modified since the last call.
v.Args[0].Uses--
v.Op = OpCopy
v.SetArgs1(v.Args[1])
}
b.Values = append(b.Values, v)
continue
}
regspec := opcodeTable[v.Op].reg
......
......@@ -3,6 +3,7 @@
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build amd64
package main
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment