summaryrefslogtreecommitdiff
path: root/yjit.h
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2021-03-24 18:07:26 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:33 -0400
commitb626dd7211b9d45f1dab6f82057445781f34f20f (patch)
tree76f107f1a2b79b4be590eea99aa98f97bd6eed14 /yjit.h
parente81d1f4ae31086c19b936bb8d0bf4650b0c36f44 (diff)
downloadruby-b626dd7211b9d45f1dab6f82057445781f34f20f.tar.gz
YJIT: Fancier opt_getinlinecache
Make sure `opt_getinlinecache` is in a block all on its own, and invalidate it from the interpreter when `opt_setinlinecache`. It will recompile with a filled cache the second time around. This lets YJIT runs well when the IC for constant is cold.
Diffstat (limited to 'yjit.h')
-rw-r--r--yjit.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/yjit.h b/yjit.h
index cfb25a529d..00ed486054 100644
--- a/yjit.h
+++ b/yjit.h
@@ -5,9 +5,7 @@
#ifndef YJIT_H
#define YJIT_H 1
-#include "stddef.h"
-#include "stdint.h"
-#include "stdbool.h"
+#include "vm_core.h"
#include "method.h"
#ifdef _WIN32
@@ -61,5 +59,6 @@ void rb_yjit_iseq_mark(const struct rb_iseq_constant_body *body);
void rb_yjit_iseq_update_references(const struct rb_iseq_constant_body *body);
void rb_yjit_iseq_free(const struct rb_iseq_constant_body *body);
void rb_yjit_before_ractor_spawn(void);
+void yjit_constant_ic_update(const rb_iseq_t *iseq, IC ic);
#endif // #ifndef YJIT_H