diff options
author | Diana Picus <diana.picus@linaro.org> | 2016-08-14 02:10:12 +0000 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2016-08-14 02:10:12 +0000 |
commit | 35ccf53e753fab6b1b0221502cd4fcee1de6a2e9 (patch) | |
tree | 724cb648a0675ae9b6c16a0a1947a0eda6e9c596 /llvm | |
parent | 35459f0e348425d4f39515630ec2832442894c72 (diff) | |
download | bcm5719-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.cpp | 10 | ||||
-rw-r--r-- | llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll | 34 |
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 } |