[PATCH] D134557: [BranchRelaxation] Fall through only if block has no terminators
Anshil Gandhi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 23 11:37:10 PDT 2022
gandhi21299 added inline comments.
================
Comment at: llvm/lib/CodeGen/BranchRelaxation.cpp:485
MachineBasicBlock *PrevBB = &*std::prev(DestBB->getIterator());
- if (auto *FT = PrevBB->getFallThrough()) {
- assert(FT == DestBB);
- TII->insertUnconditionalBranch(*PrevBB, FT, DebugLoc());
- // Recalculate the block size.
- BlockInfo[PrevBB->getNumber()].Size = computeBlockSize(*PrevBB);
+ if (PrevBB->terminators().empty()) {
+ if (auto *FT = PrevBB->getFallThrough()) {
----------------
arsenm wrote:
> I'd expect for this to be covered by getFallThrough check for false. Did something weird happen with an unanalyzable branch?
We found a case where fixupUnconditionalBranch() appends a s_branch X to a block with terminators s_cbranch X, s_branch Y.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134557/new/
https://reviews.llvm.org/D134557
More information about the llvm-commits
mailing list