]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/inline/inlheur/analyze_func_params.go
cmd/compile/internal/inline/inlheur: remove pkg-level call site table
[gostls13.git] / src / cmd / compile / internal / inline / inlheur / analyze_func_params.go
index 1fc24afe688a36938c5d2f0e98a2f4add7d30f3c..f65d8909e07f00695e2101811889f55fdd8b1f1d 100644 (file)
@@ -21,42 +21,12 @@ type paramsAnalyzer struct {
        *condLevelTracker
 }
 
-// dclParams returns a slice containing the non-blank, named params
-// for the specific function (plus rcvr as well if applicable) in
-// declaration order.
-func dclParams(fn *ir.Func) []*ir.Name {
-       params := []*ir.Name{}
-       for _, n := range fn.Dcl {
-               if n.Op() != ir.ONAME {
-                       continue
-               }
-               if n.Class != ir.PPARAM {
-                       continue
-               }
-               params = append(params, n)
-       }
-       return params
-}
-
 // getParams returns an *ir.Name slice containing all params for the
-// function (plus rcvr as well if applicable). Note that this slice
-// includes entries for blanks; entries in the returned slice corresponding
-// to blanks or unnamed params will be nil.
+// function (plus rcvr as well if applicable).
 func getParams(fn *ir.Func) []*ir.Name {
-       dclparms := dclParams(fn)
-       dclidx := 0
-       recvrParms := fn.Type().RecvParams()
-       params := make([]*ir.Name, len(recvrParms))
-       for i := range recvrParms {
-               var v *ir.Name
-               if recvrParms[i].Sym != nil &&
-                       !recvrParms[i].Sym.IsBlank() {
-                       v = dclparms[dclidx]
-                       dclidx++
-               }
-               params[i] = v
-       }
-       return params
+       sig := fn.Type()
+       numParams := sig.NumRecvs() + sig.NumParams()
+       return fn.Dcl[:numParams]
 }
 
 func makeParamsAnalyzer(fn *ir.Func) *paramsAnalyzer {
@@ -102,8 +72,8 @@ func makeParamsAnalyzer(fn *ir.Func) *paramsAnalyzer {
        }
 }
 
-func (pa *paramsAnalyzer) setResults(fp *FuncProps) {
-       fp.ParamFlags = pa.values
+func (pa *paramsAnalyzer) setResults(funcProps *FuncProps) {
+       funcProps.ParamFlags = pa.values
 }
 
 func (pa *paramsAnalyzer) findParamIdx(n *ir.Name) int {
@@ -161,7 +131,7 @@ func (pa *paramsAnalyzer) callCheckParams(ce *ir.CallExpr) {
                if ce.Op() != ir.OCALLINTER {
                        return
                }
-               sel := ce.X.(*ir.SelectorExpr)
+               sel := ce.Fun.(*ir.SelectorExpr)
                r := ir.StaticValue(sel.X)
                if r.Op() != ir.ONAME {
                        return
@@ -177,10 +147,10 @@ func (pa *paramsAnalyzer) callCheckParams(ce *ir.CallExpr) {
                                return name == p, false
                        })
        case ir.OCALLFUNC:
-               if ce.X.Op() != ir.ONAME {
+               if ce.Fun.Op() != ir.ONAME {
                        return
                }
-               called := ir.StaticValue(ce.X)
+               called := ir.StaticValue(ce.Fun)
                if called.Op() != ir.ONAME {
                        return
                }