only profile BiFs that appear in calls we care about

This commit is contained in:
Vern Paxson 2025-09-25 13:14:25 -07:00
parent 7d2842e1d5
commit f221150efa
2 changed files with 6 additions and 2 deletions

View file

@ -388,7 +388,10 @@ TraversalCode ProfileFunc::PreExpr(const Expr* e) {
auto sf = static_cast<ScriptFunc*>(func_vf);
script_calls.insert(sf);
}
else
// Track the BiF, though not if we know we're not going to
// compile the call to it.
else if ( obj_matches_opt_files(e) != AnalyzeDecision::SHOULD_NOT )
BiF_globals.insert(func);
}
else {

View file

@ -256,7 +256,8 @@ protected:
std::unordered_set<ScriptFunc*> script_calls;
// Same for BiF's, though for them we record the corresponding global
// rather than the BuiltinFunc*.
// rather than the BuiltinFunc*. In addition, we only track BiFs germane
// to code we're compiling.
IDSet BiF_globals;
// Script functions appearing in "when" clauses.