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

    <tr>
        <th>Summary</th>
        <td>
            opt -passes='dfa-jump-threading' crashing with Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' failed.
        </td>
    </tr>

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

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

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

<pre>
    llvm commit: 3758aed31a512d921
Reproduce with:``` opt -passes='dfa-jump-threading' bbi-85425.ll -o /dev/null```
Result:
```
While deleting: i16 %div
Use still stuck around after Def is destroyed:  %e.addr.0 = phi i16 [ 0, %entry ], [ %div, %lor.end ], [ 0, %si.unfold.false ]
opt: ../lib/IR/Value.cpp:103: llvm::Value::~Value(): Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: build-all/bin/opt -passes=dfa-jump-threading /home/uabelho/bbi-85425.ll -o /dev/null
 #0 0x0000559fba6af4d7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x2e7f4d7)
 #1 0x0000559fba6ad02e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x2e7d02e)
 #2 0x0000559fba6afb9f SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f87f8a2e630 __restore_rt sigaction.c:0:0
 #4 0x00007f87f6175387 raise (/lib64/libc.so.6+0x36387)
 #5 0x00007f87f6176a78 abort (/lib64/libc.so.6+0x37a78)
 #6 0x00007f87f616e1a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
 #7 0x00007f87f616e252 (/lib64/libc.so.6+0x2f252)
 #8 0x0000559fba10944c llvm::Value::~Value() (build-all/bin/opt+0x28d944c)
 #9 0x0000559fba108f07 llvm::Value::deleteValue() (build-all/bin/opt+0x28d8f07)
#10 0x0000559fba074042 llvm::Instruction::eraseFromParent() (build-all/bin/opt+0x2844042)
#11 0x0000559fbb15efdb (anonymous namespace)::DFAJumpThreading::run(llvm::Function&) DFAJumpThreading.cpp:0:0
#12 0x0000559fbb15cb0e llvm::DFAJumpThreadingPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x392cb0e)
#13 0x0000559fba8bf68d llvm::detail::PassModel<llvm::Function, llvm::DFAJumpThreadingPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x308f68d)
#14 0x0000559fba0e7484 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x28b7484)
#15 0x0000559fb8531c6d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0xd01c6d)
#16 0x0000559fba0eb86e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x28bb86e)
#17 0x0000559fb8531a0d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0xd01a0d)
#18 0x0000559fba0e6614 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x28b6614)
#19 0x0000559fb81453b3 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (build-all/bin/opt+0x9153b3)
#20 0x0000559fb8152879 main (build-all/bin/opt+0x922879)
#21 0x00007f87f6161555 __libc_start_main (/lib64/libc.so.6+0x22555)
#22 0x0000559fb813f550 _start (build-all/bin/opt+0x90f550)
Abort (core dumped)
```
This is old, it happens ever since the introduction of the dfa-jump-threading pass in https://reviews.llvm.org/D99205 .

