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

    <tr>
        <th>Summary</th>
        <td>
            [mlir] Crash when using --pass-pipeline="builtin.module(func.func(tosa-to-linalg))"
        </td>
    </tr>

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

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

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

<pre>
    I have the following MLIR program:
test.mlir:
```
module {
 func.func @func1() {
        %c1 = arith.constant 1 : index
 %137 = tensor.empty(%c1, %c1) : tensor<?x?xi8>
        %1110 = tosa.tile %137 {multiples = array<i64: 2, -2>} : (tensor<?x?xi8>)  -> tensor<2x?xi8>
        return
    }
}
```
The above MLIR program will cause a crash when using the following command:
```
mlir-opt --pass-pipeline="builtin.module(func.func(tosa-to-linalg))" test.mlir
```
And the crash backtrace is:
```
<unknown>:0: error: invalid tensor dimension size
mlir-opt: /data/tmp/v0827/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:179: static ConcreteT mlir::detail::StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT, Traits>::get(mlir::MLIRContext*, Args&& ...) [with Args = {llvm::ArrayRef<long int>&, mlir::Type&, mlir::Attribute&}; ConcreteT = mlir::RankedTensorType; BaseT = mlir::TensorType; StorageT = mlir::detail::RankedTensorTypeStorage; UniquerT = mlir::detail::TypeUniquer; Traits = {mlir::ShapedType::Trait, mlir::ValueSemantics}]: Assertion `succeeded( ConcreteT::verifyInvariants(getDefaultDiagnosticEmitFn(ctx), args...))' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /data/tmp/v0827/llvm-project/build/bin/mlir-opt --pass-pipeline=builtin.module(func.func(tosa-to-linalg)) test.mlir
 #0 0x00005599061736ff llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x15266ff)
 #1 0x0000559906170774 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f90d40b2420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f90d3b7f00b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007f90d3b5e859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007f90d3b5e729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007f90d3b6ffd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x00005599094ae6e6 mlir::RankedTensorType mlir::detail::StorageUserBase<mlir::RankedTensorType, mlir::TensorType, mlir::detail::RankedTensorTypeStorage, mlir::detail::TypeUniquer, mlir::ShapedType::Trait, mlir::ValueSemantics>::get<llvm::ArrayRef<long>&, mlir::Type&, mlir::Attribute&>(mlir::MLIRContext*, llvm::ArrayRef<long>&, mlir::Type&, mlir::Attribute&) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x48616e6)
 #8 0x00005599094ae9ad mlir::RankedTensorType::get(llvm::ArrayRef<long>, mlir::Type, mlir::Attribute) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x48619ad)
 #9 0x000055990822ca0a mlir::tensor::EmptyOp::build(mlir::OpBuilder&, mlir::OperationState&, llvm::ArrayRef<long>, mlir::Type, mlir::ValueRange, mlir::Attribute) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x35dfa0a)
