From 478e0fc710b8fefaa3bdb7cb41dda8716e29927a Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Mon, 4 Nov 2024 08:14:28 -0800 Subject: YJIT: Replace Array#each only when YJIT is enabled (#11955) * YJIT: Replace Array#each only when YJIT is enabled * Add comments about BUILTIN_ATTR_C_TRACE * Make Ruby Array#each available with --yjit as well * Fix all paths that expect a C location * Use method_basic_definition_p to detect patches * Copy a comment about C_TRACE flag to compilers * Rephrase a comment about add_yjit_hook * Give METHOD_ENTRY_BASIC flag to Array#each * Add --yjit-c-builtin option * Allow inconsistent source_location in test-spec * Refactor a check of BUILTIN_ATTR_C_TRACE * Set METHOD_ENTRY_BASIC without touching vm->running --- builtin.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'builtin.h') diff --git a/builtin.h b/builtin.h index f23c0a7dad..fd1c4c307f 100644 --- a/builtin.h +++ b/builtin.h @@ -106,6 +106,12 @@ rb_vm_lvar(rb_execution_context_t *ec, int index) #endif } +static inline VALUE +rb_builtin_basic_definition_p(rb_execution_context_t *ec, VALUE klass, VALUE id_sym) +{ + return rb_method_basic_definition_p(klass, rb_sym2id(id_sym)) ? Qtrue : Qfalse; +} + #define LOCAL_PTR(local) local ## __ptr // dump/load -- cgit v1.2.3