[PATCH] D59514: [PGO] Profile guided code size optimization.

Roland Froese via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 6 09:34:59 PDT 2019


RolandF added a comment.

This revision causes a traceback when compiling SPEC2017 523.xalanbmk_r with -O3 -m64 -mcpu=power9 -flto and PGO, on the -fprofile-use compile step for XMLDateTime.cpp.  Can you please take a look?  Let me know if don't have access to SPEC0217 source and need a reproducer.  The traceback was as follows:

1. <eof> parser at end of file
2. Optimizer #0 0x00007c86ec7ddfb4 PrintStackTraceSignalHandler(void*) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMSupport.so.9svn+0x1bdfb4) #1 0x00007c86ec7db1d8 llvm::sys::RunSignalHandlers() (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMSupport.so.9svn+0x1bb1d8) #2 0x00007c86ec7de400 SignalHandler(int) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMSupport.so.9svn+0x1be400) #3 0x00007c86f20104d8 (linux-vdso64.so.1+0x4d8) #4 0x00007c86eaaae98c __libc_signal_restore_set /build/glibc-uvws04/glibc-2.27/signal/../sysdeps/unix/sysv/linux/nptl-signals.h:80:0 #5 0x00007c86eaaae98c raise /build/glibc-uvws04/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:48:0 #6 0x00007c86eaab0be0 abort /build/glibc-uvws04/glibc-2.27/stdlib/abort.c:79:0 #7 0x00007c86eaa9bb38 __assert_fail_base /build/glibc-uvws04/glibc-2.27/assert/assert.c:92:0 #8 0x00007c86eaa9bbe4 __assert_fail /build/glibc-uvws04/glibc-2.27/assert/assert.c:101:0 #9 0x00007c86ee00ee84 llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(llvm::bfi_detail::IrreducibleGraph const&, llvm::BlockFrequencyInfoImplBase::LoopData*, std::_List_iterator<llvm::BlockFrequencyInfoImplBase::LoopData>) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0xdee84)

#10 0x00007c86ee00371c llvm::BlockFrequencyInfoImpl<llvm::BasicBlock>::computeIrreducibleMass(llvm::BlockFrequencyInfoImplBase::LoopData*, std::_List_iterator<llvm::BlockFrequencyInfoImplBase::LoopData>) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0xd371c)
#11 0x00007c86edffa420 llvm::BlockFrequencyInfoImpl<llvm::BasicBlock>::calculate(llvm::Function const&, llvm::BranchProbabilityInfo const&, llvm::LoopInfo const&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0xca420)
#12 0x00007c86edff9bdc llvm::BlockFrequencyInfo::calculate(llvm::Function const&, llvm::BranchProbabilityInfo const&, llvm::LoopInfo const&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0xc9bdc)
#13 0x00007c86edffbda0 llvm::BlockFrequencyAnalysis::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0xcbda0)
#14 0x00007c86e91fac88 llvm::detail::AnalysisPassModel<llvm::Function, llvm::BlockFrequencyAnalysis, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>::Invalidator>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0x7ac88)
#15 0x00007c86ed6914c8 llvm::AnalysisManager<llvm::Function>::getResultImpl(llvm::AnalysisKey*, llvm::Function&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMCore.so.9svn+0x2914c8)
#16 0x00007c86ed09afe4 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMInstCombine.so.9svn+0x2afe4)
#17 0x00007c86e920b76c llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0x8b76c)
#18 0x00007c86ed68cfb0 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMCore.so.9svn+0x28cfb0)
#19 0x00007c86e921a500 llvm::CGSCCToFunctionPassAdaptor<llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> > >::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0x9a500)
#20 0x00007c86ee0462c8 llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMAnalysis.so.9svn+0x1162c8)
#21 0x00007c86e922addc llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> >::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0xaaddc)
#22 0x00007c86e922a150 llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> > >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0xaa150)
#23 0x00007c86e922972c llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor<llvm::DevirtSCCRepeatedPass<llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&> > >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0xa972c)
#24 0x00007c86ed68b330 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMCore.so.9svn+0x28b330)
#25 0x00007c86e9236aac llvm::detail::PassModel<llvm::Module, llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libLLVMPasses.so.9svn+0xb6aac)
#26 0x00007c86ed68b330 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libLLVMCore.so.9svn+0x28b330)
#27 0x00007c86eb7863d4 (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangCodeGen.so.9svn+0x963d4)
#28 0x00007c86eb780060 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangCodeGen.so.9svn+0x90060)
#29 0x00007c86eba84058 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangCodeGen.so.9svn+0x394058)
#30 0x00007c86e902e884 clang::ParseAST(clang::Sema&, bool, bool) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/../lib/libclangParse.so.9svn+0x2e884)
#31 0x00007c86eb4245a8 clang::ASTFrontendAction::ExecuteAction() (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangFrontend.so.9svn+0xe45a8)
#32 0x00007c86eba82738 clang::CodeGenAction::ExecuteAction() (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangCodeGen.so.9svn+0x392738)
#33 0x00007c86eb423c70 clang::FrontendAction::Execute() (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangFrontend.so.9svn+0xe3c70)
#34 0x00007c86eb3cf5e4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangFrontend.so.9svn+0x8f5e4)
#35 0x00007c86eb314340 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/../lib/libclangFrontendTool.so.9svn+0x4340)
#36 0x0000000010013b38 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/clang-9+0x10013b38)
#37 0x00000000100111b0 main (/compgpfs/builds/continuous.dev/ppc64le/ubuntu16/wyvern.dev.release/228/bin/clang-9+0x100111b0)
#38 0x00007c86eaa8441c generic_start_main /build/glibc-uvws04/glibc-2.27/csu/../csu/libc-start.c:310:0
#39 0x00007c86eaa84618 __libc_start_main /build/glibc-uvws04/glibc-2.27/csu/../sysdeps/unix/sysv/linux/powerpc/libc-start.c:116:0
clang-9: error: unable to execute command: Aborted (core dumped)
clang-9: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 9.0.0 (git at github.ibm.com:compiler/llvm-project.git 480fcb96a95fd1caad55f6da2ee1317ce81eade9)
Target: powerpc64le-unknown-linux-gnu
Thread model: posix


Repository:
  rL LLVM

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

https://reviews.llvm.org/D59514





More information about the llvm-commits mailing list