Bug 1547104 - Add initial JS profiler subcategories r=mstange

Differential Revision: https://phabricator.services.mozilla.com/D28901

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Matthew Gaudet 2019-04-26 13:47:40 +00:00
Родитель 9fc719b1f3
Коммит c08cc4c949
4 изменённых файлов: 13 добавлений и 4 удалений

Просмотреть файл

@ -47,6 +47,9 @@
END_CATEGORY \
BEGIN_CATEGORY(JS, "JavaScript", "yellow") \
SUBCATEGORY(JS, JS, "Other") \
SUBCATEGORY(JS, JS_Parsing, "JS Parsing") \
SUBCATEGORY(JS, JS_IonCompilation, "Ion JIT Compilation") \
SUBCATEGORY(JS, JS_BaselineCompilation, "Baseline JIT Compilation") \
END_CATEGORY \
BEGIN_CATEGORY(GCCC, "GC / CC", "orange") \
SUBCATEGORY(GCCC, GCCC, "Other") \

Просмотреть файл

@ -528,7 +528,8 @@ JSScript* frontend::ScriptCompiler<Unit>::compileScript(
for (;;) {
ParseNode* pn;
{
AutoGeckoProfilerEntry pseudoFrame(cx, "script parsing");
AutoGeckoProfilerEntry pseudoFrame(cx, "script parsing",
JS::ProfilingCategoryPair::JS_Parsing);
if (sc->isEvalContext()) {
pn = parser->evalBody(sc->asEvalContext());
} else {
@ -537,7 +538,8 @@ JSScript* frontend::ScriptCompiler<Unit>::compileScript(
}
// Successfully parsed. Emit the script.
AutoGeckoProfilerEntry pseudoFrame(cx, "script emit");
AutoGeckoProfilerEntry pseudoFrame(cx, "script emit",
JS::ProfilingCategoryPair::JS_Parsing);
if (pn) {
if (sc->isEvalContext() && sc->hasDebuggerStatement() &&
!cx->helperThread()) {

Просмотреть файл

@ -205,7 +205,9 @@ MethodStatus jit::BaselineCompile(JSContext* cx, JSScript* script,
MOZ_ASSERT(!script->hasBaselineScript());
MOZ_ASSERT(script->canBaselineCompile());
MOZ_ASSERT(IsBaselineEnabled(cx));
AutoGeckoProfilerEntry pseudoFrame(cx, "Baseline script compilation");
AutoGeckoProfilerEntry pseudoFrame(
cx, "Baseline script compilation",
JS::ProfilingCategoryPair::JS_BaselineCompilation);
script->ensureNonLazyCanonicalFunction();

Просмотреть файл

@ -2216,7 +2216,9 @@ static MethodStatus Compile(JSContext* cx, HandleScript script,
MOZ_ASSERT(jit::IsIonEnabled(cx));
MOZ_ASSERT(jit::IsBaselineEnabled(cx));
MOZ_ASSERT_IF(osrPc != nullptr, LoopEntryCanIonOsr(osrPc));
AutoGeckoProfilerEntry pseudoFrame(cx, "Ion script compilation");
AutoGeckoProfilerEntry pseudoFrame(
cx, "Ion script compilation",
JS::ProfilingCategoryPair::JS_IonCompilation);
if (!script->hasBaselineScript()) {
return Method_Skipped;