diff --git a/llvm/lib/Analysis/DependenceAnalysis.cpp b/llvm/lib/Analysis/DependenceAnalysis.cpp --- a/llvm/lib/Analysis/DependenceAnalysis.cpp +++ b/llvm/lib/Analysis/DependenceAnalysis.cpp @@ -110,14 +110,13 @@ static cl::opt Delinearize("da-delinearize", cl::init(true), cl::Hidden, cl::ZeroOrMore, cl::desc("Try to delinearize array references.")); -static cl::opt DisableDelinearizationChecks( - "da-disable-delinearization-checks", cl::init(false), cl::Hidden, - cl::ZeroOrMore, - cl::desc( - "Disable checks that try to statically verify validity of " - "delinearized subscripts. Enabling this option may result in incorrect " - "dependence vectors for languages that allow the subscript of one " - "dimension to underflow or overflow into another dimension.")); +static cl::opt AssumeInRangeSubscripts( + "da-assume-inrange-subscripts", cl::init(false), cl::Hidden, cl::ZeroOrMore, + cl::desc("Assume that all subscripts in a multi-dimensional array access " + "are inrange, meaning that they do not underflow or overflow into " + "another dimension. Enabling this option may result in incorrect " + "dependence vectors for languages that allow the subscript of one " + "dimension to underflow or overflow into another dimension.")); //===----------------------------------------------------------------------===// // basics @@ -3313,7 +3312,7 @@ const SCEV *DstAccessFn, SmallVectorImpl &SrcSubscripts, SmallVectorImpl &DstSubscripts) { - if (!DisableDelinearizationChecks) + if (!AssumeInRangeSubscripts) return false; Value *SrcPtr = getLoadStorePointerOperand(Src); @@ -3422,7 +3421,7 @@ // and dst. // FIXME: It may be better to record these sizes and add them as constraints // to the dependency checks. - if (!DisableDelinearizationChecks) + if (!AssumeInRangeSubscripts) for (size_t i = 1; i < SrcSubscripts.size(); ++i) { if (!isKnownNonNegative(SrcSubscripts[i], SrcPtr)) return false; diff --git a/llvm/test/Analysis/DependenceAnalysis/Invariant.ll b/llvm/test/Analysis/DependenceAnalysis/Invariant.ll --- a/llvm/test/Analysis/DependenceAnalysis/Invariant.ll +++ b/llvm/test/Analysis/DependenceAnalysis/Invariant.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -analyze -basicaa -da | FileCheck %s ; RUN: opt < %s -disable-output "-passes=print" -aa-pipeline=basic-aa 2>&1 \ -; RUN: -da-disable-delinearization-checks | FileCheck %s --check-prefix=IN-RANGE +; RUN: -da-assume-inrange-subscripts | FileCheck %s --check-prefix=IN-RANGE ; Test for a bug, which caused an assert when an invalid ; SCEVAddRecExpr is created in addToCoefficient. diff --git a/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll b/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll --- a/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll +++ b/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -analyze -basicaa -da | FileCheck %s -check-prefix=DELIN ; RUN: opt < %s -disable-output "-passes=print" -aa-pipeline=basic-aa 2>&1 \ -; RUN: -da-disable-delinearization-checks | FileCheck %s -check-prefix=IN-RANGE +; RUN: -da-assume-inrange-subscripts | FileCheck %s -check-prefix=IN-RANGE 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-apple-macosx10.6.0" diff --git a/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll b/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll --- a/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll +++ b/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -analyze -basicaa -da | FileCheck %s ; RUN: opt < %s -disable-output "-passes=print" -aa-pipeline=basic-aa 2>&1 \ -; RUN: -da-disable-delinearization-checks | FileCheck %s --check-prefix=IN-RANGE +; RUN: -da-assume-inrange-subscripts | FileCheck %s --check-prefix=IN-RANGE 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-apple-macosx10.6.0" diff --git a/llvm/test/Analysis/DependenceAnalysis/Propagating.ll b/llvm/test/Analysis/DependenceAnalysis/Propagating.ll --- a/llvm/test/Analysis/DependenceAnalysis/Propagating.ll +++ b/llvm/test/Analysis/DependenceAnalysis/Propagating.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -analyze -basicaa -da | FileCheck %s ; RUN: opt < %s -disable-output "-passes=print" -aa-pipeline=basic-aa 2>&1 \ -; RUN: -da-disable-delinearization-checks | FileCheck %s --check-prefix=IN-RANGE +; RUN: -da-assume-inrange-subscripts | FileCheck %s --check-prefix=IN-RANGE 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-apple-macosx10.6.0" diff --git a/llvm/test/Analysis/DependenceAnalysis/Separability.ll b/llvm/test/Analysis/DependenceAnalysis/Separability.ll --- a/llvm/test/Analysis/DependenceAnalysis/Separability.ll +++ b/llvm/test/Analysis/DependenceAnalysis/Separability.ll @@ -3,7 +3,7 @@ ; RUN: opt < %s -analyze -basicaa -da | FileCheck %s ; RUN: opt < %s -disable-output "-passes=print" -aa-pipeline=basic-aa 2>&1 \ -; RUN: -da-disable-delinearization-checks | FileCheck %s --check-prefix=IN-RANGE +; RUN: -da-assume-inrange-subscripts | FileCheck %s --check-prefix=IN-RANGE 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-apple-macosx10.6.0" diff --git a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll --- a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll +++ b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -disable-output -passes="print" \ -; RUN: -da-disable-delinearization-checks 2>&1 | FileCheck %s -; RUN: opt < %s -da -analyze -da-disable-delinearization-checks | FileCheck %s +; RUN: -da-assume-inrange-subscripts 2>&1 | FileCheck %s +; RUN: opt < %s -da -analyze -da-assume-inrange-subscripts | FileCheck %s ; CHECK-LABEL: t1 ; CHECK: da analyze - none! diff --git a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll --- a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll +++ b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -disable-output -passes="print" \ -; RUN: -da-disable-delinearization-checks 2>&1 | FileCheck %s -; RUN: opt < %s -da -analyze -da-disable-delinearization-checks | FileCheck %s +; RUN: -da-assume-inrange-subscripts 2>&1 | FileCheck %s +; RUN: opt < %s -da -analyze -da-assume-inrange-subscripts | FileCheck %s ; CHECK-LABEL: t1 ; CHECK: da analyze - none! diff --git a/llvm/test/Transforms/LoopInterchange/currentLimitation.ll b/llvm/test/Transforms/LoopInterchange/currentLimitation.ll --- a/llvm/test/Transforms/LoopInterchange/currentLimitation.ll +++ b/llvm/test/Transforms/LoopInterchange/currentLimitation.ll @@ -1,5 +1,5 @@ ; RUN: opt < %s -basicaa -loop-interchange -pass-remarks-missed='loop-interchange' \ -; RUN: -da-disable-delinearization-checks -pass-remarks-output=%t -verify-loop-info \ +; RUN: -da-assume-inrange-subscripts -pass-remarks-output=%t -verify-loop-info \ ; RUN: -verify-dom-info -S | FileCheck -check-prefix=IR %s ; RUN: FileCheck --input-file=%t %s diff --git a/llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll b/llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll --- a/llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll +++ b/llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll @@ -2,7 +2,7 @@ ; ; RUN: opt < %s -basicaa -loop-interchange -verify-dom-info -verify-loop-info \ ; RUN: -pass-remarks-output=%t -pass-remarks-missed='loop-interchange' \ -; RUN: -pass-remarks='loop-interchange' -da-disable-delinearization-checks -S +; RUN: -pass-remarks='loop-interchange' -da-assume-inrange-subscripts -S ; RUN: cat %t | FileCheck %s @A = common global [100 x [100 x i32]] zeroinitializer diff --git a/llvm/test/Transforms/LoopInterchange/profitability.ll b/llvm/test/Transforms/LoopInterchange/profitability.ll --- a/llvm/test/Transforms/LoopInterchange/profitability.ll +++ b/llvm/test/Transforms/LoopInterchange/profitability.ll @@ -1,5 +1,5 @@ ; RUN: opt < %s -loop-interchange -pass-remarks-output=%t -verify-dom-info -verify-loop-info \ -; RUN: -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange -da-disable-delinearization-checks +; RUN: -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange -da-assume-inrange-subscripts ; RUN: FileCheck -input-file %t %s ;; We test profitability model in these test cases.