]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/inline/inlheur/callsite.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / src / cmd / compile / internal / inline / inlheur / callsite.go
index 7a1830fd68a335125ca31a5cf95fdab94ced115e..baa1c20dcf7facd5549ec044536d610d7ac1784e 100644 (file)
@@ -27,11 +27,13 @@ import (
 type CallSite struct {
        Callee    *ir.Func
        Call      *ir.CallExpr
+       parent    *CallSite
        Assign    ir.Node
        Flags     CSPropBits
        Score     int
        ScoreMask scoreAdjustTyp
        ID        uint
+       aux       uint8
 }
 
 // CallSiteTab is a table of call sites, keyed by call expr.
@@ -41,18 +43,6 @@ type CallSite struct {
 // with many calls that share the same auto-generated pos.
 type CallSiteTab map[*ir.CallExpr]*CallSite
 
-func GetCallSiteScore(fn *ir.Func, call *ir.CallExpr) (int, bool) {
-       if funcInlHeur, ok := fpmap[fn]; !ok {
-               return 0, false
-       } else {
-               cs, ok := funcInlHeur.cstab[call]
-               if !ok {
-                       return 0, false
-               }
-               return cs.Score, true
-       }
-}
-
 type CSPropBits uint32
 
 const (
@@ -61,6 +51,12 @@ const (
        CallSiteInInitFunc
 )
 
+type csAuxBits uint8
+
+const (
+       csAuxInlined = 1 << iota
+)
+
 // encodedCallSiteTab is a table keyed by "encoded" callsite
 // (stringified src.XPos plus call site ID) mapping to a value of call
 // property bits and score.