Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing the speculative execution extension for brilirs #126

Open
Pat-Lafon opened this issue Feb 5, 2021 · 1 comment
Open

Implementing the speculative execution extension for brilirs #126

Pat-Lafon opened this issue Feb 5, 2021 · 1 comment

Comments

@Pat-Lafon
Copy link
Contributor

The current feature difference between the reference interpreter, brili, and its Rust counter-part brilirs is that brilirs does not implement the speculative execution extension. The implementation semantics can probably be borrowed from brili and converted to rust. However, brilir uses iterators along basic block sequences instead of random access of the entire function which is more performant but may be an issue when trying to commit, and then return to an instruction part of the way through a code block. Use of the speculation extension is rare, so it would be nice to do this with a limited performance penalty on the longer running benchmarks.

@sampsyo
Copy link
Owner

sampsyo commented Feb 5, 2021

Cool. FWIW, that might be OK… the speculation extension is very squirrelly and wasn't really designed to admit an efficient implementation. 😃 The mere fact that one needs to snapshot the entire state of the world stops it from being all that amenable to fast execution. So it wouldn't be terrible to leave this in the domain of the silly/slow TS interpreter.

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

No branches or pull requests

2 participants