-
Notifications
You must be signed in to change notification settings - Fork 12.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
Disable jump threading UnOp::Not
for non-bool
#131201
Conversation
r? @wesleywiser rustbot has assigned @wesleywiser. Use |
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
I would not be surprised if jumpthreading has more type-based bugs, since we've already found two at this point. |
…piler-errors JumpThreading: fix bitwise not on non-booleans Fixes rust-lang#131195 Alternative to rust-lang#131201
This is a more conservative fix than #131203, which seems like it still has problems. |
a717327
to
f0bfba2
Compare
@bors r+ |
☀️ Test successful - checks-actions |
Finished benchmarking commit (11ee3a8): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (secondary -4.2%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (secondary 2.6%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 772.19s -> 772.334s (0.02%) |
Beta backport accepted as per compiler team on Zulip. A backport PR will be authored by the release team at the end of the current development cycle. Stable nomination is also accepted in principle but it's not really needed: the new stable should have this beta backport when the stable artifacts are built in 3 days. Therefore, I'll remove the stable nomination, as it's a no-op this late in the cycle. @rustbot label +beta-accepted -stable-nominated |
[beta] backports - Only add an automatic SONAME for Rust dylibs rust-lang#130960 - Reject leading unsafe in `cfg!(...)` and `--check-cfg` rust-lang#131057, resolving rust-lang#131055 - Disable jump threading `UnOp::Not` for non-bool rust-lang#131201 - Update LLVM submodule rust-lang#131448 r? ghost
[beta] backports - Only add an automatic SONAME for Rust dylibs rust-lang#130960 - Reject leading unsafe in `cfg!(...)` and `--check-cfg` rust-lang#131057, resolving rust-lang#131055 - Disable jump threading `UnOp::Not` for non-bool rust-lang#131201 - Update LLVM submodule rust-lang#131448 r? ghost
[beta] backports - Only add an automatic SONAME for Rust dylibs rust-lang#130960 - Reject leading unsafe in `cfg!(...)` and `--check-cfg` rust-lang#131057, resolving rust-lang#131055 - Disable jump threading `UnOp::Not` for non-bool rust-lang#131201 - Update LLVM submodule rust-lang#131448 r? ghost
[beta] backports - Only add an automatic SONAME for Rust dylibs rust-lang#130960 - Reject leading unsafe in `cfg!(...)` and `--check-cfg` rust-lang#131057, resolving rust-lang#131055 - Disable jump threading `UnOp::Not` for non-bool rust-lang#131201 - Update LLVM submodule rust-lang#131448 - Split x86_64-msvc-ext into two jobs rust-lang#130072 - Use a small runner for msvc-ext2 job rust-lang#130151 r? ghost
Fix #131195, where jumpthreading was optimizing
!a == b
intoa != b
for non-bool, where this is definitely not true.