Skip to content
New issue

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

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

Already on GitHub? # to your account

Initial exploration around JIT #240

Draft
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

@Eikix
Copy link
Member

Eikix commented Mar 10, 2025

Should we close this PR for now and come back later to it?
I can also convert it into a P2 issue

@enitrat enitrat marked this pull request as draft March 10, 2025 09:15
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
blocked Blocked by an external dependency
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants