We have a number of instructions that are complicated and executed fairly rarely. For example MAP_KEYS, CHECK_EG_MATCH, CLEANUP_THROW.
These bulk out the interpreter, possibly slowing things down.
We should move code from these into helper functions, which can be called though a table from CALL_INTRINSIC instruction.
The CALL_INTRINSIC instruction also provides a means for contributors to add new functionality without a deep understanding of the compiler.
Candidates for moving into CALL_INTRINSIC are:
- SETUP_ANNOTATIONS
- LOAD_BUILD_CLASS
- MATCH_KEYS
- CHECK_EG_MATCH
- CLEANUP_THROW
Linked PRs