Bug 768288: IonMonkey: Inline small functions with loops, r=djvj

This commit is contained in:
Hannes Verschore 2013-05-09 23:16:42 +02:00
parent f878b2e909
commit 2a8d186f9c
2 changed files with 7 additions and 1 deletions

View File

@ -3537,6 +3537,12 @@ IonBuilder::makeInliningDecision(JSFunction *target, CallInfo &callInfo)
targetScript->filename(), targetScript->lineno);
return false;
}
if (targetScript->analysis()->hasLoops()) {
IonSpew(IonSpew_Inlining, "%s:%d - Vetoed: big function that contains a loop",
targetScript->filename(), targetScript->lineno);
return false;
}
}
// Always inline the empty script up to the inlining depth.

View File

@ -65,7 +65,7 @@ ScriptAnalysis::addJump(JSContext *cx, unsigned offset,
if (offset < *currentOffset) {
/* Scripts containing loops are never inlined. */
isJaegerInlineable = isIonInlineable = false;
isJaegerInlineable = false;
hasLoops_ = true;
if (code->analyzed) {