[PATCH] D74511: [BFI] Fix missed BFI updates in MachineSink.

Hiroshi Yamauchi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 15:45:28 PST 2020


yamauchi added a comment.

Here's a sample stack trace:

  ********************
  Testing:  0.. 10.. 
  FAIL: LLVM :: CodeGen/AArch64/arm64-addr-type-promotion.ll (7419 of 35971)
  ******************** TEST 'LLVM :: CodeGen/AArch64/arm64-addr-type-promotion.ll' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /bfi/llvm-project/llvm/build/bin/llc < /bfi/llvm-project/llvm/test/CodeGen/AArch64/arm64-addr-type-promotion.ll -mtriple=arm64-apple-ios3.0.0 -aarch64-enable-collect-loh=false | /bfi/llvm-project/llvm/build/bin/FileCheck /bfi/llvm-project/llvm/test/CodeGen/AArch64/arm64-addr-type-promotion.ll
  --
  Exit Code: 2
  
  Command Output (stderr):
  --
  llc: ../include/llvm/Analysis/BlockFrequencyInfoImpl.h:877: const BlockT* llvm::BlockFrequencyInfoImpl<BlockT>::getBlock(const llvm::BlockFrequencyInfoImplBase::BlockNode&) const [with BT = llvm::MachineBasicBlock; llvm::BlockFrequencyInfoImpl<BlockT>::BlockT = llvm::MachineBasicBlock]: Assertion `Node.Index < RPOT.size()' failed.
  Stack dump:
  0.	Program arguments: /bfi/llvm-project/llvm/build/bin/llc -mtriple=arm64-apple-ios3.0.0 -aarch64-enable-collect-loh=false 
  1.	Running pass 'Function Pass Manager' on module '<stdin>'.
  2.	Running pass 'Machine code sinking' on function '@fullGtU'
   #0 0x0000563cfafac050 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /bfi/llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:564:22
   #1 0x0000563cfafac0e3 PrintStackTraceSignalHandler(void*) /bfi/llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:625:1
   #2 0x0000563cfafaa188 llvm::sys::RunSignalHandlers() /bfi/llvm-project/llvm/build/../lib/Support/Signals.cpp:68:20
   #3 0x0000563cfafaba92 SignalHandler(int) /bfi/llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:406:1
   #4 0x00007f33d149d520 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13520)
   #5 0x00007f33d0f78081 raise /build/glibc-G5rUEF/glibc-2.29/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
   #6 0x00007f33d0f63535 abort /build/glibc-G5rUEF/glibc-2.29/stdlib/abort.c:81:7
   #7 0x00007f33d0f6340f _nl_load_domain /build/glibc-G5rUEF/glibc-2.29/intl/loadmsgcat.c:1177:9
   #8 0x00007f33d0f70b92 (/lib/x86_64-linux-gnu/libc.so.6+0x32b92)
   #9 0x0000563cfa19f9af llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlock(llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /bfi/llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:878:22
  #10 0x0000563cfa19e36d llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlockName[abi:cxx11](llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /bfi/llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:958:51
  #11 0x0000563cf9c83808 llvm::BlockFrequencyInfoImplBase::getBlockFreq(llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /bfi/llvm-project/llvm/build/../lib/Analysis/BlockFrequencyInfoImpl.cpp:564:77
  #12 0x0000563cfa19c146 llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlockFreq(llvm::MachineBasicBlock const*) const /bfi/llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:973:3
  #13 0x0000563cfa19a21e llvm::MachineBlockFrequencyInfo::getBlockFreq(llvm::MachineBasicBlock const*) const /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineBlockFrequencyInfo.cpp:229:39
  #14 0x0000563cfa2db834 (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)::operator()(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*) const /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:645:55
  #15 0x0000563cfa2df025 bool __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>::operator()<llvm::MachineBasicBlock**, llvm::MachineBasicBlock**>(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**) /usr/include/c++/9/bits/predefined_ops.h:143:49
  #16 0x0000563cfa2df94f void std::__move_merge_adaptive<llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)> >(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>) /usr/include/c++/9/bits/stl_algo.h:2309:4
  #17 0x0000563cfa2df343 void std::__merge_adaptive<llvm::MachineBasicBlock**, long, llvm::MachineBasicBlock**, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)> >(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, long, long, llvm::MachineBasicBlock**, long, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>) /usr/include/c++/9/bits/stl_algo.h:2421:26
  #18 0x0000563cfa2def25 void std::__stable_sort_adaptive<llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, long, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)> >(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, long, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>) /usr/include/c++/9/bits/stl_algo.h:2745:28
  #19 0x0000563cfa2decf4 void std::__stable_sort<llvm::MachineBasicBlock**, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)> >(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, __gnu_cxx::__ops::_Iter_comp_iter<(anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>) /usr/include/c++/9/bits/stl_algo.h:5028:15
  #20 0x0000563cfa2dec1c void std::stable_sort<llvm::MachineBasicBlock**, (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>(llvm::MachineBasicBlock**, llvm::MachineBasicBlock**, (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)) /usr/include/c++/9/bits/stl_algo.h:5104:5
  #21 0x0000563cfa2debb6 void llvm::stable_sort<llvm::SmallVector<llvm::MachineBasicBlock*, 4u>&, (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)>(llvm::SmallVector<llvm::MachineBasicBlock*, 4u>&, (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const::'lambda'(llvm::MachineBasicBlock const*, llvm::MachineBasicBlock const*)) /bfi/llvm-project/llvm/build/../include/llvm/ADT/STLExtras.h:1292:1
  #22 0x0000563cfa2dbacf (anonymous namespace)::MachineSinking::GetAllSortedSuccessors(llvm::MachineInstr&, llvm::MachineBasicBlock*, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) const /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:651:48
  #23 0x0000563cfa2dbd57 (anonymous namespace)::MachineSinking::FindSuccToSinkTo(llvm::MachineInstr&, llvm::MachineBasicBlock*, bool&, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:713:57
  #24 0x0000563cfa2dc750 (anonymous namespace)::MachineSinking::SinkInstruction(llvm::MachineInstr&, bool&, std::map<llvm::MachineBasicBlock*, llvm::SmallVector<llvm::MachineBasicBlock*, 4u>, std::less<llvm::MachineBasicBlock*>, std::allocator<std::pair<llvm::MachineBasicBlock* const, llvm::SmallVector<llvm::MachineBasicBlock*, 4u> > > >&) /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:911:23
  #25 0x0000563cfa2daef5 (anonymous namespace)::MachineSinking::ProcessBlock(llvm::MachineBasicBlock&) /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:418:5
  #26 0x0000563cfa2daa6e (anonymous namespace)::MachineSinking::runOnMachineFunction(llvm::MachineFunction&) /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:344:18
  #27 0x0000563cfa20b4c4 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /bfi/llvm-project/llvm/build/../lib/CodeGen/MachineFunctionPass.cpp:73:33
  #28 0x0000563cfa6a9395 llvm::FPPassManager::runOnFunction(llvm::Function&) /bfi/llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1482:20
  #29 0x0000563cfa6a95fa llvm::FPPassManager::runOnModule(llvm::Module&) /bfi/llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1518:13
  #30 0x0000563cfa6a9a24 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /bfi/llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1583:20
  #31 0x0000563cfa6aa1a0 llvm::legacy::PassManagerImpl::run(llvm::Module&) /bfi/llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1695:13
  #32 0x0000563cfa6aa39d llvm::legacy::PassManager::run(llvm::Module&) /bfi/llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1727:1
  #33 0x0000563cf8740b99 compileModule(char**, llvm::LLVMContext&) /bfi/llvm-project/llvm/build/../tools/llc/llc.cpp:620:66
  #34 0x0000563cf873f1aa main /bfi/llvm-project/llvm/build/../tools/llc/llc.cpp:356:35
  #35 0x00007f33d0f64bbb __libc_start_main /build/glibc-G5rUEF/glibc-2.29/csu/../csu/libc-start.c:342:3
  #36 0x0000563cf873d02a _start (/bfi/llvm-project/llvm/build/bin/llc+0x4fb002a)
  FileCheck error: '<stdin>' is empty.
  FileCheck command line:  /bfi/llvm-project/llvm/build/bin/FileCheck /bfi/llvm-project/llvm/test/CodeGen/AArch64/arm64-addr-type-promotion.ll


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74511





More information about the llvm-commits mailing list