Skip to content
This repository has been archived by the owner on Jul 25, 2022. It is now read-only.

Proper On Stack Replacement #65

Open
mgaudet opened this issue Jan 20, 2017 · 0 comments
Open

Proper On Stack Replacement #65

mgaudet opened this issue Jan 20, 2017 · 0 comments

Comments

@mgaudet
Copy link

mgaudet commented Jan 20, 2017

Currently we manage JIT to Interperter transitions by restoring all interpreter state. We do this because JIT frames exist on the C-stack, along side interpreter frames, which is a problem when Ruby's exception handling story is implemented partially through setjmp and longjmp

To improve performance, it would be nice if the JIT only had to restore interpreter state when it absolutely had to. In order to do this, we need to implement proper on-stack replacement and connect it together with the exception handling system.

Before longjmping past a JIT frame, it needs to be given an opportunity to restore state it may have privatized, or we need to get the JIT frames off of the regular C call stack, and manage them ourselves.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant