summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2016-08-14 02:10:12 +0000
committerDiana Picus <diana.picus@linaro.org>2016-08-14 02:10:12 +0000
commit35ccf53e753fab6b1b0221502cd4fcee1de6a2e9 (patch)
tree724cb648a0675ae9b6c16a0a1947a0eda6e9c596 /llvm
parent35459f0e348425d4f39515630ec2832442894c72 (diff)
downloadbcm5719-llvm-35ccf53e753fab6b1b0221502cd4fcee1de6a2e9.tar.gz
bcm5719-llvm-35ccf53e753fab6b1b0221502cd4fcee1de6a2e9.zip
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. llvm-svn: 278620
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/TailDuplicator.cpp10
-rw-r--r--llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll34
2 files changed, 0 insertions, 44 deletions
diff --git a/llvm/lib/CodeGen/TailDuplicator.cpp b/llvm/lib/CodeGen/TailDuplicator.cpp
index e9a5f14b04f..f3afbeb3a0e 100644
--- a/llvm/lib/CodeGen/TailDuplicator.cpp
+++ b/llvm/lib/CodeGen/TailDuplicator.cpp
@@ -525,16 +525,6 @@ bool TailDuplicator::shouldTailDuplicate(const MachineFunction &MF,
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
diff --git a/llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll b/llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll
deleted file mode 100644
index 93d47df70db..00000000000
--- a/llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll
+++ /dev/null
@@ -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 }
OpenPOWER on IntegriCloud