From: Matthew Dempsky Date: Wed, 15 Feb 2017 21:12:53 +0000 (-0800) Subject: cmd/compile/internal/gc: skip useless loads for non-SSA params X-Git-Tag: go1.9beta1~1540 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a6b33312366ad321ea6ac6957e6a53bdd41e892e;p=gostls13.git cmd/compile/internal/gc: skip useless loads for non-SSA params Change-Id: I78ca43a0f0a6a162a2ade1352e2facb29432d4ac Reviewed-on: https://go-review.googlesource.com/37102 Run-TryBot: Matthew Dempsky Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 21f6e651d8..403e03f9ff 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -120,19 +120,11 @@ func buildssa(fn *Node) *ssa.Func { } } - // Populate arguments. + // Populate SSAable arguments. for _, n := range fn.Func.Dcl { - if n.Class != PPARAM { - continue - } - var v *ssa.Value - if s.canSSA(n) { - v = s.newValue0A(ssa.OpArg, n.Type, n) - } else { - // Not SSAable. Load it. - v = s.newValue2(ssa.OpLoad, n.Type, s.decladdrs[n], s.startmem) + if n.Class == PPARAM && s.canSSA(n) { + s.vars[n] = s.newValue0A(ssa.OpArg, n.Type, n) } - s.vars[n] = v } // Convert the AST-based IR to the SSA-based IR