-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
JIT: Fix some cases using BasicBlock::bbFallsThrough
#97699
Conversation
`bbFallsThrough` still returns true for `BBJ_COND`; we have a couple of places using it as a "control flows from prev block" check, which is wrong after dotnet#97488.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue Details
|
else | ||
{ | ||
assertionsOut = pred->bbAssertionOut; | ||
} |
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.
Small drive-by fix for some UB here (in the useCondAssertions
case we were accessing an inactive union member).
Diff results for #97699Assembly diffsAssembly diffs for osx/arm64 ran on linux/x64Diffs are based on 2,270,861 contexts (932,669 MinOpts, 1,338,192 FullOpts). MISSED contexts: base: 1 (0.00%), diff: 9 (0.00%) Overall (+684 bytes)
FullOpts (+684 bytes)
Assembly diffs for windows/arm64 ran on linux/x64Diffs are based on 2,341,109 contexts (938,449 MinOpts, 1,402,660 FullOpts). MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%) Overall (+668 bytes)
FullOpts (+668 bytes)
Assembly diffs for windows/x64 ran on linux/x64Diffs are based on 2,512,204 contexts (997,391 MinOpts, 1,514,813 FullOpts). MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%) Overall (+630 bytes)
FullOpts (+630 bytes)
Details here Throughput diffsThroughput diffs for osx/arm64 ran on windows/x64Overall (-0.01% to +0.00%)
FullOpts (-0.01% to +0.00%)
Throughput diffs for windows/arm64 ran on windows/x64Overall (-0.01% to +0.00%)
FullOpts (-0.01% to +0.00%)
Throughput diffs for windows/x64 ran on windows/x64Overall (-0.01% to +0.00%)
FullOpts (-0.01% to +0.00%)
Details here |
Diff results for #97699Assembly diffsAssembly diffs for linux/arm ran on windows/x86Diffs are based on 2,239,391 contexts (829,328 MinOpts, 1,410,063 FullOpts). MISSED contexts: 71,273 (3.08%) Overall (+52 bytes)
FullOpts (+52 bytes)
Assembly diffs for windows/x86 ran on windows/x86Diffs are based on 2,293,495 contexts (839,658 MinOpts, 1,453,837 FullOpts). MISSED contexts: 1 (0.00%) Overall (+46 bytes)
FullOpts (+46 bytes)
Details here Assembly diffs for linux/arm64 ran on windows/x64Diffs are based on 2,507,310 contexts (1,007,092 MinOpts, 1,500,218 FullOpts). MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%) Overall (+584 bytes)
FullOpts (+584 bytes)
Assembly diffs for linux/x64 ran on windows/x64Diffs are based on 2,517,901 contexts (991,070 MinOpts, 1,526,831 FullOpts). MISSED contexts: base: 0 (0.00%), diff: 8 (0.00%) Overall (+567 bytes)
FullOpts (+567 bytes)
Details here Throughput diffsThroughput diffs for linux/arm64 ran on linux/x64Overall (-0.01% to -0.00%)
FullOpts (-0.01% to -0.00%)
Throughput diffs for linux/x64 ran on linux/x64Overall (-0.01% to -0.00%)
FullOpts (-0.01% to -0.00%)
Details here |
cc @dotnet/jit-contrib PTAL @amanasifkhalid Diffs. A few cases where we now recognize an induction due to |
Thanks for the fix!
My hope is that we can get rid of |
bbFallsThrough
still returns true forBBJ_COND
; we have a couple of places using it as a "control flows from prev block" check, which is wrong after #97488.Should fix the test failures I'm seeing over in #97182.