[PATCH] D83562: [fix-irreducible] Skip unreachable predecessors.

Michael Liao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 11 07:10:12 PDT 2020


This revision was automatically updated to reflect the committed changes.
Closed by commit rG0b4cf802fad4: [fix-irreducible] Skip unreachable predecessors. (authored by hliao).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83562/new/

https://reviews.llvm.org/D83562

Files:
  llvm/lib/Transforms/Utils/FixIrreducible.cpp
  llvm/test/Transforms/FixIrreducible/unreachable.ll


Index: llvm/test/Transforms/FixIrreducible/unreachable.ll
===================================================================
--- /dev/null
+++ llvm/test/Transforms/FixIrreducible/unreachable.ll
@@ -0,0 +1,24 @@
+; RUN: opt %s -fix-irreducible -S -o - | FileCheck %s
+
+; CHECK-LABEL: @unreachable(
+; CHECK: entry:
+; CHECK-NOT: irr.guard:
+define void @unreachable(i32 %n) {
+entry:
+  br label %loop.body
+
+loop.body:
+  br label %inner.block
+
+unreachable.block:
+  br label %inner.block
+
+inner.block:
+  br i1 undef, label %loop.exit, label %loop.latch
+
+loop.latch:
+  br label %loop.body
+
+loop.exit:
+  ret void
+}
Index: llvm/lib/Transforms/Utils/FixIrreducible.cpp
===================================================================
--- llvm/lib/Transforms/Utils/FixIrreducible.cpp
+++ llvm/lib/Transforms/Utils/FixIrreducible.cpp
@@ -281,6 +281,9 @@
     LLVM_DEBUG(dbgs() << "Found headers:");
     for (auto BB : reverse(Blocks)) {
       for (const auto P : predecessors(BB)) {
+        // Skip unreachable predecessors.
+        if (!DT.isReachableFromEntry(P))
+          continue;
         if (!Blocks.count(P)) {
           LLVM_DEBUG(dbgs() << " " << BB->getName());
           Headers.insert(BB);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83562.277238.patch
Type: text/x-patch
Size: 1223 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200711/28850349/attachment.bin>


More information about the llvm-commits mailing list