Closed
Bug 860239
Opened 12 years ago
Closed 12 years ago
IonMonkey: Handle OSR pc mismatches better
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: jandem, Assigned: jandem)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
4.43 KB,
patch
|
bhackett1024
:
review+
|
Details | Diff | Splinter Review |
If a script has multiple loops, and we Ion-compile a script with an OSR-entry block for one of them, we can no longer enter the script at another loop. This means we can be stuck in Baseline if we don't hit the first loop again.
The attached patch adds a counter to IonScript and increments it whenever this happens. If it reaches 6000 it invalidates the script. 6000 is pretty high, but lower values regress audio-fft from 70 to 77 ms, and I think this is fine for now to avoid the pathological cases: the patch improves the AWFY-assorted Emscripten misc-skinning benchmark from 6000 to ~500 ms, a 12x improvement.
Attachment #735704 -
Flags: review?(bhackett1024)
Comment 1•12 years ago
|
||
Comment on attachment 735704 [details] [diff] [review]
Patch
Review of attachment 735704 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/ion/IonCode.h
@@ +238,5 @@
>
> // Identifier of the compilation which produced this code.
> types::RecompileInfo recompileInfo_;
>
> + uint32_t osrPcMismatchCounter_;
This field should have a short comment.
Attachment #735704 -
Flags: review?(bhackett1024) → review+
Assignee | ||
Comment 2•12 years ago
|
||
Comment 3•12 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•