-
Notifications
You must be signed in to change notification settings - Fork 5.2k
JIT: Streamline TreeLifeUpdater #80611
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: Streamline TreeLifeUpdater #80611
Conversation
TreeLifeUpdater at most needs to flip 4 bits in two liveness sets when it is called, however before this change it uses several full width bitset operations to do this. This changes TreeLifeUpdater to do its job in a much more direct way by updating the liveness sets directly.
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsTreeLifeUpdater at most needs to flip 4 bits in two liveness sets when it is called, however before this change it uses several full width bitset operations to do this. This changes TreeLifeUpdater to do its job in a much more direct way by updating the liveness sets directly.
|
| // TODO: Remove this condition which disallows marking | ||
| // some fields as dead even though they are dying when other | ||
| // fields are defined. |
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.
I will clean up these TODOs and unify some of these cases in #80501.
|
cc @dotnet/jit-contrib PTAL @BruceForstall No ASM diffs but around -1% throughput improvement on optimized collections. The review might not be that easy as much of the logic was reworked and restructured. The old logic was using several temporary bit sets ( Will run some stress jobs too. |
|
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress, runtime-coreclr gcstress0x3-gcstress0xc, runtime-coreclr jitstressregs |
|
Azure Pipelines successfully started running 4 pipeline(s). |
|
GC stress failures are unrelated and will be fixed by #80630. |
|
I can reproduce the libraries-jitstress failure on main too so it also seems to be unrelated. Will try to bisect it and open an issue. Edit: Opened #80632. |
|
Ping @BruceForstall |
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.
LGTM. Awesome TP improvement!
TreeLifeUpdater at most needs to flip 4 bits in two liveness sets when it is called, however before this change it uses several full width bitset operations to do this. This changes TreeLifeUpdater to do its job in a much more direct way by updating the liveness sets directly.
TreeLifeUpdater at most needs to flip 4 bits in two liveness sets when it is called, however before this change it uses several full width bitset operations to do this. This changes TreeLifeUpdater to do its job in a much more direct way by updating the liveness sets directly.