[bbi-85425.ll.gz](https://github.com/llvm/llvm-project/files/12396130/bbi-85425.ll.gz)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWF1z4ygW_TX4hYoKISGhBz84Sbu2d6drU92Z2UcXElc20whUgJLJPOxv30Ky3ZbjzsfszH5MlbttCzj3nnMPOFzhvdoagCVi14jdLsQQdtYtO_VVgN5Z3YFZ1FY-LbV-6HBju04FlK1wVjIuQGapYCmVFU0RuUVk9Rl6Z-XQAH5UYYeyFSrI9MK2D_iqF96DR9ktoqVsxdXPQ9dfhZ0DIZXZIlriulZXnOWUJVrjK4sRXUt4QHRtBq2PaIdoftAxnenr2eg_dkoDlqAhROxshVVaYESZVA_TjB89YB-U1tiHofmKhbODkVi0ARy-hRYrjyX44OwTyAgQV0MipHQJwSi7xf1OTajsGhNEb8YJJrgnjNjt-J1dH0JOo9q6BIw8HT8s9CoZTGu1TFqhPYxTxjxtP2qeJIiutaoRXX_8jOj6J6EHSJq-R9kqJVmcEqsU9chW4-D08Z_TZ8oRreKklffggrIGo4J0IoBTQqtfQW4GDxvo-vA0TcaIFohGzeiPHjx20All8OMODBb4IaLOJaIpojRWsRVKg0ym9O9--LD68gH7oe5UwALXwxY76K0LOFi8C6H3MVG6RnS9VWE31Elju8g1spnernpnf4YmILpW3g_gEV1jYSRWptGDBBx2gBsn_A7XovkanGhgH_5LEM1XLIeuPzqFJIhUd85uneiwcNuhAxNiErgelJZXQmtE17UyiK7nvn1u2ujQne0A0fUg6rhp4tIXXTzmgBHNCCa_EEIIY1Vbi0K0uSxPauif_PThzikTRh73kRii_NskJx431gcHohvLdYOVCVPx-EU2iF6TXyiUMVh0xDGb9CwbSShcyubzYL6orRH6L8JIDc4f3fJywIg3C0jP6ddVi2fQiPI9m-mx39udjP-OQNkeqGx52XJBocgI3mwc-GAdbFzAXm1FEz2fNM-X56fLi7RkGS-xEyruwUgtbroin96bxNukGCllRcbnCrIzoEKUHIs6Ov1FoFKUfAZUzIEKSEWBNxsx7txN3F2bWrySHm1TUcxQy3NUyugrEJTRGQSflSwlVZ43r586r1iDywgzi1OdxeEtKS_HGQ94eE-wiHUMFn0_34akzElOT4J9ND64YXTP9ACc8LB2trsTDqI93xI2j6izsLP9VqcMWllHFGGseers4LERHfh-3PHVFPp2vfrr0PX3x5_M6QwYzOxMWA9mSjceCBU-X_R8E8V06Fk6TU1Ot_85yJ3w_g3Rb04gVkboJ6_8J2HEFhzKbi4syj7ss35Rz6yiMb-ZntmsjLxuCy5PoksIQun9gSq8_2Ql6Ms5zLK-SHw2486BB_cAciII_rfRjq__mp6ER7lmeubzbQFlzvNT1lHDlyL_34lAeR05zkRgpyJwlqVN8XuY6g8T789mTEmi4rOSFGe-rHlxelB9snLQcG8PgaLUKyn6YN1lGtOCd5HYL3mzrWKKMw7lua0EeZ-tDknfvJH57-WLb8y_54o_Wk5JolgzNfmZI4oifctJdUnD_23ulNeR24z87E8lnuYsq7OT2G4YfXCnetDKzO8OX4JTZvsZ2ks-esbiXrgthE-i2Y04q0ujP6jaCff00bT2Y9fr57Os1X8fQj-EtdIXQP6t4e_QWTknnuLTU9lHTfSwVebZqWn7sAnW7rffFO9vysiXZv0ETrUK3GFeHUfe_f5K9as01va0-JTMi88oLys83tJfRqJx4gwpPbscpIwxvNnEC8HGB-HC5gD7_esCZYzNQOk8vaxljOAJ7pUESZx6xFod7lCNdTDe5eHkBJj3fe53ymPlsdVjJVTAO9H3YDyGB3DYK9NM7QJlwtisGlshth2fXbjfx7s_VuasUeHgQcGjT6IhEuu2iK5vq4oShvdth_3_7Pq0F5Bsfx0bP_zdXY9W6bHpkdKsKtKMnDUZIvBBj4VcZrLKKrGAZVpUtKCU8XKxW2YlNPH3s8zKRlLBOW8zzmrBKyZ5KbKFWlJCM8JpmlJW0DIpqkJyInOepzQtGEM5gU4ofaS9GLsxyyLnBVloUYP2YyuRUgOPeBxElCJ2u3BjC_GqHrYe5UQrH76JtwgqaFi-sUU4tnliZR5V2P0Hu1mLwenlb29XjRr9KwAA__-XIG0z">