diff options
| author | Stan Lo <stan.lo@shopify.com> | 2025-10-02 17:03:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-02 09:03:25 -0700 |
| commit | 2ed5a02fcca4da4acf4c8c3d7ee4c392fc18d948 (patch) | |
| tree | 834a2702d97afc92dcd2c905cace45cff46be5e2 /depend | |
| parent | 81f253577a77a934bfa02a33d80ca2a7c6af9a04 (diff) | |
ZJIT: Add `NoSingletonClass` patch point (#14680)
* ZJIT: Add NoSingletonClass patch point
This patch point makes sure that when the object has a singleton class,
the JIT code is invalidated. As of now, this is only needed for C call
optimization.
In YJIT, the singleton class guard only applies to Array, Hash, and String.
But in ZJIT, we may optimize C calls from gems (e.g. `sqlite3`). So the
patch point needs to be applied to a broader range of classes.
* ZJIT: Only generate NoSingletonClass guard when the type can have singleton class
* ZJIT: Update or forget NoSingletonClass patch point when needed
Diffstat (limited to 'depend')
| -rw-r--r-- | depend | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -1170,6 +1170,7 @@ class.$(OBJEXT): {$(VPATH)}vm_debug.h class.$(OBJEXT): {$(VPATH)}vm_opts.h class.$(OBJEXT): {$(VPATH)}vm_sync.h class.$(OBJEXT): {$(VPATH)}yjit.h +class.$(OBJEXT): {$(VPATH)}zjit.h compar.$(OBJEXT): $(hdrdir)/ruby/ruby.h compar.$(OBJEXT): $(hdrdir)/ruby/version.h compar.$(OBJEXT): $(top_srcdir)/internal/basic_operators.h |
