Start block is not allowed to have basic block predecessors#88968
Start block is not allowed to have basic block predecessors#88968bors merged 4 commits intorust-lang:masterfrom
Conversation
|
r? @davidtwco (rust-highfive has picked a reviewer for you, use r? to override) |
|
@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.