<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzNWF1v4joQ_TXwYjXKB6TwwANtF91KK7FqqyvtfVk59gR869iR7bTLv79jJ5SEForu7sNWKWmd8fjMzPHEh0Lz3eK2MQaUk7tReksYldISp8kojx_g1QgH5oZaGGVLvISSQsEDbIRWN1BqA2hGXoWUxIBtpCNCEUpKKmRjwLtpLHhXVxyKZuONy0Yxh9OpFG5Hih3hUFKcGZF7R161ebboz22J2wKhnAtvS3QZnFRSmKvaCOWudH21AQVGMHzggReNCxN1uA8AdXAssQ3bEmp9LPHdKN5_ooP2Cv_SssQYIwyOhPV07XACkfKlwrX1v8DcKF35R3gTismGw2Hg_gE_1vUdoJOAPdri7Fk28z6CTUjkjdTsmYzS5WFoXT8ZKlz7z6NQGwnBapTdHoyWAdxKm3U9yr60YxtwN1jHUTprlBUbBRyDRoxzMpre3GrFDDh42tVYiOyOfOxreufxLa0FExIekpqYUOgIqtp598FlmuOFt7RR8LPGZOBywYC01vhklF6HnAOPSJvTKIraP3BiNifxz_jtZ5okPKMnYIWBUHBcvp-qpa2--WEwAZDHNSsaITlmvxCqq0eoXXoT_2wXQbuu4mmWxEMUKQCUpL_Eybwj2U5Ubb3fG2ds_qZGUC7YQ6CnPWP5Dxj92DAG1mpzZNfG8ZHfdQ2GKn7OcY9c91UtBRPuCUwlFHW40PuwvwuQvEc4P-mM-7-ofQDWGCte4FFw-FKWSJMjQF_bCLSuv4pnWNf3vpYlZV2j6dx96THAk7MqfJcaMAGjdSHjy2NIRxy5DVu4y4DDB5sHKC-gTmDGgDpJnzpJCjzLr70XqrTaVbqxRNEKbO2jwXlDoHtIJ6ndD2hODkFErPYbIg6_b1jSIywQz-LfhaVtP21iC63l4f45rmyIq8xyzn8B135b9dDth_L38C6HORnAzKaTvOh3gf3L6ofY0_OH8OQ_AFt1Fr4vnOtQQ2oOSXvg5dIYuvO07G9C37r9VuiFhzPaGC6a9xnFu7gHHJ8OE5OmeT473R59Fn65M_p-13bF_9kUh3ZtLEZf0BDbNvfINCbsjFXjdIV1Y0uJGyMU8IMpt3iAooU81dIGtgfyfGDb4j-Xi3t7b7Wk-AZeGV0tC_1yhOVxVxVa_sHNtSPWgHn5H9Rdr4-wFHFefriRB-sdUmHo6w9tnQFavesCuPajw-JddIDp1h4kanYEjpbZ9HeBW9chL1jHlaQbS5hW1l2K1AMZIJ0fl3RSTk4j5U1Vv502P1nKe-ovlQ6OdWleTtLr_uHyG3VYbLWs_bGnPe74YdzWbLtUvFM8F-6CztleJr3bCG9vDxM6s2_eZOC6c0BYdxh6y3HX7k-6etGCn3B1uZPeYUxvMBuybb6X-f2sNl3qD7UZiqz282krLKnoM0qzoA83yDev9WqK7ciSVlz5MS6oxDOkR_ECeLAMktCBQkuhykaiqCOA4g9M0I0S3w6ESaCGdCKRoJyryJYGaVuAl6XcJ0e3E-ouys5AKK-DUMgWQabhRtDBjIMEr3f0nhLemIZiBLn6Jp86xRmN-SLj82xOx7RBaWoWrtZ1PW6MXGydq4MSTVd4bRB8U0RM41ZchYq1t57iFNY2gG-x1TSbp8l4u5iW-ZRNErzxWV7Os-uinCd5UibzdJ5MYDbG9xBIu0AViKKsKynzmh0l2vRu_OsYxCKNU7ySWYwrT-MoyyYTns54PgPGsLWPJjFUmIvI-4m02YzNIrjEYlt8KIV19vAQE-j1KwTIiNAJJ2Hx_ksHUmDTerak_VZhHFAtAqT_AJBlOjw>53921</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            inlineRegionBefore breaks -debug
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:core
      </td>
    </tr>

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

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

