diff options
author | Clément Fournier <clement.fournier@tu-dresden.de> | 2025-05-06 09:16:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-06 09:16:57 +0200 |
commit | 7aabf47522625e227433cc9603e0b6858c5dd66d (patch) | |
tree | ef842fbae12df0f39f8ccccd84340c2bb57f26cc /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | bb2aa1adcc4ad1508b477a2f53aa4ab922b4f99f (diff) | |
download | llvm-7aabf47522625e227433cc9603e0b6858c5dd66d.zip llvm-7aabf47522625e227433cc9603e0b6858c5dd66d.tar.gz llvm-7aabf47522625e227433cc9603e0b6858c5dd66d.tar.bz2 |
[mlir][affine] Add pass --affine-raise-from-memref (#138004)
This adds a pass that converts memref.load/store into affine.load/store.
This is useful as those memref operators are ignored by passes like
--affine-scalrep as they don't implement the
Affine[Read/Write]OpInterface. Doing this allows you to put as much of
your program in affine form before you apply affine optimization passes.
This also slightly changes the implementation of affine::isValidDim. The
previous implementation allowed values from the iter_args of affine
loops to be used as valid dims. I think this doesn't make sense and what
was meant is just the induction vars. In the real world, there is little
reason to find an index in the iter_args, but I wrote that in my tests
and found out it was treated as an affine dim, so corrected that.
Co-authored-by: Oleksandr "Alex" Zinenko <git@ozinenko.com>
Rebased from #114032.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions