<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/118772>118772</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir] -convert-ub-to-llvm crashes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wwy6191
</td>
</tr>
</table>
<pre>
git version: adf892d743d91afc1af7893f97c770db31c26916
system: `Ubuntu 18.04.6 LTS`
reproduce with: `mlir-opt -convert-ub-to-llvm a.mlir`
a.mlir:
```
func.func @test_subi(%A : tensor<?x32xi32>, %B : tensor<?x32xi32>, %C : tensor<?x?xi32>) {
%0 = arith.subi %A, %B : tensor<?x32xi32>
%1 = arith.subi %C, %C : tensor<?x?xi32>
return
}
```
stack trace:
```
mlir-opt: /data/szy/MLIR/llvm-release/llvm-project/mlir/lib/IR/BuiltinAttributes.cpp:1346: static DenseElementsAttr mlir::DenseIntOrFPElementsAttr::getRaw(ShapedType, ArrayRef<char>): Assertion `type.hasStaticShape() && "type must have static shape"' 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/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt -convert-ub-to-llvm /data/szy/MLIR/seed726/tmp.Wn2nlKqwzv.mlir
#0 0x0000559b2714c048 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1188048)
#1 0x0000559b27149b5e llvm::sys::RunSignalHandlers() (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1185b5e)
#2 0x0000559b2714c9dd SignalHandler(int) Signals.cpp:0:0
#3 0x00007fdcba866420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#4 0x00007fdcb9ea300b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007fdcb9e82859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007fdcb9e82729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007fdcb9e82729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007fdcb9e93fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#9 0x0000559b2a67b46a mlir::DenseIntOrFPElementsAttr::getRaw(mlir::ShapedType, llvm::ArrayRef<char>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46b746a)
#10 0x0000559b2a67a276 mlir::DenseElementsAttr::get(mlir::ShapedType, llvm::ArrayRef<mlir::Attribute>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46b6276)
#11 0x0000559b2a66d659 mlir::Builder::getZeroAttr(mlir::Type) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46a9659)
#12 0x0000559b2734c678 mlir::arith::SubIOp::fold(mlir::arith::SubIOpGenericAdaptor<llvm::ArrayRef<mlir::Attribute>>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1388678)
#13 0x0000559b274384ae llvm::LogicalResult mlir::Op<mlir::arith::SubIOp, mlir::OpTrait::ZeroRegions, mlir::OpTrait::OneResult, mlir::OpTrait::OneTypedResult<mlir::Type>::Impl, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::NOperands<2u>::Impl, mlir::OpTrait::OpInvariants, mlir::BytecodeOpInterface::Trait, mlir::ConditionallySpeculatable::Trait, mlir::OpTrait::AlwaysSpeculatableImplTrait, mlir::MemoryEffectOpInterface::Trait, mlir::InferIntRangeInterface::Trait, mlir::arith::ArithIntegerOverflowFlagsInterface::Trait, mlir::OpTrait::SameOperandsAndResultType, mlir::VectorUnrollOpInterface::Trait, mlir::OpTrait::Elementwise, mlir::OpTrait::Scalarizable, mlir::OpTrait::Vectorizable, mlir::OpTrait::Tensorizable, mlir::InferTypeOpInterface::Trait>::foldSingleResultHook<mlir::arith::SubIOp>(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x14744ae)
#14 0x0000559b27436840 mlir::RegisteredOperationName::Model<mlir::arith::SubIOp>::foldHook(mlir::Operation*, llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1472840)
#15 0x0000559b2a72dd2d mlir::Operation::fold(llvm::ArrayRef<mlir::Attribute>, llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4769d2d)
#16 0x0000559b2a72e0d3 mlir::Operation::fold(llvm::SmallVectorImpl<mlir::OpFoldResult>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x476a0d3)
#17 0x0000559b2a66e45a mlir::OpBuilder::tryFold(mlir::Operation*, llvm::SmallVectorImpl<mlir::Value>&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46aa45a)
#18 0x0000559b2a5e845c (anonymous namespace)::OperationLegalizer::legalize(mlir::Operation*, mlir::ConversionPatternRewriter&) DialectConversion.cpp:0:0
#19 0x0000559b2a5e7827 mlir::OperationConverter::convert(mlir::ConversionPatternRewriter&, mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x4623827)
#20 0x0000559b2a5e89ff mlir::OperationConverter::convertOperations(llvm::ArrayRef<mlir::Operation*>) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x46249ff)
#21 0x0000559b2a5eebbb mlir::applyPartialConversion(mlir::Operation*, mlir::ConversionTarget const&, mlir::FrozenRewritePatternSet const&, mlir::ConversionConfig) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x462abbb)
#22 0x0000559b29f7cfcf (anonymous namespace)::UBToLLVMConversionPass::runOnOperation() UBToLLVM.cpp:0:0
#23 0x0000559b2a5887a6 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c47a6)
#24 0x0000559b2a5890d0 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c50d0)
#25 0x0000559b2a58b6a2 mlir::PassManager::run(mlir::Operation*) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45c76a2)
#26 0x0000559b2a583f4a performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) MlirOptMain.cpp:0:0
#27 0x0000559b2a583b9d 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&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) MlirOptMain.cpp:0:0
#28 0x0000559b2a62fd75 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/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x466bd75)
#29 0x0000559b2a57db85 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b9b85)
#30 0x0000559b2a57de2f mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45b9e2f)
#31 0x0000559b2a57e15e mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x45ba15e)
#32 0x0000559b2712cb37 main (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x1168b37)
#33 0x00007fdcb9e84083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#34 0x0000559b2712c6ae _start (/data/szy/MLIR/llvm-release/llvm-project/build/bin/mlir-opt+0x11686ae)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWltT6zgS_jXmRUXKlu8PPIRAdqiFgQJmtmpfUrLVdrRHkT2SDOT8-i3JTnwh3M5OZnbm1AHiuFvd39etVks2UYqVAuDMCc-d8OKENHpdybPn523kpd5JVtHtWck0egKpWCUcf44ILZIU0zjwaeqRIvdIESepX6RxHscuzXwvx1HqRY47d9y52ioNG6PnRO4vWSN0g7xk5gazCF0_PjiR28pJqGVFmxzQM9PrTn7DmTytao3QaV6JJ5D6tMlOdXXK-dMGITIzAvshHHfefWO03bm5Yf-bi6IR-cz8Qk7galB6pZqMOThxcDhHRkODUJV0_IXjL198_MJ87PiXDl4gB4fnH4ssXouYn51Mipz43HHnyMi6yPEvEJFMr2fGD_Pd_DOmOn3vgP7iU36YASToRgrDUHzRUTekSmmSf0Nakhwcf35AYBcWyzNeUqKJg5fq-9bBy5vrq3sHL02ATiVwIAp2l7Ws_gO5dvDSBgkvOcscvLTy5w3jmom51pJljQY1y-va8eeeH0TGjNJEsxxdgFBwyWEDQisjjLp4O_7c3rsS-lYu74Yi7d0S9D15dnDysCY10MdtDYavuZRkew-F4y_yNZFtpIzBuVIgNauEyUO9rWG2JurBemFHsJmTIgdHDo6Qg7GRQZtGabQmT7BzWLWy2MExKgjjQGeOO7-7vpw_XCLVZBumEUFZUyIJdSU10hVaa10r4zVeOnhZMr1usllebToeX9PJlGpAOXiJiKCIiZw3FJBeA8olUWuUkfybDaex_WCjS5tN3QbXnSH7705WpSQbRGTZWO5-OLpZwzg1f5noYm3n8KEp_Mb4CoDGhtml3tSzfwks-D9_e_7-1M5u1_jlu8h9cV3XDcM0w7EX5G6QIMuPjbfaqvbDnWRCW9CPNqNx0gtJ8ryqlJZANjaQC8SEbsOa_I7QHXzuvnhekriBSZoOgDcBkGYhHAJw34gHVgrCfyKCcpBqn3rH8DHMQuh9xFOSU0rRyBsHJx1n7de7ievan3YUvxslLmiekSSKAuyi1UqC0pWEldQdlrYevCTRKgpOORPNy2kpmvZGrdcSCJ2paua2vgYBdntPg6GNFIjvuhmShClAA8wlZ1l-ep1fYfdlf4lnvmcotP47eDmbmautolCbSdUI9tJ-8WRdEY25tEPPcsefh56pU50b4diNBCdhikhWWYyfc0PTlgerZS0kxkLcWYimFmKcohL0qvV4paA003f1RHjzaexMaIOcV4RuVJmT1m7omlKYdIbjQ4ZXgq-M1opWG8LE_2YvjU3W-EFnMBkbTP2CRp_IlNzkSGRzxDcqfY6kw2wmUZwFEfn6AtIrjJeSfuoeXFSOMV-DKIuDiLQITUlxJwgJjqMpwoPQvoqrF94v2UeFGeE46mF6Y5gRjcJ0ANM0ExR6cP8GWVm0Q5AtvCP5S9IoTHt_x2XUD_IoTgb-2j6uo77Jrm7r9nNRGQPJO3L_AAGS5XNKam2bva_E6mjh8vwkieKkh--P4Ad-EpDhSnddlSwn_B5Uw_WAFsPD4j2W8GIk_SgJ0-2Fifg9lKwS6h2pWwGt0fdlTKbQTnDokM0gQ6S5uNrU_AOHHpo8B6Uq-Z5PP9_WIImgyvEXuPns8Lf1lXgikhHTt43Ezrca8oqCkdAgi66p9-et9kh2UQnKTM9LON8-1JA3nGiS8bc1Rk7M-TPZqqGe8fqA1g1sKrm9LArI9Wf8uhIFyCuh74ko4WPxQaLMzUejUYK8fQJZ8Op5yUmpPh5lBO2BbGAXmLnokmFXIHudXyHXlfxFyIrzzwAb2ejq8jNT8J4nOeFEsu82LG-LtZ58KPZod4mHxCznBuEbOHaJaYrUAxMl76bST1X17YNpawpPMnQIJDFZ5-D5l9ebofjDhnDeArfTZah1Wy8rvp_El7bbP07xC-IgINAXv2BS_KIkcAc8myqlNEigex5-JpuO6puKAv-YzX0gLPl_a25xErg9t-GoD4gxpZiiQ-iH6-lfm4MgjlKKac9BNOEAXOp_gYP_F1DEpX4PKp40eBCEZARq1OJpuV1Oe6W3M_89xL-aTdNxoUaEBOGgZU9GUENIgjA3homoxHZTNQoJsgFV27OLdALuGkrC2fcdEby7fJeJ0XrfneveEa1Bint4lkybTb2Ff8EIh1z3YpO9vXE_nbgfJzg-lH7tIHrnaXcWNHL0fXcWB5PaQDpSnLCf4HgfJ-xO45QWxeeB7m-rjyvQCN0RN1U4SIuiB-hNAEKWZcOuqq759o5IzQjvI_XlTHsksgSN8koo_SquS1l9h13YuyR4eFO6H3RRiYKVxyOKZFnWEzXazaVFnBd58dGM_eX8sbq-_vVmmOOqO-CTjbgVA-7s6d5O4fWUw_44UEkSk-Emn4ImjO-bveq2Nqb2e8TO4ihw1pdpzN6O5lwQvlVM3RBBSjM9FyirKrs_aYR9nkSPeJAahHkQk_40AAcTPlKXul_m447VwJmYlk4juof5bhX6IYKGSsbUlVBa2uP3Sr4adSwwWNR3vt8RCUJfiaLazZijVccwD13ad2I4nMQgiwieuL4j42AG_hEVPczjiODe52jis18EBNUgi0pu5vnrYv36aYHStL2l1kQCXdV6fAjzUDUyh5tSOv7lG0XMoFpUQsOLfhXwG87kba1vCOsq3GCMFA3uHigS8RRcltI3z1z674tGWOQraReltxQcnOyxN4L91sAr7O0m_7wpinYC7OUpFKThekWBg-my39LpjqiGrds0Aul-95MTzjOSf1sVYrSWDkj6bCyPjmdwHts2WO0eUG5fJ8d7CdCKODhYue2Wmlei_GORvBOZD9Jz3PVGuKBxOACuas70XNA7WeWg1M7XPyXp_oJT4l2J0V5ISyZK04C-9fWRWqooo3HYl-LJLiKmWRIengd_t1l8nJUuS7Okp9d3p_QCLt6kt2tM7JMrsyJNt88fpsxH3BwNM-B-O-NPtjMxeCH8Lpj_HHDEC_tDxelzeZxnfoy6B7BHeCsgSjK_3wqPn-enkARu4qPVirMsXylNpF595VlwrprdQ_f2o71px7FPhf0Am9-d7WCKPCKAWqvHwh7tj3P3L0Gd0DOfpn5KTuDMi33fT10vDU7WZ5nn-WFcBC6JvALHLvEh9DOIY6AU8jg_YWfYxYGH3dBNvcgPZjFNvCjy3ST1aOD5qRO4sCGMz4yTs0qWJ_b1njPPS-IYn3CSAVf2dT2M2_eosBNenMgzCyprSuUELmdKq34EzTS3r_hZhfDi4Ls49l0hUCeN5Gc__gpS5-bTGf5vAAAA__8KJXnD">