summaryrefslogtreecommitdiff
path: root/yjit.c
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2021-11-25 11:56:58 -0800
committerGitHub <noreply@github.com>2021-11-25 11:56:58 -0800
commitde9a1e4a9654ea305f11ce8602ee32f394e44338 (patch)
tree0cb841ee3da562313f773287ba9536775d1c6acb /yjit.c
parente469ebd7d35bbb190395378c37f1f1051d243948 (diff)
YJIT: Implement new struct accessors (#5161)
* YJIT: Implement optimized_method_struct_aref * YJIT: Implement struct_aref without method call Struct member reads can be compiled directly into a memory read (with either one or two levels of indirection). * YJIT: Implement optimized struct aset * YJIT: Update tests for struct access * YJIT: Add counters for remaining optimized methods * Check for INT32_MAX overflow It only takes a struct with 0x7fffffff/8+1 members. Also add some cheap compile time checks. * Add tests for non-embedded struct aref/aset Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Notes
Notes: Merged-By: jhawthorn <john@hawthorn.email>
Diffstat (limited to 'yjit.c')
-rw-r--r--yjit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/yjit.c b/yjit.c
index cef7492e34..33517ca36d 100644
--- a/yjit.c
+++ b/yjit.c
@@ -69,6 +69,9 @@ YJIT_DECLARE_COUNTERS(
send_zsuper_method,
send_undef_method,
send_optimized_method,
+ send_optimized_method_send,
+ send_optimized_method_call,
+ send_optimized_method_block_call,
send_missing_method,
send_bmethod,
send_refined_method,