[PATCH] D115955: [SLP]Alternate vectorization for cmp instructions.
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 10 08:04:24 PST 2022
ABataev added a comment.
In D115955#3311301 <https://reviews.llvm.org/D115955#3311301>, @alexfh wrote:
> 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...
Yeah, currently it does not look like related to SLP at all.
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