You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d042d9b
Browse filesBrowse the repository at this point in the historyBrowse files
https://bugs.webkit.org/show_bug.cgi?id=309568
rdar://172190152
Reviewed by Yusuke Suzuki.
Split the monolithic PropertyInlineCache class into a base class with two subclasses:
HandlerPropertyInlineCache (used by Baseline JIT and DFG) and RepatchingPropertyInlineCache
(used by FTL and 32-bit DFG). The useHandlerIC boolean field is replaced by a
PropertyInlineCacheType enum and WTF type trait infrastructure, enabling dynamicDowncast<>
and is<> checks throughout. Mode-specific fields — m_slowOperation and m_inlinedHandler for
handler ICs; startLocation, m_slowPathCallLocation, m_stub, and inlineCodeSize() for
repatching ICs — are moved to the appropriate subclass.
DFG::CommonData now holds two separate Bags (m_handlerPropertyInlineCaches and
m_repatchingPropertyInlineCaches) instead of a single m_propertyInlineCaches bag, and
FTL::State::addPropertyInlineCache() selects which bag to use based on the
useHandlerICInFTL option.
I also added a FIXME to move the various regs (m_baseGPR, m_extraGPR, etc) to
RepatchingPropertyInlineCache and have HandlerPropertyInlineCache use fixed
values. This is slightly non-trivial because the different AccessTypes use
different registers for each of the values.
Canonical link: https://commits.webkit.org/309143@main
0 commit comments