[llvm] r277607 - Revert "Teach CorrelatedValuePropagation to mark adds as no wrap"
Renato Golin via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 3 09:20:49 PDT 2016
Author: rengolin
Date: Wed Aug 3 11:20:48 2016
New Revision: 277607
URL: http://llvm.org/viewvc/llvm-project?rev=277607&view=rev
Log:
Revert "Teach CorrelatedValuePropagation to mark adds as no wrap"
This reverts commit r277592, trying to fix the AArch64 42VMA buildbot.
Removed:
llvm/trunk/test/Transforms/CorrelatedValuePropagation/add.ll
Modified:
llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp?rev=277607&r1=277606&r2=277607&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp Wed Aug 3 11:20:48 2016
@@ -18,7 +18,6 @@
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/LazyValueInfo.h"
#include "llvm/IR/CFG.h"
-#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
@@ -382,59 +381,6 @@ static bool processSDiv(BinaryOperator *
return true;
}
-static bool processAdd(BinaryOperator *AddOp, LazyValueInfo *LVI) {
- typedef OverflowingBinaryOperator OBO;
-
- if (AddOp->getType()->isVectorTy() || hasLocalDefs(AddOp))
- return false;
-
- bool NSW = AddOp->hasNoSignedWrap();
- bool NUW = AddOp->hasNoUnsignedWrap();
- if (NSW && NUW)
- return false;
-
- BasicBlock *BB = AddOp->getParent();
-
- Value *LHS = AddOp->getOperand(0);
- Value *RHS = AddOp->getOperand(1);
-
- ConstantRange LRange = LVI->getConstantRange(LHS, BB, AddOp);
-
- // Initialize RRange only if we need it. If we know that guaranteed no wrap
- // range for the given LHS range is empty don't spend time calculating the
- // range for the RHS.
- Optional<ConstantRange> RRange;
- auto LazyRRange = [&] () {
- if (!RRange)
- RRange = LVI->getConstantRange(RHS, BB, AddOp);
- return RRange.getValue();
- };
-
- bool Changed = false;
- if (!NUW) {
- ConstantRange NUWRange =
- LRange.makeGuaranteedNoWrapRegion(BinaryOperator::Add, LRange,
- OBO::NoUnsignedWrap);
- if (!NUWRange.isEmptySet()) {
- bool NewNUW = NUWRange.contains(LazyRRange());
- AddOp->setHasNoUnsignedWrap(NewNUW);
- Changed |= NewNUW;
- }
- }
- if (!NSW) {
- ConstantRange NSWRange =
- LRange.makeGuaranteedNoWrapRegion(BinaryOperator::Add, LRange,
- OBO::NoSignedWrap);
- if (!NSWRange.isEmptySet()) {
- bool NewNSW = NSWRange.contains(LazyRRange());
- AddOp->setHasNoSignedWrap(NewNSW);
- Changed |= NewNSW;
- }
- }
-
- return Changed;
-}
-
static Constant *getConstantAt(Value *V, Instruction *At, LazyValueInfo *LVI) {
if (Constant *C = LVI->getConstant(V, At->getParent(), At))
return C;
@@ -490,9 +436,6 @@ static bool runImpl(Function &F, LazyVal
case Instruction::SDiv:
BBChanged |= processSDiv(cast<BinaryOperator>(II), LVI);
break;
- case Instruction::Add:
- BBChanged |= processAdd(cast<BinaryOperator>(II), LVI);
- break;
}
}
Removed: llvm/trunk/test/Transforms/CorrelatedValuePropagation/add.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/CorrelatedValuePropagation/add.ll?rev=277606&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/CorrelatedValuePropagation/add.ll (original)
+++ llvm/trunk/test/Transforms/CorrelatedValuePropagation/add.ll (removed)
@@ -1,91 +0,0 @@
-; RUN: opt < %s -correlated-propagation -S | FileCheck %s
-
-; CHECK-LABEL: @test0(
-define void @test0(i32 %a) {
-entry:
- %cmp = icmp slt i32 %a, 100
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add nsw i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
-
-; CHECK-LABEL: @test1(
-define void @test1(i32 %a) {
-entry:
- %cmp = icmp ult i32 %a, 100
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add nuw nsw i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
-
-; CHECK-LABEL: @test2(
-define void @test2(i32 %a) {
-entry:
- %cmp = icmp ult i32 %a, -1
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add nuw i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
-
-; CHECK-LABEL: @test3(
-define void @test3(i32 %a) {
-entry:
- %cmp = icmp ule i32 %a, -1
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
-
-; CHECK-LABEL: @test4(
-define void @test4(i32 %a) {
-entry:
- %cmp = icmp slt i32 %a, 2147483647
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add nsw i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
-
-; CHECK-LABEL: @test5(
-define void @test5(i32 %a) {
-entry:
- %cmp = icmp sle i32 %a, 2147483647
- br i1 %cmp, label %bb, label %exit
-
-bb:
-; CHECK: %add = add i32 %a, 1
- %add = add i32 %a, 1
- br label %exit
-
-exit:
- ret void
-}
More information about the llvm-commits
mailing list