Fix deinitFrame on deopt
Our convention is that on deopt, the callee is responsible for calling deinitFrame(). This is tricky, since for OSR our convention is the opposite, that the caller calls deinitFrame(). This means that if we OSR and then deopt(), the top and bottom frames both think they should call deinitFrame() (since one is the caller of an OSR and the other is the callee of a deopt). This commit fixes + extends the "disable deinitFrame for this frame" approach we kind of had. For performance, deinitFrame() stays the same, but any site that might have its deinitFrame disabled (namely, in the interpreter), it should call deinitFrameMaybe() instead.
Showing
Please register or sign in to comment