From 011e40da85bddf83fee0ded83cb9115b7a88b3d4 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sat, 26 Oct 2024 00:48:33 +0700 Subject: all: prealloc slice with possible minimum capabilities --- src/cmd/compile/internal/ssa/loopbce.go | 2 +- src/cmd/compile/internal/ssa/regalloc.go | 10 +++++----- src/cmd/compile/internal/ssa/schedule.go | 2 +- src/cmd/compile/internal/ssagen/ssa.go | 2 +- src/cmd/compile/internal/test/ssa_test.go | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/cmd/compile/internal') diff --git a/src/cmd/compile/internal/ssa/loopbce.go b/src/cmd/compile/internal/ssa/loopbce.go index aa6cc48cac..1aa987e5b6 100644 --- a/src/cmd/compile/internal/ssa/loopbce.go +++ b/src/cmd/compile/internal/ssa/loopbce.go @@ -84,7 +84,7 @@ func parseIndVar(ind *Value) (min, inc, nxt *Value, loopReturn Edge) { // // exit_loop: func findIndVar(f *Func) []indVar { - var iv []indVar + iv := make([]indVar, 0, len(f.Blocks)) sdom := f.Sdom() for _, b := range f.Blocks { diff --git a/src/cmd/compile/internal/ssa/regalloc.go b/src/cmd/compile/internal/ssa/regalloc.go index a0257f3064..d51d41ed30 100644 --- a/src/cmd/compile/internal/ssa/regalloc.go +++ b/src/cmd/compile/internal/ssa/regalloc.go @@ -1000,10 +1000,10 @@ var tmpVal Value func (s *regAllocState) regalloc(f *Func) { regValLiveSet := f.newSparseSet(f.NumValues()) // set of values that may be live in register defer f.retSparseSet(regValLiveSet) - var oldSched []*Value - var phis []*Value - var phiRegs []register - var args []*Value + oldSched := make([]*Value, 0, len(s.visitOrder)) + phis := make([]*Value, 0, len(s.visitOrder)) + phiRegs := make([]register, 0, len(s.visitOrder)) + args := make([]*Value, 0, len(s.visitOrder)) // Data structure used for computing desired registers. var desired desiredState @@ -2298,7 +2298,7 @@ func (s *regAllocState) placeSpills() { } // Insert spill instructions into the block schedules. - var oldSched []*Value + oldSched := make([]*Value, 0, len(s.visitOrder)) for _, b := range s.visitOrder { nfirst := 0 for _, v := range b.Values { diff --git a/src/cmd/compile/internal/ssa/schedule.go b/src/cmd/compile/internal/ssa/schedule.go index 8006253145..a459eb4328 100644 --- a/src/cmd/compile/internal/ssa/schedule.go +++ b/src/cmd/compile/internal/ssa/schedule.go @@ -460,7 +460,7 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value } w = w.MemoryArg() } - var stack []*Value + stack := make([]*Value, 0, len(values)) for _, v := range values { if sset.contains(v.ID) { // in sset means v is a store, or already pushed to stack, or already assigned a store number diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index 17feb90df7..cb0508350f 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -937,7 +937,7 @@ func dumpSourcesColumn(writer *ssa.HTMLWriter, fn *ir.Func) { } // Read sources of inlined functions. - var inlFns []*ssa.FuncLines + inlFns := make([]*ssa.FuncLines, 0, len(ssaDumpInlined)) for _, fi := range ssaDumpInlined { elno := fi.Endlineno fname := base.Ctxt.PosTable.Pos(fi.Pos()).Filename() diff --git a/src/cmd/compile/internal/test/ssa_test.go b/src/cmd/compile/internal/test/ssa_test.go index 7d213fceca..c4bd28e6e6 100644 --- a/src/cmd/compile/internal/test/ssa_test.go +++ b/src/cmd/compile/internal/test/ssa_test.go @@ -76,7 +76,6 @@ func TestCode(t *testing.T) { tmpdir := t.TempDir() // Find all the test functions (and the files containing them). - var srcs []string // files containing Test functions type test struct { name string // TestFoo usesFloat bool // might use float operations @@ -86,6 +85,7 @@ func TestCode(t *testing.T) { if err != nil { t.Fatalf("can't read testdata directory: %v", err) } + srcs := make([]string, 0, len(files)) // files containing Test functions for _, f := range files { if !strings.HasSuffix(f.Name(), "_test.go") { continue -- cgit v1.3