[PATCH] D115955: [SLP]Alternate vectorization for cmp instructions.
Alexander Kornienko via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 10 08:02:23 PST 2022
alexfh added a comment.
So far I have a stack trace from a release clang build:
#0 0x000055efacbf6c29 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
#1 0x000055efacbf7065 SignalHandler(int)
#2 0x00007f1f25022750 __restore_rt
#3 0x000055efa973210b (anonymous namespace)::LazyValueInfoImpl::getEdgeValue(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*, llvm::Instruction*)
#4 0x000055efa972db80 (anonymous namespace)::LazyValueInfoImpl::solve() (.llvm.1834014330660040286)
#5 0x000055efa972a2dd (anonymous namespace)::LazyValueInfoImpl::getValueInBlock(llvm::Value*, llvm::BasicBlock*, llvm::Instruction*)
#6 0x000055efa978882b runImpl(llvm::Function&, llvm::LazyValueInfo*, llvm::DominatorTree*, llvm::SimplifyQuery const&)
#7 0x000055efa9787755 llvm::CorrelatedValuePropagationPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)
#8 0x000055efa97873b2 llvm::detail::PassModel<llvm::Function, llvm::CorrelatedValuePropagationPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)
#9 0x000055efa983d69a llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)
#10 0x000055efa983d2b2 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&)
#11 0x000055efa999414e llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
#12 0x000055efa9993b32 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, llvm::PreservedAnalyses, 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&)
#13 0x000055efa9940a64 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&)
#14 0x000055efa99406f2 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::PreservedAnalyses, 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&)
#15 0x000055efa987de69 llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&)
#16 0x000055efa987dc52 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::PreservedAnalyses, 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&)
#17 0x000055efa98934a0 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#18 0x000055efa919ddb2 llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#19 0x000055efa8f4a1c4 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#20 0x000055efa8f49e4a llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#21 0x000055efa8f49c92 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#22 0x000055efa8f4a1c4 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&)
#23 0x000055efa8f8c260 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::__u::unique_ptr<llvm::raw_pwrite_stream, std::__u::default_delete<llvm::raw_pwrite_stream>>&, std::__u::unique_ptr<llvm::ToolOutputFile, std::__u::default_delete<llvm::ToolOutputFile> >&)
#24 0x000055efa8f84bb2 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::__u::unique_ptr<llvm::raw_pwrite_stream, std::__u::default_delete<llvm::raw_pwrite_stream> >)
#25 0x000055efa9a4b8d1 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
#26 0x000055efa8f7e180 clang::ParseAST(clang::Sema&, bool, bool)
#27 0x000055efa90338f5 clang::FrontendAction::Execute()
#28 0x000055efa903372e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
#29 0x000055efa90335a1 clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
#30 0x000055efa9a15d58 cc1_main(llvm::ArrayRef<char const*>, char const*, void*)
#31 0x000055efa9112f7e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
#32 0x000055efa98b2a2d main
... and an assertion from a checked clang build, but it has a different stack trace:
assert.h assertion failed at llvm/include/llvm/Support/Casting.h:262 in typename cast_retty<X, Y>::ret_type llvm::cast(Y &) [X = clang::CodeGen::EHCleanupScope, Y = clang::CodeGen::EHScope]: isa<X>(Val) && "cast<Ty>() argument of incompatible type!"
@ 0x55948ac83344 __assert_fail
@ 0x559486524fb0 clang::CodeGen::CodeGenFunction::DeactivateCleanupBlock()
@ 0x55948640de42 clang::CodeGen::CodeGenFunction::EmitCall()
@ 0x559486421016 clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall()
@ 0x559486420429 clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall()
@ 0x5594865d9cb8 clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr()
@ 0x5594865cb013 (anonymous namespace)::AggExprEmitter::VisitCXXConstructExpr()
@ 0x5594865c6ff6 clang::CodeGen::CodeGenFunction::EmitAggExpr()
@ 0x5594865dbb0b StoreAnyExprIntoOneUnit()
@ 0x5594865de49d clang::CodeGen::CodeGenFunction::EmitCXXNewExpr()
@ 0x55948646006a (anonymous namespace)::ScalarExprEmitter::VisitExprWithCleanups()
@ 0x5594864507ab clang::CodeGen::CodeGenFunction::EmitScalarExpr()
@ 0x55948642ae09 clang::CodeGen::CodeGenFunction::EmitAnyExpr()
@ 0x55948642ada1 clang::CodeGen::CodeGenFunction::EmitIgnoredExpr()
@ 0x5594864c8790 clang::CodeGen::CodeGenFunction::EmitStmt()
@ 0x5594864d4910 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope()
@ 0x5594866e9ed3 clang::CodeGen::CodeGenFunction::EmitFunctionBody()
@ 0x5594866eac9e clang::CodeGen::CodeGenFunction::GenerateCode()
@ 0x55948670a722 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition()
@ 0x559486702e90 clang::CodeGen::CodeGenModule::EmitGlobalDefinition()
@ 0x5594866f734f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f737f clang::CodeGen::CodeGenModule::EmitDeferred()
@ 0x5594866f587c clang::CodeGen::CodeGenModule::Release()
@ 0x559486827989 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit()
@ 0x5594863da495 clang::BackendConsumer::HandleTranslationUnit()
@ 0x55948718fa94 clang::ParseAST()
@ 0x559486f07443 clang::FrontendAction::Execute()
@ 0x559486e5d3bf clang::CompilerInstance::ExecuteAction()
@ 0x559485fd88fe clang::ExecuteCompilerInvocation()
Not sure if these two are somehow related though. Looking further...
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D115955/new/
https://reviews.llvm.org/D115955
More information about the llvm-commits
mailing list