cmd/compile: reenable name preservation on copies in expand_calls

This reverts CL 311829, and reenables CL 309330. The issue
should be fixed in the previous CL.

Change-Id: I69db0565c72470a1814f135d8f8ec62c781bfc5a
Reviewed-on: https://go-review.googlesource.com/c/go/+/312094
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
Cherry Zhang 2021-04-20 21:07:23 -04:00
parent daee726a0b
commit e5bc4f2a77
2 changed files with 9 additions and 14 deletions

View file

@ -1452,17 +1452,15 @@ func expandCalls(f *Func) {
// Step 6: elide any copies introduced.
// Update named values.
if false { // TODO: reeanable. It caused compiler OOMing on large input.
for _, name := range f.Names {
values := f.NamedValues[name]
for i, v := range values {
if v.Op == OpCopy {
a := v.Args[0]
for a.Op == OpCopy {
a = a.Args[0]
}
values[i] = a
for _, name := range f.Names {
values := f.NamedValues[name]
for i, v := range values {
if v.Op == OpCopy {
a := v.Args[0]
for a.Op == OpCopy {
a = a.Args[0]
}
values[i] = a
}
}
}

View file

@ -1,8 +1,5 @@
// errorcheckwithauto -0 -l -live -wb=0 -d=ssa/insert_resched_checks/off
// +build amd64,goexperiment.regabidefer,goexperiment.regabiargs,ignore
// Disabled for now. The compiler sometimes has bad name-value association
// for args, causing args appears as autotmps.
// +build amd64,goexperiment.regabidefer,goexperiment.regabiargs
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style