[PATCH] D67306: [IfConversion] Correctly handle cases where analyzeBranch fails.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 9 11:28:27 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL371434: [IfConversion] Correctly handle cases where analyzeBranch fails. (authored by efriedma, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D67306?vs=219195&id=219400#toc

Repository:
  rL LLVM

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

https://reviews.llvm.org/D67306

Files:
  llvm/trunk/lib/CodeGen/IfConversion.cpp
  llvm/trunk/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir


Index: llvm/trunk/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir
===================================================================
--- llvm/trunk/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir
+++ llvm/trunk/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir
@@ -1,4 +1,4 @@
-# RUN: llc %s -o - -run-pass=if-converter | FileCheck %s
+# RUN: llc %s -o - -run-pass=if-converter -verify-machineinstrs | FileCheck %s
 # Make sure we correctly if-convert blocks containing an INLINEASM_BR.
 # CHECK: t2CMPri killed renamable $r2, 34
 # CHECK-NEXT: $r0 = t2MOVi 2, 1, $cpsr, $noreg
@@ -48,9 +48,8 @@
     t2B %bb.3, 14, $noreg
   
   bb.3:
-    successors: %bb.4(0x80000000)
-  
     INLINEASM &"", 1
+    $sp = t2LDMIA_RET $sp, 14, $noreg, def $r4, def $pc
   
   bb.4.l_yes (address-taken):
     $sp = t2LDMIA_RET $sp, 14, $noreg, def $r4, def $pc
Index: llvm/trunk/lib/CodeGen/IfConversion.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/IfConversion.cpp
+++ llvm/trunk/lib/CodeGen/IfConversion.cpp
@@ -912,6 +912,12 @@
   BBI.BrCond.clear();
   BBI.IsBrAnalyzable =
       !TII->analyzeBranch(*BBI.BB, BBI.TrueBB, BBI.FalseBB, BBI.BrCond);
+  if (!BBI.IsBrAnalyzable) {
+    BBI.TrueBB = nullptr;
+    BBI.FalseBB = nullptr;
+    BBI.BrCond.clear();
+  }
+
   SmallVector<MachineOperand, 4> RevCond(BBI.BrCond.begin(), BBI.BrCond.end());
   BBI.IsBrReversible = (RevCond.size() == 0) ||
       !TII->reverseBranchCondition(RevCond);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67306.219400.patch
Type: text/x-patch
Size: 1504 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190909/7a5bb2fc/attachment.bin>


More information about the llvm-commits mailing list