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

Initial exploration around JIT #240

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ClementWalter
Copy link
Member

@ClementWalter ClementWalter commented Dec 9, 2024

An initial standalone test for using JIT compilation of the EVM bytecode.

In this test, I've implemented few opcodes that I felt characteristic of the needs of the real EVM bytecodes, hopefully not missing any of the real difficulties with implementation of

  • PC opcode where it required to read from the return return fp - 3 to get the pointer to the beginning of the segment
  • JUMP like opcode where one skips the next n opcode
  • PUSH like opcode where one read value from the next opcodes and jump to the next opcode
  • RET like opcode where the execution halts
  • CALL like opcode where the opcode does jit internally to trigger a subcall and returns its value

Overall, I feel that with very few changes to the opcodes as they are, and a lot of simplification for the syscall and at the interpreter level, we can migrate to jit, which will also save steps (to be estimated) but at least all the input/output argument copying + control flow management

@ClementWalter ClementWalter added the blocked Blocked by an external dependency label Dec 10, 2024
@ClementWalter
Copy link
Member Author

blocked because this needs a fix in the cairo vm

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

Successfully merging this pull request may close these issues.

2 participants