Commit 4cd2bf3c authored by Hans Wennborg's avatar Hans Wennborg
Browse files

Merging r296030:

------------------------------------------------------------------------
r296030 | hans | 2017-02-23 14:29:00 -0800 (Thu, 23 Feb 2017) | 7 lines

Revert r282872 "CVP. Turn marking adds as no wrap on by default"

While not CVP's fault, this caused miscompiles (PR31181). Reverting
until those are resolved.

(This also reverts the follow-ups r288154 and r288161 which removed the
flag.)
------------------------------------------------------------------------

llvm-svn: 296148
parent 7f6e1fc6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ STATISTIC(NumSDivs, "Number of sdiv converted to udiv");
STATISTIC(NumAShrs,     "Number of ashr converted to lshr");
STATISTIC(NumSRems,     "Number of srem converted to urem");

static cl::opt<bool> DontProcessAdds("cvp-dont-process-adds", cl::init(true));

namespace {
  class CorrelatedValuePropagation : public FunctionPass {
  public:
@@ -405,6 +407,9 @@ static bool processAShr(BinaryOperator *SDI, LazyValueInfo *LVI) {
static bool processAdd(BinaryOperator *AddOp, LazyValueInfo *LVI) {
  typedef OverflowingBinaryOperator OBO;

  if (DontProcessAdds)
    return false;

  if (AddOp->getType()->isVectorTy() || hasLocalDefs(AddOp))
    return false;

+1 −1
Original line number Diff line number Diff line
; RUN: opt < %s -correlated-propagation -S | FileCheck %s
; RUN: opt < %s -correlated-propagation -cvp-dont-process-adds=false -S | FileCheck %s

; CHECK-LABEL: @test0(
define void @test0(i32 %a) {