Actions
Feature #16282
openAdd "call data" wrapper IMEMO object so inline cache can be updated
Status:
Open
Assignee:
-
Target version:
-
Description
Hi,
Currently the compactor will invalidate all inline caches. I would like to update references in inline caches so we don't have to invalidate. Most inline caches are reachable from instruction sequences, but one cache is not:
https://github.com/ruby/ruby/blob/6147fa82a923e7318f493857023006801ed25eb5/internal.h#L2395
This static variable can't be reached from the GC. I'd like to introduce a new IMEMO object that wraps this cache, then the GC can reach the cache and update the value.
I've attached a patch that implements the new IMEMO object, and also removes the restriction on GCC so that all compilers get the cache hit.
Does this seem OK shyouhei, ko1?
Files
Actions
Like0
Like0Like0Like0Like0Like0