-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
JIT: profile updates for return merges and tail calls (#48773)
Stop trying to update the common return block profile data during return merging, as it is not yet known which return blocks will become tail calls. Start updating constant return block profile data during return merging as this is when we transform the flow. Update the common return block profile data during return merging in morph (adding more counts) and when creating tail calls (removing counts). Update profile consistency checker to handle switches properly and to use tolerant compares. Add extra dumping when solving for edge weights or adjusting flow edge weights to help track down where errors are coming from. Add new FMT_WT formatting string for profile weights, and start using it in fgprofile. Use %g so we don't see huge digit strings. Handle constant return merges too. Also fix dump output from `setEdgeWeights` and pass in the destination of the edge. Refactor `setBBProfileWeight` to also handle setting/clearing rarely run.
- Loading branch information
1 parent
c759d0e
commit cb606ad
Showing
8 changed files
with
313 additions
and
145 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
Oops, something went wrong.