[llvm] [InstCombine] Make backedge check in op of phi transform more precise (PR #106075)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 31 18:38:31 PDT 2024


================
@@ -5373,6 +5371,18 @@ bool InstCombinerImpl::prepareWorklist(Function &F) {
   return MadeIRChange;
 }
 
+void InstCombiner::computeBackEdges() {
+  // Collect backedges.
+  SmallPtrSet<BasicBlock *, 16> Visited;
+  for (BasicBlock *BB : RPOT) {
+    Visited.insert(BB);
+    for (BasicBlock *Succ : successors(BB))
+      if (Visited.contains(Succ))
+        BackEdges.insert({BB, Succ});
----------------
dtcxzyw wrote:

```suggestion
      if (Succ != BB && Visited.contains(Succ))
        BackEdges.insert({BB, Succ});
```
Can we avoid inserting trivial edges `BB->BB`?


https://github.com/llvm/llvm-project/pull/106075


More information about the llvm-commits mailing list