[PATCH] D117951: [SLP] Optimize reschedule of previously scheduled bundle member [NFC]

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 3 08:43:57 PST 2022


ABataev added a comment.

Currently this patch crashes the compiler for SPECCPU2006:

  0.      Program arguments: clang++ -DNDEBUG -march=native -O3 -fomit-frame-pointer -flto -DNDEBUG -w -Werror=date-time -save-stats=obj -DSPEC_CPU -DSPEC_CPU_LINUX -DSPEC_CPU_X64 -DSPEC_CPU_LITTLEENDIAN -DSPEC_CPU_LITTLE_ENDIAN -DSPEC_CPU_LP64 -save-stats=obj -MD -MT External/SPEC/CFP2006/444.namd/CMakeFiles/444.namd.dir/Spec2006/benchspec/CPU2006/444.namd/src/ComputeNonbondedUtil.C.o -MF External/SPEC/CFP2006/444.namd/CMakeFiles/444.namd.dir/Spec2006/benchspec/CPU2006/444.namd/src/ComputeNonbondedUtil.C.o.d -o External/SPEC/CFP2006/444.namd/CMakeFiles/444.namd.dir/Spec2006/benchspec/CPU2006/444.namd/src/ComputeNonbondedUtil.C.o -c Spec2006/benchspec/CPU2006/444.namd/src/ComputeNonbondedUtil.C
  1.      <eof> parser at end of file
  2.      Optimizer
   #0 0x00000000066b57e3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (clang+++0x66b57e3)
   #1 0x00000000066b345e llvm::sys::RunSignalHandlers() (clang+++0x66b345e)
   #2 0x00000000066b4b0d llvm::sys::CleanupOnSignal(unsigned long) (clang+++0x66b4b0d)
   #3 0x0000000006612c43 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
   #4 0x0000000006612e1e CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
   #5 0x00007fe8e1199b20 __restore_rt sigaction.c:0:0
   #6 0x00007fe8dfc7a37f raise (/lib64/libc.so.6+0x3737f)
   #7 0x00007fe8dfc64db5 abort (/lib64/libc.so.6+0x21db5)
   #8 0x00007fe8dfc64c89 _nl_load_domain.cold.0 loadmsgcat.c:0:0
   #9 0x00007fe8dfc72a76 .annobin___GI___assert_fail.end assert.c:0:0
  #10 0x00000000068ee7c4 llvm::slpvectorizer::BoUpSLP::scheduleBlock(llvm::slpvectorizer::BoUpSLP::BlockScheduling*) (clang+++0x68ee7c4)
  #11 0x00000000068ec5bc llvm::slpvectorizer::BoUpSLP::vectorizeTree(llvm::MapVector<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u>, llvm::DenseMap<llvm::Value*, unsigned int, llvm::DenseMapInfo<llvm::Value*, void>, llvm::detail::D
  enseMapPair<llvm::Value*, unsigned int> >, std::vector<std::pair<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u> >, std::allocator<std::pair<llvm::Value*, llvm::SmallVector<llvm::Instruction*, 2u> > > > >&) (/clang+++0x68ec5bc)
  ...



================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:2613
+        // If BundleMember is a vector bundle, its operands may have been
+        // reordered duiring buildTree(). We therefore need to get its operands
+        // through the TreeEntry.
----------------
reames wrote:
> ABataev wrote:
> > `during`
> Comment copied from existing code.  I will fix both in a followon commit.  
during


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

https://reviews.llvm.org/D117951



More information about the llvm-commits mailing list