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.
// 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 (
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.