diff options
Diffstat (limited to 'Source/JavaScriptCore/bytecode/DFGExitProfile.cpp')
-rw-r--r-- | Source/JavaScriptCore/bytecode/DFGExitProfile.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp b/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp index 69fdc3737..d36878fc9 100644 --- a/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp +++ b/Source/JavaScriptCore/bytecode/DFGExitProfile.cpp @@ -55,6 +55,33 @@ bool ExitProfile::add(const FrequentExitSite& site) return true; } +Vector<FrequentExitSite> ExitProfile::exitSitesFor(unsigned bytecodeIndex) +{ + Vector<FrequentExitSite> result; + + if (!m_frequentExitSites) + return result; + + for (unsigned i = 0; i < m_frequentExitSites->size(); ++i) { + if (m_frequentExitSites->at(i).bytecodeOffset() == bytecodeIndex) + result.append(m_frequentExitSites->at(i)); + } + + return result; +} + +bool ExitProfile::hasExitSite(const FrequentExitSite& site) const +{ + if (!m_frequentExitSites) + return false; + + for (unsigned i = m_frequentExitSites->size(); i--;) { + if (m_frequentExitSites->at(i) == site) + return true; + } + return false; +} + QueryableExitProfile::QueryableExitProfile(const ExitProfile& profile) { if (!profile.m_frequentExitSites) |