Displaying 9 results from an estimated 9 matches for "isknownnonnegative".
2019 May 13
3
Delinearization validity checks in DependenceAnalysis
...not overflow into another subscript,
so is
// always safe. The others need to be 0 <= subscript[i] < bound, for both
src
// and dst.
// FIXME: It may be better to record these sizes and add them as
constraints
// to the dependency checks.
for (int i = 1; i < size; ++i) {
if (!isKnownNonNegative(SrcSubscripts[i], SrcPtr))
return false;
if (!isKnownLessThan(SrcSubscripts[i], Sizes[i - 1]))
return false;
if (!isKnownNonNegative(DstSubscripts[i], DstPtr))
return false;
if (!isKnownLessThan(DstSubscripts[i], Sizes[i - 1]))
return false;
}
```
The pr...
2019 May 15
3
Delinearization validity checks in DependenceAnalysis
...for and it cannot overflow into another subscript, so
is
// always safe. The others need to be 0 <= subscript[i] < bound, for both
src
// and dst.
// FIXME: It may be better to record these sizes and add them as
constraints
// to the dependency checks.
for (int i = 1; i < size; ++i) {
if (!isKnownNonNegative(SrcSubscripts[i], SrcPtr))
return false;
if (!isKnownLessThan(SrcSubscripts[i], Sizes[i - 1]))
return false;
if (!isKnownNonNegative(DstSubscripts[i], DstPtr))
return false;
if (!isKnownLessThan(DstSubscripts[i], Sizes[i - 1]))
return false;
}
```
The problem is that in a lot of cases these con...
2019 May 16
2
Delinearization validity checks in DependenceAnalysis
...ript, so
> is
> // always safe. The others need to be 0 <= subscript[i] < bound, for both
> src
> // and dst.
> // FIXME: It may be better to record these sizes and add them as
> constraints
> // to the dependency checks.
> for (int i = 1; i < size; ++i) {
> if (!isKnownNonNegative(SrcSubscripts[i], SrcPtr))
> return false;
>
> if (!isKnownLessThan(SrcSubscripts[i], Sizes[i - 1]))
> return false;
>
> if (!isKnownNonNegative(DstSubscripts[i], DstPtr))
> return false;
>
> if (!isKnownLessThan(DstSubscripts[i], Sizes[i - 1]))
> return false;
>...
2018 Jan 26
0
Late setting of SCEV NoWrap flags does bad with cache
...not go up by very
much.
> You may find the example of such behavior if you re-enable the assertion
> from patch https://reviews.llvm.org/rL323309 . The test that was added with
For that case specifically: I don't think such asserts are a good
idea, unless you've already checked SE.isKnownNonNegative(X) (i.e. not
only do you know that X is "supposed to be" non-negative, but you also
know that SCEV can prove it). For instance see
https://bugs.llvm.org/show_bug.cgi?id=25170 where SCEV can prove "A-B"
is a constant but can't prove that "B-A" is a constant. I thi...
2018 Jan 26
2
Late setting of SCEV NoWrap flags does bad with cache
...up by very much.
> You may find the example of such behavior if you re-enable the
> assertion from patch https://reviews.llvm.org/rL323309 . The test that
> was added with
For that case specifically: I don't think such asserts are a good idea, unless you've already checked SE.isKnownNonNegative(X) (i.e. not only do you know that X is "supposed to be" non-negative, but you also know that SCEV can prove it). For instance see
https://bugs.llvm.org/show_bug.cgi?id=25170 where SCEV can prove "A-B"
is a constant but can't prove that "B-A" is a constant. I thi...
2012 Apr 09
0
[LLVMdev] new methods for ScalarEvolutions
Working on a dependence test, I wrote some code that looked like this:
const SCEV *delta = ...;
bool deltaMaybeZero = !SE->isKnownNonZero(delta);
bool deltaMaybePositive = !SE->isKnownNonPositive(delta);
bool deltaMaybeNegative = !SE->isKnownNonNegative(delta);
I'm really happy with the power of the SCEVs, letting me answer these
questions, but I'm unhappy with how the code reads, namely the double
negatives.
Perhaps we might introduce a handful of new methods, things like
*bool ScalarEvolution::isPerhapsZero(const SCEV *S) {*
* re...
2018 Jan 25
2
Late setting of SCEV NoWrap flags does bad with cache
Hello Everyone,
I want to raise a discussion about reasonability of late setting of nsw/nuw/nw flags to SCEV AddRecs through setNoWrapFlags method. A discussion about this have already happened in August last year, there was a concern about different no-wrap flags that come from different sequences of SCEV flags invocations. It was mentioned there that late setting of flags is actually a hack to
2018 Jan 26
0
Late setting of SCEV NoWrap flags does bad with cache
...>> You may find the example of such behavior if you re-enable the
>> assertion from patch https://reviews.llvm.org/rL323309 . The test that
>> was added with
>
> For that case specifically: I don't think such asserts are a good idea, unless you've already checked SE.isKnownNonNegative(X) (i.e. not only do you know that X is "supposed to be" non-negative, but you also know that SCEV can prove it). For instance see
> https://bugs.llvm.org/show_bug.cgi?id=25170 where SCEV can prove "A-B"
> is a constant but can't prove that "B-A" is a consta...
2019 May 22
2
Delinearization validity checks in DependenceAnalysis
...ript, so
> is
> // always safe. The others need to be 0 <= subscript[i] < bound, for both
> src
> // and dst.
> // FIXME: It may be better to record these sizes and add them as
> constraints
> // to the dependency checks.
> for (int i = 1; i < size; ++i) {
> if (!isKnownNonNegative(SrcSubscripts[i], SrcPtr))
> return false;
>
> if (!isKnownLessThan(SrcSubscripts[i], Sizes[i - 1]))
> return false;
>
> if (!isKnownNonNegative(DstSubscripts[i], DstPtr))
> return false;
>
> if (!isKnownLessThan(DstSubscripts[i], Sizes[i - 1]))
> return false;
> }...