[Mlir-commits] [mlir] [mlir][SCF] Add scf.index_switch support for populateSCFStructuralTypeConversionsAndLegality (PR #160344)
Artemy Skrebkov
llvmlistbot at llvm.org
Wed Sep 24 00:56:08 PDT 2025
================
@@ -185,6 +185,31 @@ class ConvertWhileOpTypes
};
} // namespace
+namespace {
+class ConvertIndexSwitchOpTypes
+ : public Structural1ToNConversionPattern<IndexSwitchOp,
+ ConvertIndexSwitchOpTypes> {
+public:
+ using Structural1ToNConversionPattern::Structural1ToNConversionPattern;
+
+ std::optional<IndexSwitchOp>
+ convertSourceOp(IndexSwitchOp op, OneToNOpAdaptor adaptor,
+ ConversionPatternRewriter &rewriter,
+ TypeRange dstTypes) const {
+ auto newOp = rewriter.create<IndexSwitchOp>(
+ op.getLoc(), dstTypes, op.getArg(), op.getCases(), op.getNumCases());
+
+ for (unsigned i = 0u; i < op.getNumRegions(); i++) {
+ if (failed(rewriter.convertRegionTypes(&op.getRegion(i), *typeConverter)))
----------------
ArtemySkrebkov wrote:
Indeed, haven't found any cases where scf.index_switch can be used with block arguments, so it makes things even simpler.
https://github.com/llvm/llvm-project/pull/160344
More information about the Mlir-commits
mailing list