aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorClément Fournier <clement.fournier@tu-dresden.de>2025-05-06 09:16:57 +0200
committerGitHub <noreply@github.com>2025-05-06 09:16:57 +0200
commit7aabf47522625e227433cc9603e0b6858c5dd66d (patch)
treeef842fbae12df0f39f8ccccd84340c2bb57f26cc /flang/lib/Frontend/CompilerInvocation.cpp
parentbb2aa1adcc4ad1508b477a2f53aa4ab922b4f99f (diff)
downloadllvm-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