-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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: Remove fall-through predecessor checks in redundant branch opts #97724
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsPart of #93020. As we remove the concept of implicit fall-through from the JIT, the redundant branch opts pass shouldn't make assumptions about which predecessors of a block will fall through. This change removes
|
Closing in favor of #97722. |
Diff results for #97724Assembly diffsAssembly diffs for linux/arm64 ran on windows/x64Diffs are based on 2,507,302 contexts (1,007,092 MinOpts, 1,500,210 FullOpts). MISSED contexts: base: 8 (0.00%), diff: 16 (0.00%) Overall (-16,436 bytes)
FullOpts (-16,436 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: 8 (0.00%) Overall (-18,892 bytes)
FullOpts (-18,892 bytes)
Assembly diffs for osx/arm64 ran on windows/x64Diffs are based on 2,270,837 contexts (932,669 MinOpts, 1,338,168 FullOpts). MISSED contexts: base: 9 (0.00%), diff: 33 (0.00%) Overall (-13,952 bytes)
FullOpts (-13,952 bytes)
Assembly diffs for windows/arm64 ran on windows/x64Diffs are based on 2,341,104 contexts (938,449 MinOpts, 1,402,655 FullOpts). MISSED contexts: base: 8 (0.00%), diff: 13 (0.00%) Overall (-14,220 bytes)
FullOpts (-14,220 bytes)
Details here Throughput diffsThroughput diffs for linux/arm64 ran on windows/x64Overall (-0.00% to +0.02%)
FullOpts (-0.00% to +0.02%)
Throughput diffs for linux/x64 ran on windows/x64Overall (-0.00% to +0.02%)
FullOpts (-0.01% to +0.02%)
Throughput diffs for osx/arm64 ran on windows/x64FullOpts (-0.00% to +0.01%)
Throughput diffs for windows/arm64 ran on windows/x64Overall (-0.01% to +0.02%)
MinOpts (-0.00% to +0.01%)
FullOpts (-0.01% to +0.02%)
Throughput diffs for windows/x64 ran on windows/x64Overall (-0.01% to +0.03%)
FullOpts (-0.01% to +0.03%)
Details here Throughput diffs for windows/x86 ran on windows/x86Overall (-0.01% to +0.00%)
FullOpts (-0.01% to +0.00%)
Details here Throughput diffs for linux/arm64 ran on linux/x64Overall (-0.00% to +0.02%)
FullOpts (-0.00% to +0.02%)
Throughput diffs for linux/x64 ran on linux/x64Overall (-0.01% to +0.02%)
FullOpts (-0.01% to +0.02%)
Details here |
Diff results for #97724Assembly diffsAssembly diffs for linux/arm ran on windows/x86Diffs are based on 2,239,382 contexts (829,328 MinOpts, 1,410,054 FullOpts). MISSED contexts: base: 71,273 (3.08%), diff: 71,282 (3.08%) Overall (-12,784 bytes)
FullOpts (-12,784 bytes)
Assembly diffs for windows/x86 ran on windows/x86Diffs are based on 2,293,439 contexts (839,658 MinOpts, 1,453,781 FullOpts). MISSED contexts: base: 1 (0.00%), diff: 57 (0.00%) Overall (-5,227 bytes)
FullOpts (-5,227 bytes)
Details here |
Part of #93020. As we remove the concept of implicit fall-through from the JIT, the redundant branch opts pass shouldn't make assumptions about which predecessors of a block will fall through. This change removes
JumpThreadInfo::m_fallThroughPred
and the ensuing logic based on its presence.