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:
Nobuyoshi Nakada 2022-03-25 20:29:09 +09:00 committed by GitHub
parent 7ee26740e4
commit 69967ee64e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

View file

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