#10 0x0000559908ba1b68 (anonymous namespace)::TileConverter::matchAndRewrite(mlir::tosa::TileOp, mlir::tosa::TileOpAdaptor, mlir::ConversionPatternRewriter&) const TosaToLinalg.cpp:0:0
#11 0x0000559908b8dc63 mlir::OpConversionPattern<mlir::tosa::TileOp>::matchAndRewrite(mlir::Operation*, llvm::ArrayRef<mlir::Value>, mlir::ConversionPatternRewriter&) const (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x3f40c63)
#12 0x000055990939872a mlir::ConversionPattern::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x474b72a)
#13 0x000055990c47b1f0 mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x782e1f0)
#14 0x00005599093a1b5b (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#15 0x00005599093a323e mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x475623e)
#16 0x00005599093a74cb mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x475a4cb)
#17 0x00005599093a8ac9 mlir::applyFullConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x475bac9)
#18 0x0000559908b79f98 (anonymous namespace)::TosaToLinalg::runOnOperation() TosaToLinalgPass.cpp:0:0
#19 0x00005599092ff511 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b2511)
#20 0x00005599092ff8e9 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b28e9)
#21 0x00005599092ffc5c mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::'lambda'(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&)::operator()(mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo&) const Pass.cpp:0:0
#22 0x00005599092fea65 mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b1a65)
#23 0x00005599092ff296 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b2296)
#24 0x00005599092ff8e9 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b28e9)
#25 0x0000559909300a14 mlir::PassManager::run(mlir::Operation*) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46b3a14)
#26 0x00005599092f16bb performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#27 0x00005599092f2084 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) MlirOptMain.cpp:0:0
#28 0x00005599092f2234 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::'lambda'(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#29 0x00005599093f91fe mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x47ac1fe)
#30 0x00005599092e9ad9 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x469cad9)
#31 0x00005599092f23a1 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46a53a1)
#32 0x00005599092f2866 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x46a5866)
#33 0x000055990608d6eb main (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x14406eb)
#34 0x00007f90d3b60083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#35 0x0000559906146b0e _start (/data/tmp/v0827/llvm-project/build/bin/mlir-opt+0x14f9b0e)
Aborted (core dumped)
```
My git version is 9007864f72d07ee26d710fc10b1f918c628affa0.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltzozj2_zTKiyouIUDAQx6ci-ufqk4lleS_r6kDCKxpLLGSSOL59FsCHAOO3U6Pp2d2arvcMdblXH7noiMhMEaUkvMLFF6i8PoMGrtU-uINZLlWsvzNg7NU5euLW7yEV47tkuNCVZV6E7LEd99uH3GtValhhfw5IteIzC03draqhP5oQYz0n_bnSuVNxTGKLrvfuGhkNnN_MAqI-_YQjRFNBkP6f4iGmYeRf41BC7ucZUoaC9Ji1zjHQub8vZ-BaOj5UTvWcmmUnvFVbdct5dBxuML9Q9LO7QYh_wr5i3f3X8TIv9lh73ke6YgqAzMrnCI9p-hy1VRW1BU3vYga1si_EixwDKhjeU4d0ei6ZYlovIcrTTA-R_7NViq6TybNbaPltg1F1z3qHw9j-J-XHEOqXvnIfPhNVBXOoDEcA840mCV-W3KJG-MsPbZ7plYrkPleA1dCn6va4vPzGow5r0XNKyE58q8RpWkjKivkrHMDROMP8zs8lIFzq84rIaEqEU3aD8Vbp_qM4VzmrYSd2Clk362GjGNh9omI_KtGfpfqTTpA_Tlx9uBaO6ydH71CJfIefZyLFZdGKImN-J2PdezsuMjBAqILu6oRXbySmEaILqrqdXVea_Ubzyyii1Z8uhAyq5qcbxtuHxFdPFmloeT_L8W_G66fmrpW2s6WyJ97UeKYGAtWZPhKyUxzy5_xJsT8ec4tiKp73tAxXF-C4ci_-pjh_M-1tQ_9uPa5Z9o-P2sQ1nSgIH9ecotovGXlXOZKScvfLaJzN2GuS4MoQ5Th2WzWRlN4-Sbssu1pAwFFlw6KjsLcRcUjL5B_VSlZYiFt6_HMEdsyel7XfKdxbq0WaWPbnuga-ZcDPByn7dBHkN95_twasKXlX3bKT8aNR2xQmQwaAjwl3E9xszc4HpjtZvTD3IwO7Q1I2ylPS6h53knVTnPjxlj8C6qGP_EVSCsy49AIr52fzI3h2jpnRYyYJss4z3mOaLyFqiPwyrUo1rfyFbQAaQ2iccntNS-gqey1gFIqY0V2sxJ2IRGNM_veBuMVBl2aztbtJ8IFiIrnsy4yHr7dzJ9usGnSlbAYcNqUWHPnztgqvLS2bqOSLhBdlMIum3SWqVUfLrtRI4xpuEF0gUHmuA-ez6K9Z_9kIfuO82ZVf8Q-mXWp8qFPdaDLZsWdyscHr8taufsWso_cPRnuy-ltmtswoj7B5J0QQsIwSQjzIp8VBd7GkFmb7uFBC2lbjZ8dBIjG20Ea3l6UsZrDqg8kF2ouPt0S-AeURvSSvHshZawonAofUnsTqUkUBfhJlBKq_wOZV1wjGvdCdM1mltV1n37JlhDtCUVFQvKApDSgBL-8aG6s0vxF216HSqSILt5j9sICh2nzfl7Kpuuo7VJzyGdGzUgncRBQMpLXH7Lx06ggJMUahOFH0M8cZdZSDnxC0hHlYEw55HGYuEX3KMkHlCmNw2REOZxSjj4sejTNiI5psjFNVhQ5-xpN3y9yNqIZDX0hCYAzzg6k56NXswMZfrx-7Gk_JpXvnTDM3qNBX8_XwwXWv9q7PP7c0ugmHVy0T8zvVEkliJnH-NiR4qkjJZAfXOe3ZcthLXdV3KPfCZVLIB8plwyViynNgMBAiE31755v3O7lvu5-9GwGNr6vL12bc8yJpe5rrsEVBE8W7MaQfwSa1pMfQU4j5fSQ-WFeAIEPyNwaM1oa4xS8lMWOG0gl1yvVGCxhxU3dLodJr4Oo-JWSr1xb3gu7Apst5zJ_5G9aOJEHWLpVejvxvh6rOe2d51BbNUkIHTe3Z3gAa7mWPR_dh0u7ccXPysCz-tYWA7srodPWG2sb5xnzR7bdYTTKkTuabNLOIfU_HOZQspi4w47bHAfAabykCEjG_JGX0FHW8JM4onBIuq-jsu350xUMoiCN6DgM_KGCWRClXkF2ZZrXdSUysOoIr_-agkO3cMWtm_iiW9dIlarwiHRPoMOkw6d3mL1EXpXI_zCRbcc3VYoMqkdumsoeR_dEOSyKKfcKMjJeMPZO8NIw_VEO-zDPN15CJX7fJLKq_3mkLX8Ul9cCKp7Z7bDP81I40cCnPv9szZlk3az7OZL1sESfrmStVqdalqOQUZ-P7MMm2kVBlh6v3Ue32VeD7FHphF4XRCEEWTrSKppoFUOWDLSCuq7Wi6aqtgb5sk89gy65HYTScNhCq9_5xrq9rZ_2jt4SvVKyEOUpoUkhS0bQxONlNkqK5MdFxWDx7nfcjbyXA5jaM-zhsAcwn-x4nQCjQjChRRF63p5NyH39rO5rR2pTeWyYT9KaMTuW2m_DuYRqbYS5Awllt71xedx9N7J9RZCf9PwgYCkNPW9oBUqmIMQ8-TIID5ujmLHvuqEfuh3MKz-Fyni5NOZWGqvbQyZXGe6sp8MBHeeuo5f9ATSX9lYWahMcJ8x3LKUxH7k_9abAZ2H2ZeAHrj83a5ndruoK0bjDq48ZRKMKVmkOyEkd_xks7uuHO4fcZiV3baqd5SwRt2duv4BxX__tjXhKJ5hzYOGJMT-Zw3jAwpHD-FOHoQn7x6crmrARCMH_0tVfk64mxSch4AUTeTcIfOprf04dyVIfvGAkKJt4iMfSFNdcF0qv5tluibh7ZG9s3nWZJWiev9RWj_Y1T6rRGb8rNfJv9hRSu6d_g75K6Pva3oHoq6zhLggPej_PYdFEP0riANdaZdyYy6Yo2gP_o9Rr2lPVHfXu-Erp9YbUYHzevaZ6yXnFLd8_x7_ZOZk4pPNwXL8TeuSlMFavd3a9z-37hQelqltpuS7a2nB-FG7xFDfqB3jfZvVndre_Dtf91k0-DpsyqKoUsu8vxfh0aoDT39BPPrf_kbHzabnzt7EKjduj3l8K7AGRfhww4-2RXyReMTxuMHUl7FzmD5PU81do918YpAdHDPuerBayfOTF3uaT7dEh84rRoYw_2R3yBPLk83D8pyWTUxUoSQb5qJLypxs_6oO3F9O-csyW0NWI8686x48AOZmiEPowOlrwp7stGjN2EkV_mUYxG-0-_NEWjJE4ZzzFKxDyRPc7goAwPjpAnN5qYITEPn55qUSavRgL2r4M-B97GyEg8ejVjR-Ob5EELCUcd_RPpVqRpGSbXOap0pa3bxsypXl7d4hv39NObg7erXEpLO7PJrEwOCEkillQRDQnEeeU5ZFHiswjqVckXpwxGkNRAJmd5Rd-nvgJnPELL6JBRCljydnygqaMU5a5yjCFMAmCNPf8InPUkiBk9ExcUOKQohHx_ChIZrTI3cjUi2nBeRCigPAViGrmYJgpXZ6196YuPMI8Fp1VkPLKtHd8Ke2uHVIUXp_pixa2tCkNCkgljDVbClbYqr0X3E4Ir_HV9Fboye53njW6uvj5q2G9lq8X9D8BAAD__6--tGA">