[llvm] r278620 - Revert "Codegen: Don't tail-duplicate blocks with un-analyzable fallthrough."

Diana Picus via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 13 19:10:12 PDT 2016


Author: rovka
Date: Sat Aug 13 21:10:12 2016
New Revision: 278620

URL: http://llvm.org/viewvc/llvm-project?rev=278620&view=rev
Log:
Revert "Codegen: Don't tail-duplicate blocks with un-analyzable fallthrough."

This reverts commit r278288.

r278287 broke the clang-cmake-thumbv7-a15-full-sh bot.
Revert this so we can get to r278287.

Removed:
    llvm/trunk/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll
Modified:
    llvm/trunk/lib/CodeGen/TailDuplicator.cpp

Modified: llvm/trunk/lib/CodeGen/TailDuplicator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TailDuplicator.cpp?rev=278620&r1=278619&r2=278620&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/TailDuplicator.cpp (original)
+++ llvm/trunk/lib/CodeGen/TailDuplicator.cpp Sat Aug 13 21:10:12 2016
@@ -525,16 +525,6 @@ bool TailDuplicator::shouldTailDuplicate
   else
     MaxDuplicateCount = TailDuplicateSize;
 
-  // If the block to be duplicated ends in an unanalyzable fallthrough, don't
-  // duplicate it.
-  // A similar check is necessary in MachineBlockPlacement to make sure pairs of
-  // blocks with unanalyzable fallthrough get layed out contiguously.
-  MachineBasicBlock *PredTBB = nullptr, *PredFBB = nullptr;
-  SmallVector<MachineOperand, 4> PredCond;
-  if (TII->analyzeBranch(TailBB, PredTBB, PredFBB, PredCond, true)
-      && TailBB.canFallThrough())
-    return false;
-
   // If the target has hardware branch prediction that can handle indirect
   // branches, duplicating them can often make them predictable when there
   // are common paths through the code.  The limit needs to be high enough

Removed: llvm/trunk/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll?rev=278619&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll (removed)
@@ -1,34 +0,0 @@
-; RUN: llc -O2 < %s | FileCheck %s
-target datalayout = "e-m:e-i64:64-n32:64"
-target triple = "powerpc64le-unknown-linux-gnu"
-
-; Check that the conditional return block of fmax_double3.exit was not
-; duplicated into the if.then.i block
-; CHECK: # %if.then.i
-; CHECK: lxvd2x
-; CHECK: stxvd2x
-; CHECK-NOT: bclr
-; CHECK: {{^}}.LBB{{[0-9_]+}}:
-; CHECK-SAME: # %fmax_double3.exit
-; CHECK: bclr
-; CHECK: # %if.then
-; Function Attrs: nounwind
-define void @__fmax_double3_3D_exec(<2 x double>* %input6, i1 %bool1, i1 %bool2) #0 {
-entry:
-  br i1 %bool1, label %if.then.i, label %fmax_double3.exit
-
-if.then.i:                                        ; preds = %entry
-  store <2 x double> zeroinitializer, <2 x double>* %input6, align 32
-  br label %fmax_double3.exit
-
-fmax_double3.exit:                                ; preds = %if.then.i, %entry
-  br i1 %bool2, label %if.then, label %do.end
-
-if.then:                                          ; preds = %fmax_double3.exit
-  unreachable
-
-do.end:                                           ; preds = %fmax_double3.exit
-  ret void
-}
-
-attributes #0 = { nounwind }




More information about the llvm-commits mailing list