Backed out changeset 1455629cb663 (bug 1384042) for regressing AngularJS perf.

--HG--
extra : rebase_source : e165fd16182dcf5a72133f7afb86069a60bfbec9
This commit is contained in:
Jan de Mooij 2017-07-27 16:36:57 +02:00
parent d7527a414d
commit ea5d324e74
2 changed files with 1 additions and 13 deletions

View File

@ -211,7 +211,6 @@ namespace JS {
_(CantInlineNativeNoTemplateObj) \
_(CantInlineBound) \
_(CantInlineNativeNoSpecialization) \
_(CantInlineNoObservedTypes) \
_(HasCommonInliningPath) \
\
_(GenericSuccess) \

View File

@ -419,22 +419,11 @@ IonBuilder::canInlineTarget(JSFunction* target, CallInfo& callInfo)
return DontInline(nullptr, "Empty TypeSet for argument");
}
}
// If we're going to add a TypeBarrier that always fails, it's not
// worth inlining this call as the script will be invalidated
// immediately.
if ((CodeSpec[*pc].format & JOF_TYPESET) &&
!BytecodeIsPopped(pc) &&
bytecodeTypes(pc)->empty())
{
trackOptimizationOutcome(TrackedOutcome::CantInlineNoObservedTypes);
return DontInline(nullptr, "Empty type barrier");
}
}
// Allow constructing lazy scripts when performing the definite properties
// analysis, as baseline has not been used to warm the caller up yet.
if (info().analysisMode() == Analysis_DefiniteProperties) {
if (target->isInterpreted() && info().analysisMode() == Analysis_DefiniteProperties) {
RootedFunction fun(analysisContext, target);
RootedScript script(analysisContext, JSFunction::getOrCreateScript(analysisContext, fun));
if (!script)