This is an archive of the discontinued LLVM Phabricator instance.

[BFI] Fix missed BFI updates in MachineSink.
ClosedPublic

Authored by hjyamauchi on Feb 12 2020, 3:25 PM.

Details

Summary

This prevents BFI queries on new blocks (from
MachineSinking::GetAllSortedSuccessors) and fixes a bunch of assert failures
under -check-bfi-unknown-block-queries=true.

Diff Detail

Event Timeline

hjyamauchi created this revision.Feb 12 2020, 3:25 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 12 2020, 3:25 PM
Herald added a subscriber: hiraditya. · View Herald Transcript

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

Add a test case (which would fail under the validation option) without the fix?

hjyamauchi added a comment.EditedFeb 19 2020, 1:35 PM

Around 400 tests fail under this flag without the fix. One of them is this simple (existing) machine sink test. Would it be enough? Or would you like me to add another one like that?

cat test/CodeGen/X86/machine-sink.ll

; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s

; Checks if movl $1 is sinked to critical edge.
; CHECK-NOT: movl $1
; CHECK: jbe
; CHECK: movl $1
define i32 @test(i32 %n, i32 %k) nounwind  {
entry:
  %cmp = icmp ugt i32 %k, %n
  br i1 %cmp, label %ifthen, label %ifend, !prof !1

ifthen:
  %y = add i32 %k, 2
  br label %ifend

ifend:
  %ret = phi i32 [ 1, %entry ] , [ %y, %ifthen]
  ret i32 %ret
}

!1 = !{!"branch_weights", i32 100, i32 1}

Stacktrace:

********************
Testing:  0.. 10.. 20.. 30.. 40.. 50
FAIL: LLVM :: CodeGen/X86/machine-sink.ll (19900 of 35971)
******************** TEST 'LLVM :: CodeGen/X86/machine-sink.ll' FAILED ********************
Script:
--
: 'RUN: at line 1';   /llvm-project/llvm/build/bin/llc < /llvm-project/llvm/test/CodeGen/X86/machine-sink.ll -mtriple=x86_64-pc-linux | /llvm-project/llvm/build/bin/FileCheck /llvm-project/llvm/test/CodeGen/X86/machine-sink.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: /llvm-project/llvm/build/bin/llc -mtriple=x86_64-pc-linux 
1.	Running pass 'Function Pass Manager' on module '<stdin>'.
2.	Running pass 'Machine code sinking' on function '@test'
 #0 0x000055a3ba2b2050 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:564:22
 #1 0x000055a3ba2b20e3 PrintStackTraceSignalHandler(void*) /llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:625:1
 #2 0x000055a3ba2b0188 llvm::sys::RunSignalHandlers() /llvm-project/llvm/build/../lib/Support/Signals.cpp:68:20
 #3 0x000055a3ba2b1a92 SignalHandler(int) /llvm-project/llvm/build/../lib/Support/Unix/Signals.inc:406:1
 #4 0x00007ffbc4405520 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13520)
 #5 0x00007ffbc3ee0081 raise /build/glibc-G5rUEF/glibc-2.29/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #6 0x00007ffbc3ecb535 abort /build/glibc-G5rUEF/glibc-2.29/stdlib/abort.c:81:7
 #7 0x00007ffbc3ecb40f _nl_load_domain /build/glibc-G5rUEF/glibc-2.29/intl/loadmsgcat.c:1177:9
 #8 0x00007ffbc3ed8b92 (/lib/x86_64-linux-gnu/libc.so.6+0x32b92)
 #9 0x000055a3b94a59af llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlock(llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:878:22
