]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "cmd/compile: improve register overwrite decision for resultInArg0 ops"
authorKeith Randall <khr@golang.org>
Wed, 25 Jan 2023 19:08:14 +0000 (19:08 +0000)
committerGopher Robot <gobot@golang.org>
Wed, 25 Jan 2023 19:25:48 +0000 (19:25 +0000)
This reverts CL 460656
Reason for revert: This breaks s390x.

Change-Id: I8fada14fabc90593b8033ed11188c04963d2da75
Reviewed-on: https://go-review.googlesource.com/c/go/+/463475
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>

src/cmd/compile/internal/ssa/regalloc.go

index 05765bb701056e52c59682f056e5217744501f73..294c522a90a87073100c63c1612367598b133621 100644 (file)
@@ -1544,7 +1544,6 @@ func (s *regAllocState) regalloc(f *Func) {
                                                }
                                        }
                                }
-
                                // Avoid future fixed uses if we can.
                                if m&^desired.avoid != 0 {
                                        m &^= desired.avoid
@@ -1552,19 +1551,6 @@ func (s *regAllocState) regalloc(f *Func) {
                                // Save input 0 to a new register so we can clobber it.
                                c := s.allocValToReg(v.Args[0], m, true, v.Pos)
                                s.copies[c] = false
-
-                               // Normally we use the register of the old copy of input 0 as the target.
-                               // However, if input 0 is already in its desired register then we use
-                               // the register of the new copy instead.
-                               if rp, ok := s.f.getHome(args[0].ID).(*Register); ok {
-                                       r := register(rp.num)
-                                       for _, r2 := range dinfo[idx].in[0] {
-                                               if r == r2 {
-                                                       args[0] = c
-                                                       break
-                                               }
-                                       }
-                               }
                        }
 
                ok: