Closed Bug 1773648 Opened 3 years ago Closed 3 years ago

Rewrite the profiler exit-frame-stub to use frame pointers

Categories

(Core :: JavaScript Engine: JIT, task, P3)

task

Tracking

()

RESOLVED FIXED
103 Branch
Tracking Status
firefox103 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(2 files)

JitRuntime::generateProfilerExitFrameTailStub can be greatly simplified now that we have frame pointers. This also gets us closer to removing the frame size from the frame descriptor.

The new implementation is also shared instead of mostly-duplicated for each platform:

12 files changed, 246 insertions(+), 2584 deletions(-)

This is required for the next patch, and gets us one step closer to having the caller's
frame pointer in every JIT frame.

This is a lot simpler and gets rid of another dependency on the frame descriptor's
frame size. Once the frame pointer is stored in the frame layout, this can be simplified
more because we still have to add FPOffset in a number of places.

A lot of complexity in the old version came from supporting rectifier frames. The
new approach is to "unwrap" the rectifier frame and then restart at the next frame.

This also de-duplicates the implementation.

Depends on D148895

Blocks: 1771085
No longer blocks: 1770366
Depends on: 1770366
Depends on: 1773480
Pushed by jdemooij@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e28d9c44359c part 1 - Add frame pointer to IonICCall frames. r=iain https://hg.mozilla.org/integration/autoland/rev/df60cd30dfe9 part 2 - Rewrite profiler exit-frame-stub to use frame pointers instead of frame descriptors. r=iain
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 103 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: