mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Revert "Finer-grained inline constant cache invalidation"
This reverts commits for [Feature #18589]: *8008fb7352
"Update formatting per feedback" *8f6eaca2e1
"Delete ID from constant cache table if it becomes empty on ISEQ free" *629908586b
"Finer-grained inline constant cache invalidation" MSWin builds on AppVeyor have been crashing since the merger.
This commit is contained in:
parent
7ee26740e4
commit
69967ee64e
Notes:
git
2022-03-25 20:29:29 +09:00
Merged: https://github.com/ruby/ruby/pull/5715 Merged-By: nobu <nobu@ruby-lang.org>
18 changed files with 82 additions and 466 deletions
13
insns.def
13
insns.def
|
@ -1028,23 +1028,12 @@ opt_getinlinecache
|
|||
(VALUE val)
|
||||
{
|
||||
struct iseq_inline_constant_cache_entry *ice = ic->entry;
|
||||
|
||||
// If there isn't an entry, then we're going to walk through the ISEQ
|
||||
// starting at this instruction until we get to the associated
|
||||
// opt_setinlinecache and associate this inline cache with every getconstant
|
||||
// listed in between. We're doing this here instead of when the instructions
|
||||
// are first compiled because it's possible to turn off inline caches and we
|
||||
// want this to work in either case.
|
||||
if (!ice) {
|
||||
vm_ic_compile(GET_CFP(), ic);
|
||||
}
|
||||
|
||||
if (ice && vm_ic_hit_p(ice, GET_EP())) {
|
||||
val = ice->value;
|
||||
JUMP(dst);
|
||||
}
|
||||
else {
|
||||
val = Qnil;
|
||||
val = Qnil;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue