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

Start prototyping JIT compiler #52

Open
playXE opened this issue Jun 24, 2021 · 1 comment
Open

Start prototyping JIT compiler #52

playXE opened this issue Jun 24, 2021 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@playXE
Copy link
Collaborator

playXE commented Jun 24, 2021

Since Starlight aims to be a fast JS engine JIT compiler is necessary but there are still unresolved questions:

  • What JIT technique to use? Tracing JIT or Method JIT?
  • What backend to use? Cranelift vs LLVM vs MIR vs our own (probably rewrite WebKit's macro assembler)
  • How many tiers if we will use Method based compilation?
  • How to profile everything and how do we emit efficient code for method JITed code?
  • If we will use tracing JIT then how to record bytecode trace? Do we need an entire separate interpreter or we could just copy-paste the existing one?
@playXE playXE added enhancement New feature or request help wanted Extra attention is needed labels Jun 24, 2021
@playXE
Copy link
Collaborator Author

playXE commented Jul 7, 2021

I decided that Starlight will use a tiered method-based JIT compilation. There will be single-pass JIT compiler that simply emits unoptimized machine code and second tier will utilize all the profiling information to emit optimized code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant