forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
JIT: Enable inlining for late devirtualization (dotnet#110827)
* Enable inlining for late devirt * Pass correct IL offset * Only creates RET_EXPR if the node is not top-level or not returning void * Do not try inlining if BBF_INTERNAL is set * Ensure the type matches * Set inliner context correctly * Address review feedbacks * Fix non inline candidate marking * Handle calls with retbuf * Handle BBF_INTERNAL * Get real type from local * Always set IL offset * Add comments * Oops * Use gtReturnType instead * Remove unused ilOffset * Use genActualType * Remove unnecessary spillTemp * Handle nested call correctly * Don't promote compCurStmt * Remove unused ilOffset * Handle BBF_INTERNAL * Use correct return type * Use bbInCatchHandlerBBRange and bbInFilterBBRange * Cleanup fncRetType * Add a runtime check to prevent accidental execution order change * Format jit * Revert some changes * Remove unused local * Check whether a call can be spilled without side effect * Get rid of BAD_VAR_NUM * Add comments for CanSpillCallWithoutSideEffect * Use ancestors to estimate whether a call can be spilled or not * Reset m_ancestors before walking * Nit * Fix assertion * Limit to GT_STORE_LCL_VAR only * Oops * Inline the check * Remove leftovers * Hoist the check * Make sure the store parent is the statement root Co-authored-by: Andy Ayers <andya@microsoft.com> * Format JIT * Check side effects before trying inlining * Fix * Nit * Make lvHasLdAddrOp check optional * Rename to early * Split effects if necessary * Use gtSplitTree * Teach gtSplitTree to support early use * Cleanup * ClearInlineInfo is not needed --------- Co-authored-by: Andy Ayers <andya@microsoft.com>
- Loading branch information
1 parent
21ab780
commit a9d67ec
Showing
4 changed files
with
102 additions
and
20 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