Skip to content

feat: runtime representation of instructions #84

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

Merged
merged 36 commits into from
Feb 27, 2021

Conversation

malcolmstill
Copy link
Owner

@malcolmstill malcolmstill commented Feb 26, 2021

Purpose

Speed up execution by moving a bunch of work that is repeatedly performed during execution to the module loading stage

Description

  • Rather than just constantly reprocess the binary representation, provide a structure (a union) that we can parse the binary representation into once at module load.

Results

  • As example, with ReleaseSafe execution time for fib(39) is reduced from around 80 s to around 30 s (putting us roughly on par with python)

- Rather than just constantly reprocess the binary representation, provide
  a structure (actually a union) that we can parse the binary representation
  into once at module load. This will boost performance
…le_indices

- br_table is the one instruction of variable length
- I had left in a few instructions breaking the code
- That code parameter was used to calculate the continuations which
  is now down at decode time
- next returns RuntimeInstruction instead of ParseMeta
- we need this for generating a particular testsuite error (wrong
  number of br_table entries given, which actually ends up consuming
  some end 0x0b...it's not easy to differentiate this so let's just
  always check we can find the end of a function)
@malcolmstill malcolmstill merged commit 261ff81 into master Feb 27, 2021
@malcolmstill malcolmstill deleted the malcolm/optimisation-1-preprocess branch February 27, 2021 21:06
@malcolmstill malcolmstill mentioned this pull request Nov 14, 2021
8 tasks
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

Successfully merging this pull request may close these issues.

1 participant