sisshiki1969 / monoruby

Ruby implementation with yet another JIT compiler.
Apache License 2.0
111 stars 4 forks source link

Optimize class guards for *self*. #17

Closed sisshiki1969 closed 1 year ago

sisshiki1969 commented 1 year ago

In both of method JIT and loop JIT, compiler assumes that self's class is a certain class. This allows to omit class guards for instance variable access and receiver check in function-like method call. Furthermore, when JIT'ed function is called by a JIT'ed function, we can remove self's class guards completely.