aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAndrzej WarzyƄski <andrzej.warzynski@arm.com>2025-06-25 16:40:14 +0100
committerGitHub <noreply@github.com>2025-06-25 16:40:14 +0100
commitc92b580d6308ded02b491d71dda9427edf6f7ed0 (patch)
tree7014ac8d91f85b431d22cafec840916714bbf2a5 /flang/lib/Frontend/CompilerInvocation.cpp
parentc08502defe47d71d3e0beecee8ca040279c4dff9 (diff)
downloadllvm-c92b580d6308ded02b491d71dda9427edf6f7ed0.zip
llvm-c92b580d6308ded02b491d71dda9427edf6f7ed0.tar.gz
llvm-c92b580d6308ded02b491d71dda9427edf6f7ed0.tar.bz2
[mlir][ArmSME] Remove `ConvertIllegalShapeCastOpsToTransposes` (#139706)
As a follow-up to PR #135841 (see discussion for background), this patch removes the `ConvertIllegalShapeCastOpsToTransposes` pattern from the SME legalization pass. This change unblocks folding for ShapeCastOp involving scalable vectors. Originally, the `ConvertIllegalShapeCastOpsToTransposes` pattern was introduced to rewrite certain `vector.shape_cast` ops that could not be lowered otherwise. Based on local end-to-end testing, this workaround is no longer required, and the pattern can now be safely removed. This patch also removes a special case from `ShapeCastOp::fold`, simplifying the fold logic. As a side effect of removing `ConvertIllegalShapeCastOpsToTransposes`, we lose the mechanism that enabled lowering of certain ops like: ```mlir %res = vector.transfer_read %mem[%a, %b] (...) : memref<?x?xf32>, vector<[4]x1xf32> ``` Previously, such cases were handled by: * Rewriting a nearby `vector.shape_cast` to a `vector.transpose` (via `ConvertIllegalShapeCastOpsToTransposes`) * Then lowering the result with `LiftIllegalVectorTransposeToMemory`. This patch introduces a new dedicated pattern, `LowerColumnTransferReadToLoops`, that directly handles illegal `vector.transfer_read` ops involving leading scalable dimensions.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions