-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JIT: Enable inlining for late devirtualization #110827
Merged
Merged
Changes from 57 commits
Commits
Show all changes
61 commits
Select commit
Hold shift + click to select a range
686f64e
Enable inlining for late devirt
hez2010 27cc1ce
Pass correct IL offset
hez2010 21a5adb
Only creates RET_EXPR if the node is not top-level or not returning void
hez2010 d1d5181
Do not try inlining if BBF_INTERNAL is set
hez2010 cd9f817
Ensure the type matches
hez2010 aad3d7e
Set inliner context correctly
hez2010 3f5204b
Merge branch 'main' into inline-exact-devirt
hez2010 3b5b446
Address review feedbacks
hez2010 27bc0aa
Fix non inline candidate marking
hez2010 dbf204a
Handle calls with retbuf
hez2010 f6d38c4
Handle BBF_INTERNAL
hez2010 10de97b
Get real type from local
hez2010 472e140
Always set IL offset
hez2010 20b1a94
Add comments
hez2010 5c9c927
Oops
hez2010 97326e2
Use gtReturnType instead
hez2010 096ab2a
Remove unused ilOffset
hez2010 095a981
Use genActualType
hez2010 614618a
Merge branch 'main' into inline-exact-devirt
hez2010 5951462
Remove unnecessary spillTemp
hez2010 03c0df5
Handle nested call correctly
hez2010 0042519
Don't promote compCurStmt
hez2010 b35d1ba
Merge branch 'main' into inline-exact-devirt
hez2010 0e13553
Remove unused ilOffset
hez2010 edfa2ac
Handle BBF_INTERNAL
hez2010 d40d7e1
Use correct return type
hez2010 e540cac
Use bbInCatchHandlerBBRange and bbInFilterBBRange
hez2010 036010c
Cleanup fncRetType
hez2010 121242e
Add a runtime check to prevent accidental execution order change
hez2010 0b7ada3
Merge remote-tracking branch 'hez2010/inline-exact-devirt-prelim' int…
hez2010 8447a71
Format jit
hez2010 0a0e11c
Revert some changes
hez2010 e03fda2
Merge branch 'main' into inline-exact-devirt
hez2010 4507692
Remove unused local
hez2010 8fe9716
Check whether a call can be spilled without side effect
hez2010 778edcd
Get rid of BAD_VAR_NUM
hez2010 85cd617
Add comments for CanSpillCallWithoutSideEffect
hez2010 38cff9f
Use ancestors to estimate whether a call can be spilled or not
hez2010 67a7b54
Reset m_ancestors before walking
hez2010 ff1576c
Nit
hez2010 9d3befe
Fix assertion
hez2010 dbf7c21
Limit to GT_STORE_LCL_VAR only
hez2010 bda1438
Oops
hez2010 6d21975
Inline the check
hez2010 05492fa
Remove leftovers
hez2010 7164fc3
Hoist the check
hez2010 0415063
Make sure the store parent is the statement root
hez2010 1eb0422
Format JIT
hez2010 9d72f3a
Check side effects before trying inlining
hez2010 1e0b2d1
Fix
hez2010 a90b6de
Nit
hez2010 0378aab
Merge branch 'main' into inline-exact-devirt
hez2010 c7e041a
Merge branch 'main' into inline-exact-devirt
hez2010 0457417
Make lvHasLdAddrOp check optional
hez2010 b27a25a
Rename to early
hez2010 6c0e11b
Split effects if necessary
hez2010 5de54f8
Use gtSplitTree
hez2010 1e967c8
Teach gtSplitTree to support early use
hez2010 10cd910
Cleanup
hez2010 067064f
ClearInlineInfo is not needed
hez2010 6e067ce
Merge branch 'main' into inline-exact-devirt
hez2010 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gtSplitTree
needs to learn that it has to splitlvHasLdAddrOp
locals when it runs early.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.