search for: dstsubscripts

Displaying 4 results from an estimated 4 matches for "dstsubscripts".

2019 May 13
3
Delinearization validity checks in DependenceAnalysis
...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 conditions cannot be proven statically, even though the delinearized indexes are in fact correct. For example consider this simple...
2019 May 15
3
Delinearization validity checks in DependenceAnalysis
.../ 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 conditions cannot be proven statically, even though the delinearized indexes are in fact correct. For example consider this simple loop: ``` void foo(i...
2019 May 16
2
Delinearization validity checks in DependenceAnalysis
...d 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 conditions cannot be proven > statically, even though the delinearized indexes are in fact correct. For >...
2019 May 22
2
Delinearization validity checks in DependenceAnalysis
...j] and A[i*M + j - 1] would get delinearized as follows: SrcSCEV = {{((4 * %M) + %A)<nsw>,+,(4 * %M)}<%for.body>,+,4}<%for.body4> DstSCEV = {{(-4 + (4 * %M) + %A),+,(4 * %M)}<%for.body>,+,4}<%for.body4> SrcSubscripts: {1,+,1}<%for.body>{0,+,1}<%for.body4> DstSubscripts: {1,+,1}<%for.body>{-1,+,1}<%for.body4> delinearized subscript 0 src = {1,+,1}<%for.body> dst = {1,+,1}<%for.body> class = 1 loops = {1} subscript 1 src = {0,+,1}<%for.body4> dst = {-1,+,1}<%for.body4> class = 1 loops = {2} Separable = {0 1} Coupled = {} Why is...