#10 0x000055a3b94a436d llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlockName[abi:cxx11](llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:958:51
#11 0x000055a3b8f89808 llvm::BlockFrequencyInfoImplBase::getBlockFreq(llvm::BlockFrequencyInfoImplBase::BlockNode const&) const /llvm-project/llvm/build/../lib/Analysis/BlockFrequencyInfoImpl.cpp:564:77
#12 0x000055a3b94a2146 llvm::BlockFrequencyInfoImpl<llvm::MachineBasicBlock>::getBlockFreq(llvm::MachineBasicBlock const*) const /llvm-project/llvm/build/../include/llvm/Analysis/BlockFrequencyInfoImpl.h:973:3
#13 0x000055a3b94a021e llvm::MachineBlockFrequencyInfo::getBlockFreq(llvm::MachineBasicBlock const*) const /llvm-project/llvm/build/../lib/CodeGen/MachineBlockFrequencyInfo.cpp:229:39
#14 0x000055a3b95e17e9 (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 /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:644:55
#15 0x000055a3b95e5025 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 0x000055a3b95e4f7f void std::__insertion_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:1846:4
#17 0x000055a3b95e57e9 void std::__chunk_insertion_sort<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**, 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:2693:5
#18 0x000055a3b95e5279 void std::__merge_sort_with_buffer<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**, __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:2712:26
#19 0x000055a3b95e4ecb 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:2743:33
#20 0x000055a3b95e4cf4 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
#21 0x000055a3b95e4c1c 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
#22 0x000055a3b95e4bb6 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*)) /llvm-project/llvm/build/../include/llvm/ADT/STLExtras.h:1292:1
#23 0x000055a3b95e1acf (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 /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:651:48
#24 0x000055a3b95e1d57 (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> > > >&) /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:713:57
#25 0x000055a3b95e2750 (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> > > >&) /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:911:23
#26 0x000055a3b95e0ef5 (anonymous namespace)::MachineSinking::ProcessBlock(llvm::MachineBasicBlock&) /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:418:5
#27 0x000055a3b95e0a6e (anonymous namespace)::MachineSinking::runOnMachineFunction(llvm::MachineFunction&) /llvm-project/llvm/build/../lib/CodeGen/MachineSink.cpp:344:18
#28 0x000055a3b95114c4 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /llvm-project/llvm/build/../lib/CodeGen/MachineFunctionPass.cpp:73:33
#29 0x000055a3b99af395 llvm::FPPassManager::runOnFunction(llvm::Function&) /llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1482:20
#30 0x000055a3b99af5fa llvm::FPPassManager::runOnModule(llvm::Module&) /llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1518:13
#31 0x000055a3b99afa24 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1583:20
#32 0x000055a3b99b01a0 llvm::legacy::PassManagerImpl::run(llvm::Module&) /llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1695:13
#33 0x000055a3b99b039d llvm::legacy::PassManager::run(llvm::Module&) /llvm-project/llvm/build/../lib/IR/LegacyPassManager.cpp:1727:1
#34 0x000055a3b7a46b99 compileModule(char**, llvm::LLVMContext&) /llvm-project/llvm/build/../tools/llc/llc.cpp:620:66
#35 0x000055a3b7a451aa main /llvm-project/llvm/build/../tools/llc/llc.cpp:356:35
#36 0x00007ffbc3eccbbb __libc_start_main /build/glibc-G5rUEF/glibc-2.29/csu/../csu/libc-start.c:342:3
#37 0x000055a3b7a4302a _start (/llvm-project/llvm/build/bin/llc+0x4fb002a)
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /llvm-project/llvm/build/bin/FileCheck /llvm-project/llvm/test/CodeGen/X86/machine-sink.ll

--

List of failing tests under this flag.

