From: Josh Bleecher Snyder Date: Thu, 30 Mar 2017 18:13:01 +0000 (-0700) Subject: cmd/compile: initialize SSA runtime functions in initssaconfig X-Git-Tag: go1.9beta1~905 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=beb833f12456f8ae49e003df79f1e0813b610032;p=gostls13.git cmd/compile: initialize SSA runtime functions in initssaconfig This is a better home for it. Change-Id: I7ce96c16378d841613edaa53c07347b0ac99ea6e Reviewed-on: https://go-review.googlesource.com/38970 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index a525373e2f..aa09fb71e7 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -250,25 +250,6 @@ func (s *ssafn) AllocFrame(f *ssa.Func) { } func compile(fn *Node) { - if Newproc == nil { - Newproc = Sysfunc("newproc") - Deferproc = Sysfunc("deferproc") - Deferreturn = Sysfunc("deferreturn") - Duffcopy = Sysfunc("duffcopy") - Duffzero = Sysfunc("duffzero") - panicindex = Sysfunc("panicindex") - panicslice = Sysfunc("panicslice") - panicdivide = Sysfunc("panicdivide") - growslice = Sysfunc("growslice") - panicdottypeE = Sysfunc("panicdottypeE") - panicdottypeI = Sysfunc("panicdottypeI") - panicnildottype = Sysfunc("panicnildottype") - assertE2I = Sysfunc("assertE2I") - assertE2I2 = Sysfunc("assertE2I2") - assertI2I = Sysfunc("assertI2I") - assertI2I2 = Sysfunc("assertI2I2") - } - Curfn = fn dowidth(fn.Type) diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index fc08596dbe..b5a6d455ad 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -66,6 +66,24 @@ func initssaconfig() { ssaConfig.Set387(thearch.Use387) } ssaCache = new(ssa.Cache) + + // Set up some runtime functions we'll need to call. + Newproc = Sysfunc("newproc") + Deferproc = Sysfunc("deferproc") + Deferreturn = Sysfunc("deferreturn") + Duffcopy = Sysfunc("duffcopy") + Duffzero = Sysfunc("duffzero") + panicindex = Sysfunc("panicindex") + panicslice = Sysfunc("panicslice") + panicdivide = Sysfunc("panicdivide") + growslice = Sysfunc("growslice") + panicdottypeE = Sysfunc("panicdottypeE") + panicdottypeI = Sysfunc("panicdottypeI") + panicnildottype = Sysfunc("panicnildottype") + assertE2I = Sysfunc("assertE2I") + assertE2I2 = Sysfunc("assertE2I2") + assertI2I = Sysfunc("assertI2I") + assertI2I2 = Sysfunc("assertI2I2") } // buildssa builds an SSA function.