[llvm] AMDGPU: fix isSafeToSink expecting exactly one predecessor (PR #89224)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 18 05:42:18 PDT 2024
================
@@ -217,10 +217,20 @@ bool SIInstrInfo::isSafeToSink(MachineInstr &MI,
SmallVector<MachineBasicBlock *, 1> ExitBlocks;
FromCycle->getExitBlocks(ExitBlocks);
assert(ExitBlocks.size() == 1);
- assert(ExitBlocks[0]->getSinglePredecessor());
-
+ // After structurize-cfg, cycle exit block should have exactly one
----------------
jayfoad wrote:
Isn't it simpler to write this code so that it makes no assumptions about structurized CFGs? E.g.
```c++
FromCycle->getExitBlocks(ExitBlocks);
for (ExitBlock : ExitBlocks)
for (Pred : ExitBlock->predecessors())
if (FromCycle->contains(Pred) && hasDivergentBranch(Pred))
return false;
```
https://github.com/llvm/llvm-project/pull/89224
More information about the llvm-commits
mailing list