[llvm-bugs] [Bug 27195] Delinearization fails to recognize the correct access function

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Apr 5 08:04:21 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27195

Johannes Doerfert <doerfert at cs.uni-saarland.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #2 from Johannes Doerfert <doerfert at cs.uni-saarland.de> ---
For the attached test case we get the following delinearization after r265379:

    Arrays {
        <4 x i16> MemRef_A[*][4]; // Element size 8
    }

            ReadAccess :=    [Reduction Type: NONE] [Scalar: 0]
                [N, P] -> { Stmt_for_body[i0] -> MemRef_A[0, P + 7i0] };
            MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 0]
                [N, P] -> { Stmt_for_body[i0] -> MemRef_A[7i0, 0] };


However, this is not correct as it should be
            ReadAccess :=    [Reduction Type: NONE] [Scalar: 0]
                [N, P] -> { Stmt_for_body[i0] -> MemRef_A[7i0 + P, 0] };
which is not equivalent. 


If we turn of delinearization here we get the correct (one dimensional) result:
    Arrays {
        <4 x i16> MemRef_A[*]; // Element size 8
    }

            ReadAccess :=    [Reduction Type: NONE] [Scalar: 0]
                [N, P] -> { Stmt_for_body[i0] -> MemRef_A[P + 7i0] };
            MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 0]
                [N, P] -> { Stmt_for_body[i0] -> MemRef_A[7i0] };

Note that the access functions are the same as they are after r265379 __but__
the base structure is not. Especially the write access functions after r265379
is in the first dimension, thus will be multiplied by 4 during linearization.
This does not then not match the read access function.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160405/4f841606/attachment.html>


More information about the llvm-bugs mailing list