<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60569>60569</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [mlir] loading an unregistered dependent dialect of a pass is broken
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Tai78641
      </td>
    </tr>
</table>

<pre>
    loading an unregistered dialect as an dependent dialect of a pass used to work. but it is broken as of this commit:
0441272c4501 Revert "Revert "Refactor OperationName to use virtual tables for dispatch (NFC)""

to reproduce, just comment out registering of TestDialect in mlir-opt.cpp:

```

int main(int argc, char **argv) {
  registerAllPasses();
#ifdef MLIR_INCLUDE_TESTS
  registerTestPasses();
#endif
  DialectRegistry registry;
  registerAllDialects(registry);
#ifdef MLIR_INCLUDE_TESTS
  // ::test::registerTestDialect(registry);  // comment this out so TestDialect is unregistered
 ::test::registerTestTransformDialectExtension(registry);
 ::test::registerTestDynDialect(registry);
#endif
  return mlir::asMainReturnCode(
      mlir::MlirOptMain(argc, argv, "MLIR modular optimizer driver\n", registry,
 /*preloadDialectsInContext=*/false));
}
```

then run the `test-rewrite-dynamic-op.mlir` test:

`mlir-opt -allow-unregistered-dialect -test-rewrite-dynamic-op /llvm-project/mlir/test/Transforms/test-rewrite-dynamic-op.mlir `

this segfaults:
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVd9v4jgQ_muclxHIcUhIH_LAQpEqbbunbu955SQT8K5jR_aELvfXn2wCpdej0iIUWc78-r5vJiO9VzuDWLH8C8s3iRxpb131ItWyLBZpUtv2WGkrW2V2IA2MxuFOeUKHLbRKamwIpA-vWhzQtGjocm87kDBI72H02AJZeLXu1xzqkUARKA-1s7_QhAC2A9orD43te0UsWzG-YXzFF4tULEWzyHkKz3hAR8CEuD51siHr4NuATpKy5kn2GHKNHuGgHI1SA8lao4fOOmiVHyQ1e2CifNqumbhjQoR_zHd6kgWHg7Pt2CATa_g5eoqVBXR2JDiTEFixHbygp80EWhnotXIzO9C8GYYLkulZ8Ol_dakMQS-VYaIMR-l2Tcja7KUDJlZMrKTbHZi4A7b8cnKBSwkrrf-S3qNnogxgssmCiUx1LXbw-PXh-cfD0_rr35v7Hy_331--_zdEKP9WDDSt6s4OE8bn6OeOUwB3vDi8K2uyDkEvhn9WIBNbJrYQOMxWhJ5Op-u6pyQfclycz7LF7graefteL_-uqafUn6V8cdL4zrp-CnH_m9B4Zc0NoJ_XfzS3IPy_Bg5pdKceO0WT_lEq8xyv17bFoOFkG35vho9auW8DPZ467dxlp9Zah1kKQkBv21FLB3Yg1at_0EHr1AEdy9cmTsr6TXaxPiMMXK8Gh-FTcdb9waytIfxNLNvENt52UnuME3eFb7n5ZDRojwbcaID2CKzggcSZw1enCGft0cheNTM7zCPKgsOZ5Pcjdx5ImEmt7evsWvDZ-Ws1uxE7gNP60M8GZ39GnbYxm9jGZGJ76Qc_3d0qED6AUx487jo5avIsWyVtlbV32Z1MsEqLZb5MCy7KZF_VPE3rrEmFLGveNSLrmrIUvFuUIhdYLBNVCS4yLngh-IKL5Rx5ntUy7VJZlG0plmzBsZdKzwOUuXW7RHk_YlXwvLhLtKxR-7gEhDD4CvFlkDvfJK6K8Otx59mCa-XJv0UhRTpuj8hJvoGby-KT9XDZBMnodLUnGgIbpwHeKdqP9byx_aTDRzlisYH8CObfAAAA__9tECus">