Closed Bug 1479842 Opened 3 years ago Closed 3 years ago

clang-cl PGO crashes on gfxFontInfoLoader.cpp

Categories

(Firefox Build System :: Toolchains, defect)

defect
Not set
normal

Tracking

(firefox63 fixed)

RESOLVED FIXED
mozilla63
Tracking Status
firefox63 --- fixed

People

(Reporter: away, Assigned: away)

References

Details

Attachments

(1 file)

Fortunately this file is small so we can just de-unify it, de-PGO it, and move on.

I intend to file this at LLVM eventually, but I don't want to let it stand in the way of us enabling PGO. The crash only happens with -fprofile-instr-use and our profdata file, which is too large for LLVM's bugzilla, so I'll want to try to create a reduced repro of this.

120:05.46 #0 0x00007ff65e9c1b69 llvm::BasicBlock::getValueSymbolTable(void) d:\src\llvm-svn\lib\ir\basicblock.cpp:29:0
120:05.46 #1 0x00007ff65e9c2b35 llvm::SymbolTableListTraits<class llvm::Instruction>::transferNodesFromList(class llvm::SymbolTableListTraits<class llvm::Instruction> &,class llvm::ilist_iterator<struct llvm::ilist_detail::node_options<class llvm::Instruction,0,0,void>,0,0>,class llvm::ilist_iterator<struct llvm::ilist_detail::node_options<class llvm::Instruction,0,0,void>,0,0>) d:\src\llvm-svn\lib\ir\symboltablelisttraitsimpl.h:91:0
120:05.46 #2 0x00007ff65e9bf5f3 llvm::Instruction::moveBefore(class llvm::BasicBlock &,class llvm::ilist_iterator<struct llvm::ilist_detail::node_options<class llvm::Instruction,0,0,void>,0,0>) d:\src\llvm-svn\lib\ir\instruction.cpp:98:0
120:05.46 #3 0x00007ff65ed27245 sinkInstruction d:\src\llvm-svn\lib\transforms\scalar\loopsink.cpp:237:0
120:05.46 #4 0x00007ff65ed278c8 sinkLoopInvariantInstructions d:\src\llvm-svn\lib\transforms\scalar\loopsink.cpp:295:0
120:05.46 #5 0x00007ff65ed26c16 `anonymous namespace'::LegacyLoopSinkPass::runOnLoop d:\src\llvm-svn\lib\transforms\scalar\loopsink.cpp:352:0
120:05.46 #6 0x00007ff65e567fa4 llvm::LPPassManager::runOnFunction(class llvm::Function &) d:\src\llvm-svn\lib\analysis\looppass.cpp:217:0
120:05.46 #7 0x00007ff65e937cbb llvm::FPPassManager::runOnFunction(class llvm::Function &) d:\src\llvm-svn\lib\ir\legacypassmanager.cpp:1587:0
120:05.46 #8 0x00007ff65e937ee3 llvm::FPPassManager::runOnModule(class llvm::Module &) d:\src\llvm-svn\lib\ir\legacypassmanager.cpp:1608:0
120:05.46 #9 0x00007ff65e9380da `anonymous namespace'::MPPassManager::runOnModule d:\src\llvm-svn\lib\ir\legacypassmanager.cpp:1670:0
120:05.46 #10 0x00007ff65e937670 llvm::legacy::PassManagerImpl::run(class llvm::Module &) d:\src\llvm-svn\lib\ir\legacypassmanager.cpp:1775:0
120:05.46 #11 0x00007ff65f141f97 `anonymous namespace'::EmitAssemblyHelper::EmitAssembly d:\src\llvm-svn\tools\clang\lib\codegen\backendutil.cpp:838:0
120:05.46 #12 0x00007ff65f144363 clang::EmitBackendOutput(class clang::DiagnosticsEngine &,class clang::HeaderSearchOptions const &,class clang::CodeGenOptions const &,class clang::TargetOptions const &,class clang::LangOptions const &,class llvm::DataLayout const &,class llvm::Module *,enum clang::BackendAction,class std::unique_ptr<class llvm::raw_pwrite_stream,struct std::default_delete<class llvm::raw_pwrite_stream> >) d:\src\llvm-svn\tools\clang\lib\codegen\backendutil.cpp:1269:0
120:05.46 #13 0x00007ff661252e05 clang::BackendConsumer::HandleTranslationUnit(class clang::ASTContext &) d:\src\llvm-svn\tools\clang\lib\codegen\codegenaction.cpp:296:0
120:05.46 #14 0x00007ff66028d757 clang::ParseAST(class clang::Sema &,bool,bool) d:\src\llvm-svn\tools\clang\lib\parse\parseast.cpp:177:0
120:05.46 #15 0x00007ff65f5f5778 clang::ASTFrontendAction::ExecuteAction(void) d:\src\llvm-svn\tools\clang\lib\frontend\frontendaction.cpp:1011:0
120:05.46 #16 0x00007ff65f5f5613 clang::FrontendAction::Execute(void) d:\src\llvm-svn\tools\clang\lib\frontend\frontendaction.cpp:914:0
120:05.46 #17 0x00007ff65f5af64f clang::CompilerInstance::ExecuteAction(class clang::FrontendAction &) d:\src\llvm-svn\tools\clang\lib\frontend\compilerinstance.cpp:962:0
120:05.46 #18 0x00007ff65f69314d clang::ExecuteCompilerInvocation(class clang::CompilerInstance *) d:\src\llvm-svn\tools\clang\lib\frontendtool\executecompilerinvocation.cpp:257:0
120:05.46 #19 0x00007ff65de1480a cc1_main(class llvm::ArrayRef<char const *>,char const *,void *) d:\src\llvm-svn\tools\clang\tools\driver\cc1_main.cpp:218:0
120:05.46 #20 0x00007ff65de0e81d ExecuteCC1Tool d:\src\llvm-svn\tools\clang\tools\driver\driver.cpp:320:0
120:05.46 #21 0x00007ff65de11168 main d:\src\llvm-svn\tools\clang\tools\driver\driver.cpp:382:0
120:05.46 #22 0x00007ff660ffc198 __scrt_common_main_seh f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283:0
120:05.46 #23 0x00007ffe96c33034 BaseThreadInitThunk (C:\WINDOWS\System32\KERNEL32.DLL+0x13034)
120:05.46 #24 0x00007ffe96d81431 RtlUserThreadStart (C:\WINDOWS\SYSTEM32\ntdll.dll+0x71431)
Depends on: 1479456
Assignee: nobody → dmajor
Attachment #8996786 - Flags: review?(nfroyd)
Wow, that diff came out looking weird in Splinter. It looks fine for me locally...
Attachment #8996786 - Flags: review?(nfroyd) → review+
Pushed by dmajor@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d87a527914e1
Don't PGO gfxFontInfoLoader.cpp with clang-cl. r=froydnj
https://hg.mozilla.org/mozilla-central/rev/d87a527914e1
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Filed at LLVM.
Blocks: 1491279
You need to log in before you can comment on or make changes to this bug.