Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Log return value types under the caller's log ID
This means that we still log them if returning from specialized to unspecialized code. Since it's an unspecialized caller that needs the information, this makes a lot more sense. There are situations where a callee called from many places is specialized before various of its callers are. In the worst case (which has been observed happening in real code) the caller has just one or two return type samples logged, but these are poor examples of the overall type trend. Thus the guards inserted based on the incomplete statistics may end up failing most of the time, causing a huge number of deoptimizations. Delightfully, this fix turns out to be a code simplification too, with the popping of the simulation stack frame being naturally handled as part of resoliving the correlation ID of the caller frame.
- Loading branch information
Showing
4 changed files
with
17 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters