[flang-commits] [clang] [flang] [Flang][FIR] Introduce FIRToCoreMLIR pass. (PR #168703)

Ming Yan via flang-commits flang-commits at lists.llvm.org
Tue Nov 25 18:58:41 PST 2025


================
@@ -3521,13 +3521,6 @@ struct SelectCaseOpConversion : public fir::FIROpConversion<fir::SelectCaseOp> {
     auto loc = caseOp.getLoc();
     for (unsigned t = 0; t != conds; ++t) {
       mlir::Block *dest = caseOp.getSuccessor(t);
-      std::optional<mlir::TypeConverter::SignatureConversion> conversion =
-          getTypeConverter()->convertBlockSignature(dest);
-      if (!conversion)
-        return rewriter.notifyMatchFailure(caseOp,
-                                           "could not compute block signature");
-
-      dest = rewriter.applySignatureConversion(dest, *conversion);
----------------
NexMing wrote:

Some passes (such as `lift-cf-to-scf`) fail when encountering `fir.select_case`, so I need to convert `fir.select_case` to the `CF` dialect beforehand to continue exploring further optimizations.

Although the FIR CodeGen pass may need improvements, the current patch may already be too large, so I prefer to avoid making changes to the FIR CodeGen pass as much as possible.

https://github.com/llvm/llvm-project/pull/168703


More information about the flang-commits mailing list