mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
Revert r306528
llvm-svn: 306536
This commit is contained in:
parent
e625c2bd27
commit
0692657b75
@ -54,6 +54,12 @@ const unsigned MaxDepth = 6;
|
||||
static cl::opt<unsigned> DomConditionsMaxUses("dom-conditions-max-uses",
|
||||
cl::Hidden, cl::init(20));
|
||||
|
||||
// This optimization is known to cause performance regressions is some cases,
|
||||
// keep it under a temporary flag for now.
|
||||
static cl::opt<bool>
|
||||
DontImproveNonNegativePhiBits("dont-improve-non-negative-phi-bits",
|
||||
cl::Hidden, cl::init(true));
|
||||
|
||||
/// Returns the bitwidth of the given scalar or pointer type. For vector types,
|
||||
/// returns the element type's bitwidth.
|
||||
static unsigned getBitWidth(Type *Ty, const DataLayout &DL) {
|
||||
@ -1292,6 +1298,9 @@ static void computeKnownBitsFromOperator(const Operator *I, KnownBits &Known,
|
||||
Known.Zero.setLowBits(std::min(Known2.countMinTrailingZeros(),
|
||||
Known3.countMinTrailingZeros()));
|
||||
|
||||
if (DontImproveNonNegativePhiBits)
|
||||
break;
|
||||
|
||||
auto *OverflowOp = dyn_cast<OverflowingBinaryOperator>(LU);
|
||||
if (OverflowOp && OverflowOp->hasNoSignedWrap()) {
|
||||
// If initial value of recurrence is nonnegative, and we are adding
|
||||
|
@ -1,7 +1,7 @@
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
; RUN: opt < %s -bb-vectorize -bb-vectorize-req-chain-depth=3 -bb-vectorize-ignore-target-info -instcombine -gvn -S | FileCheck %s
|
||||
; RUN: opt < %s -basicaa -loop-unroll -unroll-threshold=45 -unroll-partial-threshold=45 -unroll-allow-partial -bb-vectorize -bb-vectorize-req-chain-depth=3 -bb-vectorize-ignore-target-info -instcombine -gvn -S | FileCheck %s -check-prefix=CHECK-UNRL
|
||||
; RUN: opt < %s -dont-improve-non-negative-phi-bits=false -basicaa -loop-unroll -unroll-threshold=45 -unroll-partial-threshold=45 -unroll-allow-partial -bb-vectorize -bb-vectorize-req-chain-depth=3 -bb-vectorize-ignore-target-info -instcombine -gvn -S | FileCheck %s -check-prefix=CHECK-UNRL
|
||||
; The second check covers the use of alias analysis (with loop unrolling).
|
||||
|
||||
define void @test1(double* noalias %out, double* noalias %in1, double* noalias %in2) nounwind uwtable {
|
||||
|
Loading…
Reference in New Issue
Block a user