]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/inline/inlheur/score_callresult_uses.go
cmd/compile/internal/inline/inlheur: remove pkg-level call site table
[gostls13.git] / src / cmd / compile / internal / inline / inlheur / score_callresult_uses.go
index 76e250a33bddcf7ca3ffb317a2489c4b557d59ca..6a306d452212fd756e9f68177f44051baa2ea80b 100644 (file)
@@ -150,17 +150,17 @@ func namesDefined(cs *CallSite) ([]*ir.Name, []*ir.Name, *FuncProps) {
        if cs.Assign == nil {
                return nil, nil, nil
        }
-       fih, ok := fpmap[cs.Callee]
+       funcInlHeur, ok := fpmap[cs.Callee]
        if !ok {
                // TODO: add an assert/panic here.
                return nil, nil, nil
        }
-       if len(fih.props.ResultFlags) == 0 {
+       if len(funcInlHeur.props.ResultFlags) == 0 {
                return nil, nil, nil
        }
 
        // Single return case.
-       if len(fih.props.ResultFlags) == 1 {
+       if len(funcInlHeur.props.ResultFlags) == 1 {
                asgn, ok := cs.Assign.(*ir.AssignStmt)
                if !ok {
                        return nil, nil, nil
@@ -170,7 +170,7 @@ func namesDefined(cs *CallSite) ([]*ir.Name, []*ir.Name, *FuncProps) {
                if !ok {
                        return nil, nil, nil
                }
-               return []*ir.Name{aname}, []*ir.Name{nil}, fih.props
+               return []*ir.Name{aname}, []*ir.Name{nil}, funcInlHeur.props
        }
 
        // Multi-return case
@@ -178,8 +178,8 @@ func namesDefined(cs *CallSite) ([]*ir.Name, []*ir.Name, *FuncProps) {
        if !ok || !asgn.Def {
                return nil, nil, nil
        }
-       userVars := make([]*ir.Name, len(fih.props.ResultFlags))
-       autoTemps := make([]*ir.Name, len(fih.props.ResultFlags))
+       userVars := make([]*ir.Name, len(funcInlHeur.props.ResultFlags))
+       autoTemps := make([]*ir.Name, len(funcInlHeur.props.ResultFlags))
        for idx, x := range asgn.Lhs {
                if n, ok := x.(*ir.Name); ok {
                        userVars[idx] = n
@@ -198,7 +198,7 @@ func namesDefined(cs *CallSite) ([]*ir.Name, []*ir.Name, *FuncProps) {
                        return nil, nil, nil
                }
        }
-       return userVars, autoTemps, fih.props
+       return userVars, autoTemps, funcInlHeur.props
 }
 
 func (rua *resultUseAnalyzer) nodeVisitPost(n ir.Node) {
@@ -267,10 +267,8 @@ func (rua *resultUseAnalyzer) callTargetCheckResults(call ir.Node) {
                                rua.fn.Sym().Name, rname)
                }
                if cs := rua.returnHasProp(rname, ResultIsConcreteTypeConvertedToInterface); cs != nil {
-                       // FIXME: add cond level support here
-                       adj := passConcreteToItfCallAdj
-                       cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
-                       adj = callResultRescoreAdj
+
+                       adj := returnFeedsConcreteToInterfaceCallAdj
                        cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
                }
        case ir.OCALLFUNC:
@@ -285,17 +283,12 @@ func (rua *resultUseAnalyzer) callTargetCheckResults(call ir.Node) {
                        }
                }
                if cs := rua.returnHasProp(rname, ResultAlwaysSameInlinableFunc); cs != nil {
-                       // FIXME: add cond level support here
-                       adj := passInlinableFuncToIndCallAdj
-                       cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
-                       adj = callResultRescoreAdj
+                       adj := returnFeedsInlinableFuncToIndCallAdj
                        cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
                } else if cs := rua.returnHasProp(rname, ResultAlwaysSameFunc); cs != nil {
-                       // FIXME: add cond level support here
-                       adj := passFuncToIndCallAdj
-                       cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
-                       adj = callResultRescoreAdj
+                       adj := returnFeedsFuncToIndCallAdj
                        cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
+
                }
        }
 }
@@ -351,10 +344,7 @@ func (rua *resultUseAnalyzer) foldCheckResults(cond ir.Node) {
        if !ShouldFoldIfNameConstant(cond, namesUsed) {
                return
        }
-       // FIXME: add cond level support here
-       adj := passConstToIfAdj
-       cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
-       adj = callResultRescoreAdj
+       adj := returnFeedsConstToIfAdj
        cs.Score, cs.ScoreMask = adjustScore(adj, cs.Score, cs.ScoreMask)
 }