<pre>
    Currently, calls to `RewriterBase::inlineRegionBefore` will result in a failure to use `-debug` functionality by default. It works with the addition of `-mlir-print-op-generic`, but without will result in failures such as:

```
affine.for mlir-opt: llvm-project/mlir/include/mlir/IR/OpDefinition.h:838: mlir::Block *mlir::OpTrait::SingleBlock<mlir::AffineForOp>::getBody(unsigned int) [ConcreteType = mlir::AffineForOp]: Assertion `!region.empty() && "unexpected empty region"' failed. 
...
 #9 0x0000000000511d3a mlir::AffineForOp::print(mlir::OpAsmPrinter&) (build/bin/mlir-opt+0x511d3a)
#10 0x000000000052eeef mlir::Op<mlir::AffineForOp, mlir::OpTrait::OneRegion, mlir::OpTrait::VariadicResults, mlir::OpTrait::ZeroSuccessor, mlir::O
pTrait::VariadicOperands, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::AffineYieldOp>::Impl, mlir::OpTrait::HasRecursiveSideEffects, mlir::L
oopLikeOpInterface::Trait>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) (build/bin/mlir-opt+0x52eeef)
#11 0x00000000012ed367 (anonymous namespace)::OperationPrinter::print(mlir::Operation*) AsmPrinter.cpp:0:0
#12 0x00000000012ee080 (anonymous namespace)::OperationPrinter::print(mlir::Block*, bool, bool) AsmPrinter.cpp:0:0
#13 0x00000000012f36dd (anonymous namespace)::OperationPrinter::printRegion(mlir::Region&, bool, bool, bool) AsmPrinter.cpp:0:0
#14 0x00000000013546bf mlir::function_interface_impl::printFunctionOp(mlir::OpAsmPrinter&, mlir::Operation*, llvm::ArrayRef<mlir::Type>, bool, llv
m::ArrayRef<mlir::Type>) (build/bin/mlir-opt+0x13546bf)
#15 0x0000000001322668 mlir::Op<mlir::FuncOp, mlir::OpTrait::OneRegion, mlir::OpTrait::ZeroResult, mlir::OpTrait::ZeroSuccessor, mlir::OpTrait::Ze
roOperands, mlir::OpTrait::AffineScope, mlir::OpTrait::AutomaticAllocationScope, mlir::CallableOpInterface::Trait, mlir::FunctionOpInterface::Trai
t, mlir::OpTrait::IsIsolatedFromAbove, mlir::SymbolOpInterface::Trait>::printAssembly(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) (build/bin/mlir-opt+0x1322668)
#16 0x00000000012ed367 (anonymous namespace)::OperationPrinter::print(mlir::Operation*) AsmPrinter.cpp:0:0
#17 0x00000000012eb06f mlir::Operation::print(llvm::raw_ostream&, mlir::AsmState&) (build/bin/mlir-opt+0x12eb06f)
#18 0x00000000012eaf35 mlir::Operation::print(llvm::raw_ostream&, mlir::OpPrintingFlags const&) (build/bin/mlir-opt+0x12eaf35)
#19 0x00000000012ed4f4 mlir::Operation::dump() (build/bin/mlir-opt+0x12ed4f4)
#20 0x00000000026f427a mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern c
onst&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<mlir::LogicalResult (mlir::Pattern const&)>) (build/bin/mlir-opt+0x26f427a)
```

This makes debugging of passes including dialect conversion often painful as either the less clear generic form has to be used, or the pattern has to insert a block into the deleted operation to avoid the assertion failure.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNV1tv4jgU_jXwYjUKCQR44IFe0FYaiVFbrTT7Ujn2CXjr2JHttMO_32MnlIQWinbmYaqUgHN8zneu8Zdrvlvc1MaAcnI3SG4Io1Ja4jQZZPEDvBnhwFxTC4N0iZdQUih4gI3Q6hoKbQDFyJuQkhiwtXREKEJJQYWsDXg1tQWv6opDXm-8cFEr5nA7lcLtSL4jHAqKOyNy78ibNi8W9bktcVsglHPhZYkugpJSCnNVGaHcla6uNqDACIYPPPC8dmGjDvceoBaOJbZmW0Kt9yW-HcT7T1TQXOEnLQr0MULnSLCnK4cbiJSvJdrW_wJzg2TlH-FNKCZrDoeF-wf8WFe3gEoC9miLu2fpzOsIMiGQ11KzFzJIloeldfVkqHDNj0ehNhKC1CC9OQgtA7iVNutqkN41axtw15jHQTKrlRUbBRydRoxzMphc32jFDDh42lWYiPSWfK5rcuvxLa0FEwIegjoyIdERlJXz6oPKJMMLb0mt4GeFwUBzQYA00vhkkExDzIFHpIlpFEXNF9yYzkn8M37_m4xGPKUnYIWFkHA03w3V0pbf_TKYAMjjmuW1kByjnwvV5iPkLrmOfzZGUK7NeJKO4j6KBAAK0jVxMu5YbCeytt73xhmZv6kRlAv2EMrTnpH8B4x-rBkDa7U5kmv8-EzvugJDFT-nuFNc92UlBRPuCUwpFHVo6KPbPwRI3ik4v-mM-r-ofQBWGyte4VFwuCsKLJMjQN8aD7SuvokXWFf3PpcFZe2gadXddSrAF2eZ-ynVqwT01oWIL48hHdXITWjhNgIOH2weoLigdEJl9Epn1C2dUQI8zaZeC1Va7UpdW6JoCbby3uC-PtA9pJOl3XVoTg5ORKzyDRGH_3csyREWiGfx78LSjJ8msLnW8nD_Glfax1WkGee_gGvfVh10-6XsI7zLYY57MNPJOMu7U2D_snoW-_J8Fr74D8BWrYSfC-cmVL80-0V7qMulMXTny7LbhH50-1bouIc7Gh8u2vdVibd-92p80g9MkmTZ7PR49FH45cno510zFf_nUOzLNb4YfcFAbMbcI9MYsDNStdMl5o0tJTZGSOAnW27wAEVzeWqk9WQPxfOJbIP_XCzu7b3VkuIbeGV0ucz16xGWx12Za_kHD9e2sHqVl_1B03V6hCWPs-LTRu7ZO4TC0LdnbZ0BWn6YAmj70WHyLjrAtLZ7gZodgaNFOvld4NZViAvmcSXpxhKmlXWXIvVAekjnxykdF-PTSHldVu-nzS9MeU1dU0nvWJdkxTiZdg-X36nDZKtl5Y89zXHHL2Nbs-1S8ZbxXNgFrbI9TfrQCO9vDxMmsx_epKe6VUBYexh6j3E77k-qetWCn1B1uZLOYUxvMBqyGb6X6f0qN23oD7npk6zm82krLCnpC1KzwA83WG-e61UUx5ElDbnya1xQiWdIj-IV8GAZKKEDhZJCFbVEUkcAyR-YwBslvh0Ik0ANaUkiQTpXki0N1DYHT0u5D45uNlStl62AUJ4HIZHNA03DRtBBjIMEz3f0viS8MA3JCHT1nT61jDMa8kXK5-mcDp1wEhYf-TPJsf-Q8zYEeVgbudg6VwWOmqzw2qBbdR4xjU26Crlsbh0uKqytAd9vq0k6T0bD7YInlE7HOEpZNuGzyWg6LcY5zwHyWRKzohjiGwqkXSA_RLrWJpt5No_kbXI7FIskTvAazeL5KJvEUZqOxzyZ8WwGjOHIHoxjKNHHyCOJtNkMzSKAQh8sPpTCOnt4iIHxvBSCQdRPa-TpZuEqXVXDgH4RoP8HT3slyw">