Closed
Bug 1643902
Opened 5 years ago
Closed 5 years ago
Functions created through CreateDynamicFunction no longer inlinable
Categories
(Core :: JavaScript Engine, defect, P1)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla79
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox76 | --- | unaffected |
firefox77 | --- | unaffected |
firefox78 | --- | unaffected |
firefox79 | --- | fixed |
People
(Reporter: anba, Assigned: tcampbell)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
Bug 1599634 regressed bug 958797 by removing the call to JSFunction::setTypeForScriptedFunction
. Calling JSFunction::setTypeForScriptedFunction
is required to ensure the function can be inlined.
Test case:
var F = Function("return 1");
function f() {
var r = 0;
var t = dateNow();
for (var i = 0; i < 100_000_000; ++i) {
r += F();
}
return [dateNow() - t, r];
}
for (var i = 0; i < 10; ++i) print(f());
Expected:
- Same performance as before bug 1599634 was applied.
Actual:
- Slower performance.
Assignee | ||
Updated•5 years ago
|
Assignee: nobody → tcampbell
Assignee | ||
Updated•5 years ago
|
Severity: -- → S3
status-firefox76:
--- → unaffected
status-firefox77:
--- → unaffected
status-firefox78:
--- → unaffected
status-firefox-esr68:
--- → unaffected
Priority: -- → P1
Assignee | ||
Comment 1•5 years ago
|
||
Fix recent regression when standalone functions started being allocated by
instantiateStencils. This adds an isStandalone
flag to the function box
that we can check in addition to wasEmitted
(which is not set for these
standalone functions).
Updated•5 years ago
|
Keywords: regression
Pushed by tcampbell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8a1c8747a43b
Call setTypeForScriptFunction for standalone functions. r=anba
Comment 3•5 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla79
Updated•5 years ago
|
Has Regression Range: --- → yes
You need to log in
before you can comment on or make changes to this bug.
Description
•