Failing Tests (401):
    LLVM :: Bindings/Go/go.test
    LLVM :: CodeGen/AArch64/addsub-shifted.ll
    LLVM :: CodeGen/AArch64/and-sink.ll
    LLVM :: CodeGen/AArch64/arm64-addr-mode-folding.ll
    LLVM :: CodeGen/AArch64/arm64-addr-type-promotion.ll
    LLVM :: CodeGen/AArch64/arm64-andCmpBrToTBZ.ll
    LLVM :: CodeGen/AArch64/arm64-atomic.ll
    LLVM :: CodeGen/AArch64/arm64-bitfield-extract.ll
    LLVM :: CodeGen/AArch64/arm64-ccmp-heuristics.ll
    LLVM :: CodeGen/AArch64/arm64-cse.ll
    LLVM :: CodeGen/AArch64/arm64-extload-knownzero.ll
    LLVM :: CodeGen/AArch64/arm64-shrink-wrapping.ll
    LLVM :: CodeGen/AArch64/arm64_32-atomics.ll
    LLVM :: CodeGen/AArch64/br-undef-cond.ll
    LLVM :: CodeGen/AArch64/cmpxchg-idioms.ll
    LLVM :: CodeGen/AArch64/combine-comparisons-by-cse.ll
    LLVM :: CodeGen/AArch64/free-zext.ll
    LLVM :: CodeGen/AArch64/funclet-local-stack-size.ll
    LLVM :: CodeGen/AArch64/landingpad-ifcvt.ll
    LLVM :: CodeGen/AArch64/machine-copy-remove.ll
    LLVM :: CodeGen/AArch64/machine-sink-getmemoperandwithoffset.mir
    LLVM :: CodeGen/AArch64/pic-eh-stubs.ll
    LLVM :: CodeGen/AArch64/ragreedy-csr.ll
    LLVM :: CodeGen/AArch64/redundant-copy-elim-empty-mbb.ll
    LLVM :: CodeGen/AArch64/speculation-hardening.ll
    LLVM :: CodeGen/AArch64/swap-compare-operands.ll
    LLVM :: CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.load.1d.ll
    LLVM :: CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.buffer.load.ll
    LLVM :: CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
    LLVM :: CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.load.ll
    LLVM :: CodeGen/AMDGPU/GlobalISel/regbankselect-insert-vector-elt.mir
    LLVM :: CodeGen/AMDGPU/branch-relaxation.ll
    LLVM :: CodeGen/AMDGPU/cgp-addressing-modes-flat.ll
    LLVM :: CodeGen/AMDGPU/coalescer_remat.ll
    LLVM :: CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll
    LLVM :: CodeGen/AMDGPU/debug-value.ll
    LLVM :: CodeGen/AMDGPU/early-if-convert.ll
    LLVM :: CodeGen/AMDGPU/global_smrd_cfg.ll
    LLVM :: CodeGen/AMDGPU/i1-copy-phi-uniform-branch.ll
    LLVM :: CodeGen/AMDGPU/inline-asm.ll
    LLVM :: CodeGen/AMDGPU/multi-divergent-exit-region.ll
    LLVM :: CodeGen/AMDGPU/multilevel-break.ll
    LLVM :: CodeGen/AMDGPU/rename-disconnected-bug.ll
    LLVM :: CodeGen/AMDGPU/ret_jump.ll
    LLVM :: CodeGen/AMDGPU/select-opt.ll
    LLVM :: CodeGen/AMDGPU/sgpr-copy.ll
    LLVM :: CodeGen/AMDGPU/subreg-coalescer-crash.ll
    LLVM :: CodeGen/AMDGPU/undefined-subreg-liverange.ll
    LLVM :: CodeGen/AMDGPU/v1024.ll
    LLVM :: CodeGen/AMDGPU/wave32.ll
    LLVM :: CodeGen/ARM/2007-04-03-UndefinedSymbol.ll
    LLVM :: CodeGen/ARM/2009-05-11-CodePlacementCrash.ll
    LLVM :: CodeGen/ARM/2011-04-11-MachineLICMBug.ll
    LLVM :: CodeGen/ARM/2011-04-26-SchedTweak.ll
    LLVM :: CodeGen/ARM/2011-08-25-ldmia_ret.ll
    LLVM :: CodeGen/ARM/2012-08-30-select.ll
    LLVM :: CodeGen/ARM/2013-05-05-IfConvertBug.ll
    LLVM :: CodeGen/ARM/2013-05-13-DAGCombiner-undef-mask.ll
    LLVM :: CodeGen/ARM/2013-10-11-select-stalls.ll
    LLVM :: CodeGen/ARM/ParallelDSP/multi-use-loads.ll
    LLVM :: CodeGen/ARM/Windows/dbzchk.ll
    LLVM :: CodeGen/ARM/a15-SD-dep.ll
    LLVM :: CodeGen/ARM/add-like-or.ll
    LLVM :: CodeGen/ARM/arm-shrink-wrapping.ll
    LLVM :: CodeGen/ARM/atomic-cmpxchg.ll
    LLVM :: CodeGen/ARM/cmn.ll
    LLVM :: CodeGen/ARM/cmpxchg-idioms.ll
    LLVM :: CodeGen/ARM/coalesce-dbgvalue.ll
    LLVM :: CodeGen/ARM/coalesce-subregs.ll
    LLVM :: CodeGen/ARM/code-placement.ll
    LLVM :: CodeGen/ARM/darwin-tls-preserved.ll
    LLVM :: CodeGen/ARM/data-in-code-annotations.ll
    LLVM :: CodeGen/ARM/debug-segmented-stacks.ll
    LLVM :: CodeGen/ARM/execute-only.ll
    LLVM :: CodeGen/ARM/fp16-instructions.ll
    LLVM :: CodeGen/ARM/global-merge.ll
    LLVM :: CodeGen/ARM/hoist-and-by-const-from-lshr-in-eqcmp-zero.ll
    LLVM :: CodeGen/ARM/hoist-and-by-const-from-shl-in-eqcmp-zero.ll
    LLVM :: CodeGen/ARM/ifcvt-dead-def.ll
    LLVM :: CodeGen/ARM/ifcvt11.ll
    LLVM :: CodeGen/ARM/interval-update-remat.ll
    LLVM :: CodeGen/ARM/intrinsics-overflow.ll
    LLVM :: CodeGen/ARM/invalidated-save-point.ll
    LLVM :: CodeGen/ARM/jump-table-islands-split.ll
    LLVM :: CodeGen/ARM/jump-table-tbh.ll
    LLVM :: CodeGen/ARM/jumptable-label.ll
    LLVM :: CodeGen/ARM/loop-indexing.ll
    LLVM :: CodeGen/ARM/lsr-icmp-imm.ll
    LLVM :: CodeGen/ARM/lsr-unfolded-offset.ll
    LLVM :: CodeGen/ARM/misched-copy-arm.ll
    LLVM :: CodeGen/ARM/overflow-intrinsic-optimizations.ll
    LLVM :: CodeGen/ARM/sadd_sat.ll
    LLVM :: CodeGen/ARM/sadd_sat_plus.ll
    LLVM :: CodeGen/ARM/sat-to-bitop.ll
    LLVM :: CodeGen/ARM/segmented-stacks-dynamic.ll
    LLVM :: CodeGen/ARM/segmented-stacks.ll
    LLVM :: CodeGen/ARM/select-imm.ll
    LLVM :: CodeGen/ARM/select_const.ll
    LLVM :: CodeGen/ARM/shift-combine.ll
    LLVM :: CodeGen/ARM/sjlj-prepare-critical-edge.ll
    LLVM :: CodeGen/ARM/ssub_sat.ll
    LLVM :: CodeGen/ARM/ssub_sat_plus.ll
    LLVM :: CodeGen/ARM/tail-merge-branch-weight.ll
    LLVM :: CodeGen/ARM/umulo-32.ll
    LLVM :: CodeGen/ARM/wide-compares.ll
    LLVM :: CodeGen/Generic/2003-05-27-phifcmpd.ll
    LLVM :: CodeGen/Generic/2003-05-30-BadPreselectPhi.ll
    LLVM :: CodeGen/Generic/2006-03-01-dagcombineinfloop.ll
    LLVM :: CodeGen/Generic/badarg6.ll
    LLVM :: CodeGen/Generic/live-debug-label.ll
    LLVM :: CodeGen/Generic/undef-phi.ll
    LLVM :: CodeGen/Hexagon/align_test.ll
    LLVM :: CodeGen/Hexagon/bit-rie.ll
    LLVM :: CodeGen/Hexagon/bug-allocframe-size.ll
    LLVM :: CodeGen/Hexagon/bug14859-iv-cleanup-lpad.ll
    LLVM :: CodeGen/Hexagon/bug14859-split-const-block-addr.ll
    LLVM :: CodeGen/Hexagon/bug17276.ll
    LLVM :: CodeGen/Hexagon/bug27085.ll
    LLVM :: CodeGen/Hexagon/cext-ice.ll
    LLVM :: CodeGen/Hexagon/circ_ldd_bug.ll
    LLVM :: CodeGen/Hexagon/concat-vectors-legalize.ll
    LLVM :: CodeGen/Hexagon/early-if-phi-i1.ll
    LLVM :: CodeGen/Hexagon/expand-condsets-rm-segment.ll
    LLVM :: CodeGen/Hexagon/expand-condsets-undefvni.ll
    LLVM :: CodeGen/Hexagon/float-gen-cmpop.ll
    LLVM :: CodeGen/Hexagon/fltnvjump.ll
    LLVM :: CodeGen/Hexagon/hwloop-pos-ivbump1.ll
    LLVM :: CodeGen/Hexagon/hwloop-preh.ll
    LLVM :: CodeGen/Hexagon/hwloop2.ll
    LLVM :: CodeGen/Hexagon/hwloop5.ll
    LLVM :: CodeGen/Hexagon/i128-bitop.ll
    LLVM :: CodeGen/Hexagon/loop-rotate-bug.ll
    LLVM :: CodeGen/Hexagon/newvaluejump3.ll
    LLVM :: CodeGen/Hexagon/opt-glob-addrs-001.ll
    LLVM :: CodeGen/Hexagon/packetize-impdef-1.ll
    LLVM :: CodeGen/Hexagon/plt-rel.ll
    LLVM :: CodeGen/Hexagon/rdf-copy.ll
    LLVM :: CodeGen/Hexagon/rdf-def-mask.ll
    LLVM :: CodeGen/Hexagon/regscavengerbug.ll
    LLVM :: CodeGen/Hexagon/simplify64bitops_7223.ll
    LLVM :: CodeGen/Hexagon/swp-bad-sched.ll
    LLVM :: CodeGen/Hexagon/swp-const-tc3.ll
    LLVM :: CodeGen/Hexagon/swp-max-stage3.ll
    LLVM :: CodeGen/Hexagon/swp-regseq.ll
    LLVM :: CodeGen/Hexagon/swp-sigma.ll
    LLVM :: CodeGen/Hexagon/tail-dup-subreg-map.ll
    LLVM :: CodeGen/Hexagon/vect-downscale.ll
    LLVM :: CodeGen/Hexagon/wcsrtomb.ll
    LLVM :: CodeGen/Lanai/delay_filler.ll
    LLVM :: CodeGen/Lanai/i32.ll
    LLVM :: CodeGen/Lanai/mem_alu_combiner.ll
    LLVM :: CodeGen/MSP430/postinc.ll
    LLVM :: CodeGen/MSP430/select-use-sr.ll
    LLVM :: CodeGen/Mips/beqzc.ll
    LLVM :: CodeGen/Mips/brdelayslot.ll
    LLVM :: CodeGen/Mips/brind-tailcall.ll
    LLVM :: CodeGen/Mips/llvm-ir/ashr.ll
    LLVM :: CodeGen/Mips/llvm-ir/lshr.ll
    LLVM :: CodeGen/Mips/llvm-ir/select-dbl.ll
    LLVM :: CodeGen/Mips/llvm-ir/select-flt.ll
    LLVM :: CodeGen/Mips/llvm-ir/select-int.ll
    LLVM :: CodeGen/Mips/llvm-ir/shl.ll
    LLVM :: CodeGen/Mips/prevent-hoisting.ll
    LLVM :: CodeGen/Mips/sel1c.ll
    LLVM :: CodeGen/Mips/sel2c.ll
    LLVM :: CodeGen/Mips/selTBtnezSlti.ll
    LLVM :: CodeGen/PowerPC/2016-01-07-BranchWeightCrash.ll
    LLVM :: CodeGen/PowerPC/BoolRetToIntTest-2.ll
    LLVM :: CodeGen/PowerPC/absol-jump-table-enabled.ll
    LLVM :: CodeGen/PowerPC/aix-external-sym-sdnode-lowering.ll
    LLVM :: CodeGen/PowerPC/cmp_elimination.ll
    LLVM :: CodeGen/PowerPC/coldcc.ll
    LLVM :: CodeGen/PowerPC/f128-aggregates.ll
    LLVM :: CodeGen/PowerPC/fp-to-int-to-fp.ll
    LLVM :: CodeGen/PowerPC/knowCRBitSpill.ll
    LLVM :: CodeGen/PowerPC/licm-remat.ll
    LLVM :: CodeGen/PowerPC/loop-data-prefetch-inner.ll
    LLVM :: CodeGen/PowerPC/loop-hoist-toc-save.ll
    LLVM :: CodeGen/PowerPC/loop-instr-form-prepare.ll
    LLVM :: CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll
    LLVM :: CodeGen/PowerPC/ppc-ctr-dead-code.ll
    LLVM :: CodeGen/PowerPC/ppc64-get-cache-line-size.ll
    LLVM :: CodeGen/PowerPC/pr24546.ll
    LLVM :: CodeGen/PowerPC/remove-redundant-toc-saves.ll
    LLVM :: CodeGen/PowerPC/select-cc.ll
    LLVM :: CodeGen/PowerPC/select_const.ll
    LLVM :: CodeGen/PowerPC/shrink-wrap.ll
    LLVM :: CodeGen/PowerPC/subreg-postra-2.ll
    LLVM :: CodeGen/PowerPC/zext-and-cmp.ll
    LLVM :: CodeGen/RISCV/addcarry.ll
    LLVM :: CodeGen/RISCV/alu64.ll
    LLVM :: CodeGen/RISCV/atomic-rmw.ll
    LLVM :: CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll
    LLVM :: CodeGen/RISCV/rv64i-w-insts-legalization.ll
    LLVM :: CodeGen/RISCV/select-optimize-multiple.ll
    LLVM :: CodeGen/RISCV/shifts.ll
    LLVM :: CodeGen/RISCV/tail-calls.ll
    LLVM :: CodeGen/SPARC/2011-01-11-CC.ll
    LLVM :: CodeGen/SPARC/2011-01-19-DelaySlot.ll
    LLVM :: CodeGen/SPARC/float.ll
    LLVM :: CodeGen/SPARC/select-mask.ll
    LLVM :: CodeGen/SystemZ/cond-store-01.ll
    LLVM :: CodeGen/SystemZ/cond-store-02.ll
    LLVM :: CodeGen/SystemZ/cond-store-03.ll
    LLVM :: CodeGen/SystemZ/cond-store-04.ll
    LLVM :: CodeGen/SystemZ/cond-store-05.ll
    LLVM :: CodeGen/SystemZ/cond-store-06.ll
    LLVM :: CodeGen/SystemZ/fp-cmp-01.ll
    LLVM :: CodeGen/SystemZ/fp-cmp-02.ll
    LLVM :: CodeGen/SystemZ/fp-conv-08.ll
    LLVM :: CodeGen/SystemZ/fp-conv-10.ll
    LLVM :: CodeGen/SystemZ/fp-conv-12.ll
    LLVM :: CodeGen/SystemZ/fp-copysign-02.ll
    LLVM :: CodeGen/SystemZ/fp-strict-cmp-01.ll
    LLVM :: CodeGen/SystemZ/fp-strict-cmp-02.ll
    LLVM :: CodeGen/SystemZ/fp-strict-cmps-01.ll
    LLVM :: CodeGen/SystemZ/fp-strict-cmps-02.ll
    LLVM :: CodeGen/SystemZ/fp-strict-conv-08.ll
    LLVM :: CodeGen/SystemZ/fp-strict-conv-10.ll
    LLVM :: CodeGen/SystemZ/fp-strict-conv-12.ll
    LLVM :: CodeGen/SystemZ/int-sadd-08.ll
    LLVM :: CodeGen/SystemZ/int-sadd-09.ll
    LLVM :: CodeGen/SystemZ/int-ssub-08.ll
    LLVM :: CodeGen/SystemZ/int-ssub-09.ll
    LLVM :: CodeGen/SystemZ/int-uadd-10.ll
    LLVM :: CodeGen/SystemZ/int-uadd-11.ll
    LLVM :: CodeGen/SystemZ/int-usub-10.ll
    LLVM :: CodeGen/SystemZ/int-usub-11.ll
    LLVM :: CodeGen/Thumb/asmprinter-bug.ll
    LLVM :: CodeGen/Thumb/i8-phi-ext.ll
    LLVM :: CodeGen/Thumb/segmented-stacks-dynamic.ll
    LLVM :: CodeGen/Thumb/segmented-stacks.ll
    LLVM :: CodeGen/Thumb/select.ll
    LLVM :: CodeGen/Thumb/tst_teq.ll
    LLVM :: CodeGen/Thumb/unord.ll
    LLVM :: CodeGen/Thumb2/2009-08-04-ScavengerAssert.ll
    LLVM :: CodeGen/Thumb2/2009-12-01-LoopIVUsers.ll
    LLVM :: CodeGen/Thumb2/2010-01-06-TailDuplicateLabels.ll
    LLVM :: CodeGen/Thumb2/2010-06-21-TailMergeBug.ll
    LLVM :: CodeGen/Thumb2/2012-01-13-CBNZBug.ll
    LLVM :: CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
    LLVM :: CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
    LLVM :: CodeGen/Thumb2/LowOverheadLoops/mve-float-loops.ll
    LLVM :: CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
    LLVM :: CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
    LLVM :: CodeGen/Thumb2/constant-hoisting.ll
    LLVM :: CodeGen/Thumb2/ifcvt-minsize.ll
    LLVM :: CodeGen/Thumb2/ifcvt-rescan-diamonds.ll
    LLVM :: CodeGen/Thumb2/mve-masked-load.ll
    LLVM :: CodeGen/Thumb2/segmented-stacks.ll
    LLVM :: CodeGen/Thumb2/v8_IT_1.ll
    LLVM :: CodeGen/WebAssembly/implicit-def.ll
    LLVM :: CodeGen/X86/2004-10-08-SelectSetCCFold.ll
    LLVM :: CodeGen/X86/2006-11-27-SelectLegalize.ll
    LLVM :: CodeGen/X86/2007-08-09-IllegalX86-64Asm.ll
    LLVM :: CodeGen/X86/2007-11-06-InstrSched.ll
    LLVM :: CodeGen/X86/2008-04-16-ReMatBug.ll
    LLVM :: CodeGen/X86/2008-04-28-CoalescerBug.ll
    LLVM :: CodeGen/X86/2008-09-29-ReMatBug.ll
    LLVM :: CodeGen/X86/2009-02-03-AnalyzedTwice.ll
    LLVM :: CodeGen/X86/2009-02-08-CoalescerBug.ll
    LLVM :: CodeGen/X86/2009-04-27-CoalescerAssert.ll
    LLVM :: CodeGen/X86/2009-04-29-LinearScanBug.ll
    LLVM :: CodeGen/X86/2009-07-16-CoalescerBug.ll
    LLVM :: CodeGen/X86/2009-08-06-branchfolder-crash.ll
    LLVM :: CodeGen/X86/2009-09-10-SpillComments.ll
    LLVM :: CodeGen/X86/2009-09-21-NoSpillLoopCount.ll
    LLVM :: CodeGen/X86/2012-01-10-UndefExceptionEdge.ll
    LLVM :: CodeGen/X86/GlobalISel/phi.ll
    LLVM :: CodeGen/X86/MachineSink-eflags.ll
    LLVM :: CodeGen/X86/atom-fixup-lea1.ll
    LLVM :: CodeGen/X86/atom-fixup-lea3.ll
    LLVM :: CodeGen/X86/atomic-dagsched.ll
    LLVM :: CodeGen/X86/avoid-loop-align-2.ll
    LLVM :: CodeGen/X86/avx512-mask-op.ll
    LLVM :: CodeGen/X86/avx512-masked_memop-16-8.ll
    LLVM :: CodeGen/X86/avx512-select.ll
    LLVM :: CodeGen/X86/block-placement.ll
    LLVM :: CodeGen/X86/bmi.ll
    LLVM :: CodeGen/X86/branchfolding-catchpads.ll
    LLVM :: CodeGen/X86/branchfolding-debugloc.ll
    LLVM :: CodeGen/X86/break-false-dep.ll
    LLVM :: CodeGen/X86/callbr-asm-branch-folding.ll
    LLVM :: CodeGen/X86/clz.ll
    LLVM :: CodeGen/X86/cmov-fp.ll
    LLVM :: CodeGen/X86/cmov-promotion.ll
    LLVM :: CodeGen/X86/cmpxchg-clobber-flags.ll
    LLVM :: CodeGen/X86/coalescer-commute4.ll
    LLVM :: CodeGen/X86/combine-sbb.ll
    LLVM :: CodeGen/X86/conditional-tailcall-pgso.ll
    LLVM :: CodeGen/X86/conditional-tailcall.ll
    LLVM :: CodeGen/X86/constant-hoisting-and.ll
    LLVM :: CodeGen/X86/constant-hoisting-cmp.ll
    LLVM :: CodeGen/X86/constant-hoisting-shift-immediate.ll
    LLVM :: CodeGen/X86/crash-lre-eliminate-dead-def.ll
    LLVM :: CodeGen/X86/crash.ll
    LLVM :: CodeGen/X86/dag-update-nodetomatch.ll
    LLVM :: CodeGen/X86/dagcombine-select.ll
    LLVM :: CodeGen/X86/debug-nodebug-crash.ll
    LLVM :: CodeGen/X86/extract-bits.ll
    LLVM :: CodeGen/X86/extract-lowbits.ll
    LLVM :: CodeGen/X86/fast-isel-select-pseudo-cmov.ll
    LLVM :: CodeGen/X86/fdiv-combine.ll
    LLVM :: CodeGen/X86/fold-load.ll
    LLVM :: CodeGen/X86/fp-intrinsics.ll
    LLVM :: CodeGen/X86/fp-strict-scalar-cmp.ll
    LLVM :: CodeGen/X86/fp-strict-scalar-inttofp.ll
    LLVM :: CodeGen/X86/fp128-i128.ll
    LLVM :: CodeGen/X86/fp128-select.ll
    LLVM :: CodeGen/X86/fp80-strict-scalar-cmp.ll
    LLVM :: CodeGen/X86/half.ll
    LLVM :: CodeGen/X86/hipe-prologue.ll
    LLVM :: CodeGen/X86/interval-update-remat.ll
    LLVM :: CodeGen/X86/licm-nested.ll
    LLVM :: CodeGen/X86/lifetime-alias.ll
    LLVM :: CodeGen/X86/loop-search.ll
    LLVM :: CodeGen/X86/lsr-sort.ll
    LLVM :: CodeGen/X86/lzcnt.ll
    LLVM :: CodeGen/X86/machine-cse.ll
    LLVM :: CodeGen/X86/machine-sink.ll
    LLVM :: CodeGen/X86/machine-trace-metrics-crash.ll
    LLVM :: CodeGen/X86/machinesink-null-debuginfo.ll
    LLVM :: CodeGen/X86/masked_gather.ll
    LLVM :: CodeGen/X86/masked_load.ll
    LLVM :: CodeGen/X86/mmx-arith.ll
    LLVM :: CodeGen/X86/new-remat.ll
    LLVM :: CodeGen/X86/phi-bit-propagation.ll
    LLVM :: CodeGen/X86/phi-immediate-factoring.ll
    LLVM :: CodeGen/X86/phys_subreg_coalesce-2.ll
    LLVM :: CodeGen/X86/pr14098.ll
    LLVM :: CodeGen/X86/pr15705.ll
    LLVM :: CodeGen/X86/pr2659.ll
    LLVM :: CodeGen/X86/pr3243.ll
    LLVM :: CodeGen/X86/pr33010.ll
    LLVM :: CodeGen/X86/pr33954.ll
    LLVM :: CodeGen/X86/pr38795.ll
    LLVM :: CodeGen/X86/pseudo_cmov_lower.ll
    LLVM :: CodeGen/X86/pseudo_cmov_lower1.ll
    LLVM :: CodeGen/X86/pseudo_cmov_lower2.ll
    LLVM :: CodeGen/X86/pull-conditional-binop-through-shift.ll
    LLVM :: CodeGen/X86/ragreedy-bug.ll
    LLVM :: CodeGen/X86/ragreedy-hoist-spill.ll
    LLVM :: CodeGen/X86/regalloc-reconcile-broken-hints.ll
    LLVM :: CodeGen/X86/regalloc-spill-at-ehpad.ll
    LLVM :: CodeGen/X86/reghinting.ll
    LLVM :: CodeGen/X86/scalar-int-to-fp.ll
    LLVM :: CodeGen/X86/scheduler-backtracking.ll
    LLVM :: CodeGen/X86/segmented-stacks-dynamic.ll
    LLVM :: CodeGen/X86/segmented-stacks.ll
    LLVM :: CodeGen/X86/select-mmx.ll
    LLVM :: CodeGen/X86/select.ll
    LLVM :: CodeGen/X86/select_const.ll
    LLVM :: CodeGen/X86/setuge.ll
    LLVM :: CodeGen/X86/shift-amount-mod.ll
    LLVM :: CodeGen/X86/shift-double.ll
    LLVM :: CodeGen/X86/shift-i128.ll
    LLVM :: CodeGen/X86/shift-i256.ll
    LLVM :: CodeGen/X86/sink-blockfreq.ll
    LLVM :: CodeGen/X86/sink-hoist.ll
    LLVM :: CodeGen/X86/srem-seteq-optsize.ll
    LLVM :: CodeGen/X86/sse-load-ret.ll
    LLVM :: CodeGen/X86/sse-scalar-fp-arith.ll
    LLVM :: CodeGen/X86/sse1.ll
    LLVM :: CodeGen/X86/stack-clash-large.ll
    LLVM :: CodeGen/X86/stack-protector.ll
    LLVM :: CodeGen/X86/sttni.ll
    LLVM :: CodeGen/X86/switch-crit-edge-constant.ll
    LLVM :: CodeGen/X86/tail-dup-merge-loop-headers.ll
    LLVM :: CodeGen/X86/tail-opts.ll
    LLVM :: CodeGen/X86/taildup-heapallocsite.ll
    LLVM :: CodeGen/X86/testb-je-fusion.ll
    LLVM :: CodeGen/X86/tls-shrink-wrapping.ll
    LLVM :: CodeGen/X86/uint64-to-float.ll
    LLVM :: CodeGen/X86/update-terminator-debugloc.ll
    LLVM :: CodeGen/X86/urem-seteq-optsize.ll
    LLVM :: CodeGen/X86/vec-strict-inttofp-128.ll
    LLVM :: CodeGen/X86/vec_floor.ll
    LLVM :: CodeGen/X86/vec_int_to_fp.ll
    LLVM :: CodeGen/X86/vector-constrained-fp-intrinsics.ll
    LLVM :: CodeGen/X86/vector-shift-by-select-loop.ll
    LLVM :: CodeGen/X86/win_coreclr_chkstk.ll
    LLVM :: CodeGen/X86/x86-shrink-wrap-unwind.ll
    LLVM :: CodeGen/X86/x86-shrink-wrapping.ll
    LLVM :: CodeGen/XCore/ashr.ll
    LLVM :: CodeGen/XCore/codemodel.ll
    LLVM :: DebugInfo/ARM/partial-subreg.ll
    LLVM :: DebugInfo/COFF/fpo-shrink-wrap.ll
    LLVM :: DebugInfo/COFF/pieces.ll
    LLVM :: DebugInfo/Generic/debug-label-opt.ll
    LLVM :: DebugInfo/Generic/incorrect-variable-debugloc.ll
    LLVM :: DebugInfo/MSP430/sdagsplit-1.ll
    LLVM :: DebugInfo/X86/dbg-value-terminator.ll
    LLVM :: DebugInfo/X86/partial-constant.ll
    LLVM :: DebugInfo/X86/stack-value-dwarf2.ll
    LLVM :: ThinLTO/X86/callees-metadata.ll
    LLVM :: Transforms/HardwareLoops/ARM/simple-do.ll
    LLVM :: Transforms/HardwareLoops/ARM/structure.ll
    LLVM :: Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
    LLVM :: Transforms/LoopVectorize/X86/avx512.ll
    LLVM :: Transforms/LoopVectorize/X86/fp32_to_uint32-cost-model.ll
    LLVM :: Transforms/PGOProfile/memop_size_opt.ll

  Expected Passes    : 34873
  Expected Failures  : 151
  Unsupported Tests  : 546
  Unexpected Failures: 401

enough to modify the test with the flag added.

Address comment.

enough to modify the test with the flag added.

Done. PTAL.

davidxl accepted this revision.Feb 20 2020, 1:40 PM

lgtm

This revision is now accepted and ready to land.Feb 20 2020, 1:40 PM
This revision was automatically updated to reflect the committed changes.