[llvm-dev] Loop Opt WG - using MLIR

Gary Elsesser via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 13 10:58:58 PDT 2019

MLIR  is sufficiently expressive to capture general multidimensional
array references without lose of information.  Fortran pointers
may require speicial handling, as non-contiguous memory may be
described - forward or backward in each dimension.
    p => A(I1:I2:-3, J1:j2, K1:k2:K3)
Fortran also permits empty arrays: call S(A(1:0)).

The BIG design chooses include:
  1. Augment LLVM IR to provide a more general GEP; continue loop restructuring
      work in LLVM; MLIR may be used for additional high-level optimization.
   2. Create a middle-LLVM that works on MLIR; do all loop restructuring here;
       phase out existing LLVM loop restructuring .
   3. adopt MLIR in LLVM ... (a bridge too far).

In my mind, delinearization is a side issue.  The central problem is retaining
subscript information needed for loop restructuring.  Broad agreement is
clearly needed up front.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190813/8e51bfad/attachment.html>

More information about the llvm-dev mailing list