Revert "cmd/compile: speedup large init function compile time"

This reverts CL 737880.

Reason to revert: the CL breaks initialization variables that emits
local variables in synthetic init function.

Fixes #80141

Change-Id: I7d5da53901b47d7000dc7794a157df720c4f8add
Reviewed-on: https://go-review.googlesource.com/c/go/+/794180
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Jorropo <jorropo.pgm@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Auto-Submit: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go
index 0b6d74b..fab311e 100644
--- a/src/cmd/compile/internal/noder/reader.go
+++ b/src/cmd/compile/internal/noder/reader.go
@@ -3573,9 +3573,6 @@
 	// Outline (if legal/profitable) global map inits.
 	staticinit.OutlineMapInits(fn)
 
-	// Split large init function.
-	staticinit.SplitLargeInit(fn)
-
 	target.Inits = append(target.Inits, fn)
 }
 
diff --git a/src/cmd/compile/internal/pkginit/init.go b/src/cmd/compile/internal/pkginit/init.go
index 9be1586..04f6a5d 100644
--- a/src/cmd/compile/internal/pkginit/init.go
+++ b/src/cmd/compile/internal/pkginit/init.go
@@ -87,7 +87,10 @@
 
 	// Record user init functions.
 	for _, fn := range typecheck.Target.Inits {
-		if staticinit.CanOptimize(fn) {
+		if fn.Sym().Name == "init" {
+			// Synthetic init function for initialization of package-scope
+			// variables. We can use staticinit to optimize away static
+			// assignments.
 			s := staticinit.Schedule{
 				Plans: make(map[ir.Node]*staticinit.Plan),
 				Temps: make(map[ir.Node]*ir.Name),
diff --git a/src/cmd/compile/internal/staticinit/sched.go b/src/cmd/compile/internal/staticinit/sched.go
index 42a2276..c954631 100644
--- a/src/cmd/compile/internal/staticinit/sched.go
+++ b/src/cmd/compile/internal/staticinit/sched.go
@@ -9,7 +9,6 @@
 	"go/constant"
 	"go/token"
 	"os"
-	"slices"
 	"strings"
 
 	"cmd/compile/internal/base"
@@ -1248,54 +1247,3 @@
 		fmt.Fprintf(os.Stderr, "=-= outlined %v map initializations\n", outlined)
 	}
 }
-
-const maxInitStatements = 1000
-
-// SplitLargeInit breaks up a large "init" function into smaller chunks to avoid slow compilation.
-func SplitLargeInit(fn *ir.Func) {
-	if !fn.IsPackageInit() || len(fn.Body) <= maxInitStatements {
-		return
-	}
-	var calls []ir.Node
-	for chunk := range slices.Chunk(fn.Body, maxInitStatements) {
-		varInitFn := generateVarInitFunc(chunk)
-		ir.WithFunc(fn, func() {
-			calls = append(calls, typecheck.Call(varInitFn.Pos(), varInitFn.Nname, nil, false))
-		})
-	}
-	fn.Body = calls
-}
-
-// CanOptimize reports whether the given fn can be optimized for static assignments.
-func CanOptimize(fn *ir.Func) bool {
-	name := fn.Sym().Name
-	return name == "init" || strings.HasPrefix(name, varInitFuncPrefix)
-}
-
-// varInitGen is a counter used to uniquify compiler-generated functions for initializing variables.
-var varInitGen int
-
-const varInitFuncPrefix = "init.var."
-
-// Create a new function that will (eventually) have this form:
-//
-//	func init.var.%d() {
-//		...
-//	}
-func generateVarInitFunc(body []ir.Node) *ir.Func {
-	pos := base.AutogeneratedPos
-	base.Pos = pos
-
-	sym := typecheck.LookupNum(varInitFuncPrefix, varInitGen)
-	varInitGen++
-
-	fn := ir.NewFunc(pos, pos, sym, types.NewSignature(nil, nil, nil))
-	fn.SetInlinabilityChecked(true) // suppress inlining; otherwise, we end up with giant init eventually.
-	fn.SetWrapper(true)             // less disruptive on backtraces.
-	typecheck.DeclFunc(fn)
-
-	fn.Body = body
-	typecheck.FinishFuncBody()
-
-	return fn
-}