[PATCH] D140580: [SLP]Do not emit many extractelements, reuse the single one emitted.

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 2 14:21:41 PST 2023


anna added a comment.

This patch caused multiple crashes with cast assertion failures. Reverting it locally fixed those crashes. Still working on reproducer upstream, but here is the backtrace:

      at llvm/include/llvm/Support/Casting.h:579
  #11 0x00007fbf46981c22 in llvm::slpvectorizer::BoUpSLP::<lambda(llvm::Value*)>::operator()(llvm::Value *) const (__closure=0x7fbeae7eedd0, Vec=<optimized out>)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9666
  #12 0x00007fbf469a2522 in llvm::slpvectorizer::BoUpSLP::vectorizeTree (this=0x7fbeae7f00f0, ExternallyUsedValues=..., ReductionRoot=<optimized out>)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9822
  #13 0x00007fbf469a49af in llvm::slpvectorizer::BoUpSLP::vectorizeTree (this=<optimized out>)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:9569
  #14 0x00007fbf469b913a in llvm::SLPVectorizerPass::tryToVectorizeList (this=0x7fbe646f6f48, VL=..., R=..., LimitForRegisterSize=false)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:11494
  #15 0x00007fbf469baf44 in llvm::SLPVectorizerPass::vectorizeInsertElementInst (this=0x7fbe646f6f48, IEI=0x7fbe647ec6b0, BB=<optimized out>, R=...)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:13048
  #16 0x00007fbf469bb8b8 in llvm::SLPVectorizerPass::vectorizeSimpleInstructions (this=0x7fbe646f6f48, Instructions=..., BB=0x7fbeadc26100, R=..., AtTerminator=<optimized out>)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:13199
  #17 0x00007fbf469bd1a7 in llvm::SLPVectorizerPass::vectorizeChainsInBlock (this=<optimized out>, BB=0x7fbeadc26100, R=...)
      at llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:13508


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140580/new/

https://reviews.llvm.org/D140580



More information about the llvm-commits mailing list