Skip to content

Commit 0434dfb

Browse files
committed
We don't need to check if the ci is markable anymore
It doesn't matter if CI's are stack allocated or not.
1 parent d3a7e55 commit 0434dfb

3 files changed

Lines changed: 5 additions & 22 deletions

File tree

vm_callinfo.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -240,21 +240,6 @@ vm_ci_new_runtime_(ID mid, unsigned int flag, unsigned int argc, const struct rb
240240

241241
#define VM_CALLINFO_NOT_UNDER_GC IMEMO_FL_USER0
242242

243-
static inline bool
244-
vm_ci_markable(const struct rb_callinfo *ci)
245-
{
246-
if (! ci) {
247-
return false; /* or true? This is Qfalse... */
248-
}
249-
else if (vm_ci_packed_p(ci)) {
250-
return true;
251-
}
252-
else {
253-
VM_ASSERT(IMEMO_TYPE_P(ci, imemo_callinfo));
254-
return ! FL_ANY_RAW((VALUE)ci, VM_CALLINFO_NOT_UNDER_GC);
255-
}
256-
}
257-
258243
#define VM_CI_ON_STACK(mid_, flags_, argc_, kwarg_) \
259244
(struct rb_callinfo) { \
260245
.flags = T_IMEMO | \

vm_insnhelper.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3036,7 +3036,6 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
30363036
{
30373037
const struct rb_callinfo *ci = calling->cd->ci;
30383038
const struct rb_callcache *cc = calling->cc;
3039-
bool cacheable_ci = vm_ci_markable(ci);
30403039

30413040
if (UNLIKELY(!ISEQ_BODY(iseq)->param.flags.use_block &&
30423041
calling->block_handler != VM_BLOCK_HANDLER_NONE &&
@@ -3057,7 +3056,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
30573056
VM_ASSERT(ci == calling->cd->ci);
30583057
VM_ASSERT(cc == calling->cc);
30593058

3060-
if (cacheable_ci && vm_call_iseq_optimizable_p(ci, cc)) {
3059+
if (vm_call_iseq_optimizable_p(ci, cc)) {
30613060
if ((iseq->body->builtin_attrs & BUILTIN_ATTR_SINGLE_NOARG_LEAF) &&
30623061
!(ruby_vm_event_flags & (RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN))) {
30633062
VM_ASSERT(iseq->body->builtin_attrs & BUILTIN_ATTR_LEAF);
@@ -3087,12 +3086,12 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
30873086
if (LIKELY(!(vm_ci_flag(ci) & VM_CALL_TAILCALL))) {
30883087
CC_SET_FASTPATH(cc, vm_call_iseq_setup_normal_opt_start,
30893088
!IS_ARGS_SPLAT(ci) && !IS_ARGS_KEYWORD(ci) &&
3090-
cacheable_ci && vm_call_cacheable(ci, cc));
3089+
vm_call_cacheable(ci, cc));
30913090
}
30923091
else {
30933092
CC_SET_FASTPATH(cc, vm_call_iseq_setup_tailcall_opt_start,
30943093
!IS_ARGS_SPLAT(ci) && !IS_ARGS_KEYWORD(ci) &&
3095-
cacheable_ci && vm_call_cacheable(ci, cc));
3094+
vm_call_cacheable(ci, cc));
30963095
}
30973096

30983097
/* initialize opt vars for self-references */
@@ -3120,7 +3119,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
31203119
args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals);
31213120

31223121
CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_kwarg,
3123-
cacheable_ci && vm_call_cacheable(ci, cc));
3122+
vm_call_cacheable(ci, cc));
31243123

31253124
return 0;
31263125
}
@@ -3133,7 +3132,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
31333132
if (klocals[kw_param->num] == INT2FIX(0)) {
31343133
/* copy from default_values */
31353134
CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_nokwarg,
3136-
cacheable_ci && vm_call_cacheable(ci, cc));
3135+
vm_call_cacheable(ci, cc));
31373136
}
31383137

31393138
return 0;

vm_method.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,6 @@ rb_vm_ci_lookup(ID mid, unsigned int flag, unsigned int argc, const struct rb_ca
427427
RB_VM_LOCK_LEAVE();
428428

429429
VM_ASSERT(ci);
430-
VM_ASSERT(vm_ci_markable(ci));
431430

432431
return ci;
433432
}

0 commit comments

Comments
 (0)