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
Summary:
Currently deopt patchers are all owned by the Runtime singleton. They are
stored in a single vector structure. They're technically all TypeDeoptPatchers
underneath today. The way they get accessed is that when a type is modified,
the Runtime singleton checks a Map[Type, Vector[TypeDeoptPatcher*]] structure
and then patches the respective patchers depending on the type.
This means that all deopt patchers live as long as the Runtime does. There is
no deallocation path for individual patchers today.
Move the deopt patchers onto CompiledFunction objects, keeping them on the HIR
function during compilation. This will allow them to be destroyed when
individual functions are destroyed, and it gives us a way to traverse all
patchers for an individual function. It also allows us to prune unreachable /
unused patchers after codegen is complete.
Reviewed By: mpage
Differential Revision: D83502081
fbshipit-source-id: 68dece60649241c26f2ea48035d7b3a4f7568c6f
0 commit comments