From 32bd777a37847566b5cf921f77ccd8877b07027b Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 5 Sep 2024 01:21:40 +0700 Subject: [PATCH] cmd/compile: use slices.SortStableFunc Now that we're bootstrapping from a toolchain that has the slices package. Updates #64751 Change-Id: I876ec6d261466344faf33f8c5cda229dd1e4185f Reviewed-on: https://go-review.googlesource.com/c/go/+/610602 Auto-Submit: Cuong Manh Le Reviewed-by: Dmitri Shuralyov LUCI-TryBot-Result: Go LUCI Reviewed-by: Cherry Mui --- src/cmd/compile/internal/inline/inlheur/analyze.go | 11 ++++++----- src/cmd/compile/internal/liveness/mergelocals.go | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/cmd/compile/internal/inline/inlheur/analyze.go b/src/cmd/compile/internal/inline/inlheur/analyze.go index 9ed7d73af9..2704f6a243 100644 --- a/src/cmd/compile/internal/inline/inlheur/analyze.go +++ b/src/cmd/compile/internal/inline/inlheur/analyze.go @@ -8,13 +8,14 @@ import ( "cmd/compile/internal/base" "cmd/compile/internal/ir" "cmd/compile/internal/types" + "cmp" "encoding/json" "fmt" "internal/buildcfg" "io" "os" "path/filepath" - "sort" + "slices" "strings" ) @@ -349,11 +350,11 @@ func dumpFnPreamble(w io.Writer, funcInlHeur *fnInlHeur, ecst encodedCallSiteTab // sortFnInlHeurSlice sorts a slice of fnInlHeur based on // the starting line of the function definition, then by name. func sortFnInlHeurSlice(sl []fnInlHeur) []fnInlHeur { - sort.SliceStable(sl, func(i, j int) bool { - if sl[i].line != sl[j].line { - return sl[i].line < sl[j].line + slices.SortStableFunc(sl, func(a, b fnInlHeur) int { + if a.line != b.line { + return cmp.Compare(a.line, b.line) } - return sl[i].fname < sl[j].fname + return strings.Compare(a.fname, b.fname) }) return sl } diff --git a/src/cmd/compile/internal/liveness/mergelocals.go b/src/cmd/compile/internal/liveness/mergelocals.go index d2a138c50e..cbe49aa655 100644 --- a/src/cmd/compile/internal/liveness/mergelocals.go +++ b/src/cmd/compile/internal/liveness/mergelocals.go @@ -161,8 +161,8 @@ func (mls *MergeLocalsState) Followers(n *ir.Name, tmp []*ir.Name) []*ir.Name { for _, k := range sl[1:] { tmp = append(tmp, mls.vars[k]) } - sort.SliceStable(tmp, func(i, j int) bool { - return tmp[i].Sym().Name < tmp[j].Sym().Name + slices.SortStableFunc(tmp, func(a, b *ir.Name) int { + return strings.Compare(a.Sym().Name, b.Sym().Name) }) return tmp } -- 2.48.1