]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmd/compile: remove Value.RemoveArg
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Sun, 24 Oct 2021 18:02:12 +0000 (01:02 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Mon, 25 Oct 2021 02:59:35 +0000 (02:59 +0000)
It's only used in two places:

 - The one in regalloc.go can be replaced with v.resetArgs()
 - The one in rewrite.go can be open coded

and can cause wrong usage like the bug that CL 358117 fixed.

Change-Id: I125baf237db159d056fe4b1c73072331eea4d06a
Reviewed-on: https://go-review.googlesource.com/c/go/+/357965
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/value.go

index 28fac6ccd0422bfdeeb9fcd34d21008835b2e20c..431059ae690d976a730b03aeb1c62b734d23baf7 100644 (file)
@@ -1840,7 +1840,7 @@ func (s *regAllocState) regalloc(f *Func) {
                                if s.f.pass.debug > regDebug {
                                        fmt.Printf("delete copied value %s\n", c.LongString())
                                }
-                               c.RemoveArg(0)
+                               c.resetArgs()
                                f.freeValue(c)
                                delete(s.copies, c)
                                progress = true
index 2fe0ca64c82ed08723c6b1c9c9397b51a7b01dcb..9136c59e65494f8ee56341965a652f04bd1466ab 100644 (file)
@@ -816,7 +816,11 @@ func devirtLECall(v *Value, sym *obj.LSym) *Value {
        v.Op = OpStaticLECall
        auxcall := v.Aux.(*AuxCall)
        auxcall.Fn = sym
-       v.RemoveArg(0)
+       // Remove first arg
+       v.Args[0].Uses--
+       copy(v.Args[0:], v.Args[1:])
+       v.Args[len(v.Args)-1] = nil // aid GC
+       v.Args = v.Args[:len(v.Args)-1]
        return v
 }
 
index 630143cc50c76db1941543a94a5610435192c731..7b411a46124130b6fea4d5e04d53bd931b21c031 100644 (file)
@@ -302,12 +302,6 @@ func (v *Value) SetArg(i int, w *Value) {
        v.Args[i] = w
        w.Uses++
 }
-func (v *Value) RemoveArg(i int) {
-       v.Args[i].Uses--
-       copy(v.Args[i:], v.Args[i+1:])
-       v.Args[len(v.Args)-1] = nil // aid GC
-       v.Args = v.Args[:len(v.Args)-1]
-}
 func (v *Value) SetArgs1(a *Value) {
        v.resetArgs()
        v.AddArg(a)