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
JIT: Enable inlining for late devirtualization (#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 <[email protected]>
* 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 <[email protected]>
0 commit comments