Stop storing native code offset for each bytecode pc in BaselineScript
Categories
(Core :: JavaScript Engine: JIT, task, P2)
Tracking
()
People
(Reporter: jandem, Assigned: jandem)
References
Details
Attachments
(6 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
BaselineScript::nativeCodeForPC has the following consumers:
- Ion bailouts
- DebugModeOSR
- Exception handling
- OSR
- Profiler (also BaselineScript::approximatePcForNativeAddress)
I'm hoping we can change 1-3 to resume in the interpreter instead, once it's enabled by default (we would switch to Baseline JIT code at the next loop edge or call).
For 4 we only care about JSOP_LOOPENTRY ops. When the profiler is enabled we could choose to record more offsets but we wouldn't have to do this for every op - it would be more of a heuristic.
This should speed up BaselineCompiler a bit, use less memory, and simplify the code a bit (no need to handle and worry about unsynced stack values for example).
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Depends on D40944
Assignee | ||
Comment 3•5 years ago
|
||
Depends on D40945
Assignee | ||
Comment 4•5 years ago
|
||
Depends on D40946
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 5•5 years ago
|
||
Because DebugTrapEntries are only present if the script has debugger instrumentation
it should be fine to store this as a simple list of entries.
Depends on D40947
Assignee | ||
Comment 6•5 years ago
|
||
Depends on D40948
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/235c854c3233 part 1 - Use mozilla::Span<> in BaselineScript, clean up RetAddrEntry code a bit. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/77497544ca03 part 2 - Stop using pc-to-native map for OSR into Baseline JIT. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/941b29575f6a part 3 - Stop using pc-to-native map for BaselineScript::computeResumeNativeOffsets. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/703a39b468df part 4 - Stop using pc-to-native map for BaselineScript::approximatePcForNativeAddress. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/e481b4ed7784 part 5 - Stop using pc-to-native map for BaselineScript::toggleDebugTraps. r=tcampbell https://hg.mozilla.org/integration/autoland/rev/937e9c6da43c part 6 - Remove BaselineScript's pc-to-native map. r=tcampbell
Comment 8•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/235c854c3233
https://hg.mozilla.org/mozilla-central/rev/77497544ca03
https://hg.mozilla.org/mozilla-central/rev/941b29575f6a
https://hg.mozilla.org/mozilla-central/rev/703a39b468df
https://hg.mozilla.org/mozilla-central/rev/e481b4ed7784
https://hg.mozilla.org/mozilla-central/rev/937e9c6da43c
Updated•5 years ago
|
Description
•