mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 815579: Increment usecount faster on MI to interpreter calls, r=dvander
This commit is contained in:
parent
37ee1aa8dd
commit
f90f1daf06
@ -150,6 +150,13 @@ struct IonOptions
|
|||||||
// stop running this function in IonMonkey. (default 512)
|
// stop running this function in IonMonkey. (default 512)
|
||||||
uint32 slowCallLimit;
|
uint32 slowCallLimit;
|
||||||
|
|
||||||
|
// When caller runs in IM, but callee not, we take a slow path to the interpreter.
|
||||||
|
// This has a significant overhead. In order to decrease the number of times this happens,
|
||||||
|
// the useCount gets incremented faster to compile this function in IM and use the fastpath.
|
||||||
|
//
|
||||||
|
// Default: 5
|
||||||
|
uint32 slowCallIncUseCount;
|
||||||
|
|
||||||
void setEagerCompilation() {
|
void setEagerCompilation() {
|
||||||
eagerCompilation = true;
|
eagerCompilation = true;
|
||||||
usesBeforeCompile = usesBeforeCompileNoJaeger = 0;
|
usesBeforeCompile = usesBeforeCompileNoJaeger = 0;
|
||||||
@ -183,7 +190,8 @@ struct IonOptions
|
|||||||
inlineMaxTotalBytecodeLength(800),
|
inlineMaxTotalBytecodeLength(800),
|
||||||
inlineUseCountRatio(128),
|
inlineUseCountRatio(128),
|
||||||
eagerCompilation(false),
|
eagerCompilation(false),
|
||||||
slowCallLimit(512)
|
slowCallLimit(512),
|
||||||
|
slowCallIncUseCount(5)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -67,6 +67,11 @@ InvokeFunction(JSContext *cx, JSFunction *fun, uint32 argc, Value *argv, Value *
|
|||||||
ForbidCompilation(cx, script);
|
ForbidCompilation(cx, script);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When caller runs in IM, but callee not, we take a slow path to the interpreter.
|
||||||
|
// This has a significant overhead. In order to decrease the number of times this happens,
|
||||||
|
// the useCount gets incremented faster to compile this function in IM and use the fastpath.
|
||||||
|
fun->nonLazyScript()->incUseCount(js_IonOptions.slowCallIncUseCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TI will return false for monitorReturnTypes, meaning there is no
|
// TI will return false for monitorReturnTypes, meaning there is no
|
||||||
|
Loading…
Reference in New Issue
Block a user