[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...
More information about the llvm-dev