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
This commit is contained in:
Takashi Kokubun 2024-11-04 08:14:28 -08:00 committed by GitHub
parent 51ac93011a
commit 478e0fc710
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
Notes: git 2024-11-04 16:14:48 +00:00
Merged-By: maximecb <maximecb@ruby-lang.org>
21 changed files with 261 additions and 61 deletions

View file

@ -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