https://bugs.llvm.org/show_bug.cgi?id=41838

            Bug ID: 41838
           Summary: Assertion error in
                    llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:
                    293
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedb...@nondot.org
          Reporter: leonardc...@google.com
                CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
                    llvm-...@redking.me.uk, spatel+l...@rotateright.com

Created attachment 21922
  --> https://bugs.llvm.org/attachment.cgi?id=21922&action=edit
reproducer for the assertion

We run into an assertion error in LLVM when building zircon:

clang:
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:293:
int getAddrOffset(llvm::MachineInstr *): Assertion `AddrOffset != -1 &&
"Expected Memory Operand"' failed.
Stack dump:
0.      Program arguments: ../llvm-build-2-address-space-fix/bin/clang -cc1
-triple x86_64-fuchsia -emit-obj --mrelax-relocations -disable-free
-main-file-name state_tests.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie
-mthread-model posix -mdisable-fp-elim -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info
-debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb
-ffunction-sections -fdata-sections -coverage-notes-file
/b/s/w/ir/k/out/x64.zircon/user-x64-clang/obj/system/utest/inspect-vmo/inspect-vmo-test.state_tests.cpp.gcno
-sys-header-deps -D
TOOLCHAIN_VERSION=/b/s/w/ir/k/recipe_cleanup/clangzdnyvE/bin -D ZX_DEBUGLEVEL=2
-D WITH_FRAME_POINTERS=1 -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D
_ALL_SOURCE -O2 -Wall -Wextra -Wno-multichar -Wno-unused-parameter
-Wno-unused-function -Werror=unused-label -Werror=return-type -Wnewline-eof
-Wno-address-of-packed-member -Wimplicit-fallthrough -Wthread-safety -Werror
-Wno-error=deprecated-declarations -Wconversion -Wno-sign-conversion
-Wextra-semi -std=c++17 -fdeprecated-macro
-fdebug-prefix-map=/b/s/w/ir/k/zircon=../../zircon -ferror-limit 19
-fmessage-length 0 -fsanitize=safe-stack -stack-protector 2 -fno-rtti
-fno-threadsafe-statics -fobjc-runtime=gcc -fno-common
-fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp
-x c++ state_tests-84151a.cpp -faddrsig 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module
'state_tests-84151a.cpp'.
4.      Running pass 'X86 Avoid Store Forwarding Blocks' on function
'@_ZN12_GLOBAL__N_122SetPropertyOutOfMemoryEv'
 #0 0x0000000006eb1699 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Support/Unix/Signals.inc:494:11
 #1 0x0000000006eb1789 PrintStackTraceSignalHandler(void*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Support/Unix/Signals.inc:558:1
 #2 0x0000000006eb025b llvm::sys::RunSignalHandlers()
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Support/Signals.cpp:67:5
 #3 0x0000000006eb1d88 SignalHandler(int)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Support/Unix/Signals.inc:357:1
 #4 0x00007ffa2548b0c0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x110c0)
 #5 0x00007ffa247b6fcf raise (/lib/x86_64-linux-gnu/libc.so.6+0x32fcf)
 #6 0x00007ffa247b83fa abort (/lib/x86_64-linux-gnu/libc.so.6+0x343fa)
 #7 0x00007ffa247afe37 (/lib/x86_64-linux-gnu/libc.so.6+0x2be37)
 #8 0x00007ffa247afee2 (/lib/x86_64-linux-gnu/libc.so.6+0x2bee2)
 #9 0x0000000005a570d7 getAddrOffset(llvm::MachineInstr*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:294:39
#10 0x0000000005a57105 getBaseOperand(llvm::MachineInstr*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:299:7
#11 0x0000000005a56715 updateKillStatus(llvm::MachineInstr*,
llvm::MachineInstr*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:510:53
#12 0x0000000005a55401 (anonymous
namespace)::X86AvoidSFBPass::runOnMachineFunction(llvm::MachineFunction&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp:718:5
#13 0x000000000609502f
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/CodeGen/MachineFunctionPass.cpp:73:8
#14 0x000000000654c86c llvm::FPPassManager::runOnFunction(llvm::Function&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/IR/LegacyPassManager.cpp:1648:23
#15 0x000000000654cccf llvm::FPPassManager::runOnModule(llvm::Module&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/IR/LegacyPassManager.cpp:1685:16
#16 0x000000000654d451 (anonymous
namespace)::MPPassManager::runOnModule(llvm::Module&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/IR/LegacyPassManager.cpp:1752:23
#17 0x000000000654cf88 llvm::legacy::PassManagerImpl::run(llvm::Module&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/IR/LegacyPassManager.cpp:1865:16
#18 0x000000000654d9e1 llvm::legacy::PassManager::run(llvm::Module&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/llvm/lib/IR/LegacyPassManager.cpp:1896:3
#19 0x00000000071e2d7d (anonymous
namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction,
std::__2::unique_ptr<llvm::raw_pwrite_stream,
std::__2::default_delete<llvm::raw_pwrite_stream> >)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/CodeGen/BackendUtil.cpp:894:3
#20 0x00000000071df5c0 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::__2::unique_ptr<llvm::raw_pwrite_stream,
std::__2::default_delete<llvm::raw_pwrite_stream> >)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/CodeGen/BackendUtil.cpp:1466:5
#21 0x0000000007c3573b
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/CodeGen/CodeGenAction.cpp:300:7
#22 0x0000000009a56782 clang::ParseAST(clang::Sema&, bool, bool)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/Parse/ParseAST.cpp:178:12
#23 0x0000000007aa9b22 clang::ASTFrontendAction::ExecuteAction()
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/Frontend/FrontendAction.cpp:1037:1
#24 0x0000000007c32d9c clang::CodeGenAction::ExecuteAction()
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/CodeGen/CodeGenAction.cpp:1057:1
#25 0x0000000007aa9563 clang::FrontendAction::Execute()
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/Frontend/FrontendAction.cpp:938:7
#26 0x00000000079e0964
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/Frontend/CompilerInstance.cpp:945:7
#27 0x0000000007c237a9
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:273:8
#28 0x0000000004469313 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/tools/driver/cc1_main.cpp:225:13
#29 0x000000000445c46f ExecuteCC1Tool(llvm::ArrayRef<char const*>,
llvm::StringRef)
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/tools/driver/driver.cpp:309:5
#30 0x000000000445b80c main
/usr/local/google/home/leonardchan/llvm-monorepo/llvm-project-2/clang/tools/driver/driver.cpp:381:5
#31 0x00007ffa247a42b1 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x202b1)
#32 0x000000000445b02a _start
(../llvm-build-2-address-space-fix/bin/clang+0x445b02a)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to