-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Start block is not allowed to have basic block predecessors #88968
Conversation
r? @davidtwco (rust-highfive has picked a reviewer for you, use r? to override) |
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!
@bors r+ |
📌 Commit a923975d2cf29c8a73da2334e35f12338367cd9a has been approved by |
@bors rollup=never -- codegen/MIR changes, may be perf sensitive |
⌛ Testing commit a923975d2cf29c8a73da2334e35f12338367cd9a with merge 453ff06ca7e1d2f4764f6e383cdea63bd24a3f46... |
This comment has been minimized.
This comment has been minimized.
💔 Test failed - checks-actions |
If any block on a goto chain has more than one predecessor, then the new start block would have basic block predecessors. Skip the transformation for the start block altogether, to avoid violating the new invariant that the start block does not have any basic block predecessors.
The start block is guaranteed not to have any basic block predecessors.
a923975
to
f1f1c8f
Compare
Rebased and reblessed mir opt coverage tests. |
@bors r=davidtwco |
📌 Commit f1f1c8f has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (10967a1): comparison url. Summary: This benchmark run did not return any relevant changes. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
The motivation behind the change is to align with analogous requirement in LLVM, and to avoid potential latent bugs like the one reported in #88043.