mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
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:
parent
51ac93011a
commit
478e0fc710
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
|
@ -3387,6 +3387,10 @@ pm_compile_builtin_attr(rb_iseq_t *iseq, const pm_scope_node_t *scope_node, cons
|
|||
else if (strcmp(RSTRING_PTR(string), "use_block") == 0) {
|
||||
iseq_set_use_block(iseq);
|
||||
}
|
||||
else if (strcmp(RSTRING_PTR(string), "c_trace") == 0) {
|
||||
// Let the iseq act like a C method in backtraces
|
||||
ISEQ_BODY(iseq)->builtin_attrs |= BUILTIN_ATTR_C_TRACE;
|
||||
}
|
||||
else {
|
||||
COMPILE_ERROR(iseq, node_location->line, "unknown argument to attr!: %s", RSTRING_PTR(string));
|
||||
return COMPILE_NG;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue