summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2021-02-25 15:10:38 -0500
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:30 -0400
commit57977ba30d35f6f9de3d2802d1894e1f0d23286d (patch)
treee7f5eba7e70cd10566572072e5938652d459a01f /ractor.c
parentf93f3d6aa164ea5bc01e596c84b7c525c41bb852 (diff)
downloadruby-57977ba30d35f6f9de3d2802d1894e1f0d23286d.tar.gz
uJIT: Implement opt_getinlinecache
* ujit: implement opt_getinlinecache Aggressively bet that writes to constants don't happen and invalidate all opt_getinlinecache blocks on any and all constant writes. Use alignment padding on block_t to track this assumption. No change to sizeof(block_t). * Fix compile warnings when not RUBY_DEBUG * Fix reversed condition * Switch to st_table to keep track of assumptions Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com> Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ractor.c b/ractor.c
index bfc61f99fe..fa78d16411 100644
--- a/ractor.c
+++ b/ractor.c
@@ -16,6 +16,7 @@
#include "variable.h"
#include "gc.h"
#include "transient_heap.h"
+#include "ujit.h"
VALUE rb_cRactor;
@@ -1604,6 +1605,7 @@ ractor_create(rb_execution_context_t *ec, VALUE self, VALUE loc, VALUE name, VAL
r->verbose = cr->verbose;
r->debug = cr->debug;
+ rb_ujit_before_ractor_spawn();
rb_thread_create_ractor(r, args, block);
RB_GC_GUARD(rv);