]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "cmd/compile: ensure spills of int/float reg args land in abi slots"
authorDavid Chase <drchase@google.com>
Fri, 9 Apr 2021 14:53:33 +0000 (14:53 +0000)
committerDavid Chase <drchase@google.com>
Fri, 9 Apr 2021 15:01:13 +0000 (15:01 +0000)
This reverts CL 308510.

Reason for revert: It breaks "GOEXPERIMENT=regabi,regabiargs ./make.bash"

Change-Id: I553654690ec73120f8a6258dd80623853c430df0
Reviewed-on: https://go-review.googlesource.com/c/go/+/308932
Trust: David Chase <drchase@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ssa/stackalloc.go

index 025396f335e8fb7d24830ebd5545a0c449b494f4..45058d4e720e37ad7c5165ab652d212456afc4fe 100644 (file)
@@ -218,15 +218,8 @@ func (s *stackAllocState) stackalloc() {
                        // If this is a named value, try to use the name as
                        // the spill location.
                        var name LocalSlot
-                       interfere := false
                        if v.Op == OpStoreReg {
-                               a := v.Args[0]
-                               name = names[a.ID]
-                               if name.N == nil && (a.Op == OpArgIntReg || a.Op == OpArgFloatReg) {
-                                       // Try harder to spill to the abi-provided spill slot, even if the names are messed up.
-                                       nameOff := a.Aux.(*AuxNameOffset)
-                                       name = LocalSlot{N: nameOff.Name, Type: v.Type, Off: nameOff.Offset}
-                               }
+                               name = names[v.Args[0].ID]
                        } else {
                                name = names[v.ID]
                        }
@@ -237,7 +230,6 @@ func (s *stackAllocState) stackalloc() {
                                                // A variable can interfere with itself.
                                                // It is rare, but it can happen.
                                                s.nSelfInterfere++
-                                               interfere = true
                                                goto noname
                                        }
                                }
@@ -279,11 +271,7 @@ func (s *stackAllocState) stackalloc() {
                        // Use the stack variable at that index for v.
                        loc := locs[i]
                        if f.pass.debug > stackDebug {
-                               reason := "noname"
-                               if interfere {
-                                       reason = "interfere"
-                               }
-                               fmt.Printf("stackalloc (%s) %s to %s\n", reason, v, loc)
+                               fmt.Printf("stackalloc %s to %s\n", v, loc)
                        }
                        f.setHome(v, loc)
                        slots[v.ID] = i