[PATCH] D148279: [SLP]Add final resize to ShuffleCostEstimator::finalize member function and basic add member functions.
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 21 08:16:46 PDT 2023
ABataev added a comment.
In D148279#4286548 <https://reviews.llvm.org/D148279#4286548>, @eaeltsin wrote:
> Hi,
>
> This was relanded and caused crashes when compiling `numpy` for `aarch64`.
>
> Reproducer:
>
> typedef long double npy_longdouble;
> typedef struct {
> npy_longdouble real, imag;
> } npy_clongdouble;
> enum { NPY_CDOUBLE } min_scalar_type_num_valueptr;
> int min_scalar_type_num_type_num;
> int min_scalar_type_num() {
> npy_clongdouble value = *(npy_clongdouble *)min_scalar_type_num_valueptr;
> if (value.real > -3.4e38 && value.real < 3.4e38 && value.imag > 3.4e38 &&
> value.imag < 3.4e38)
> if (value.real > -1.7e308 && value.real < 1.7e308 && value.imag > 1.7e308 &&
> value.imag < 1.7e308)
> return min_scalar_type_num_type_num;
> return 0;
> }
>
> Command:
>
> clang -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -O3 -vectorize-slp t4.c
>
> Output:
>
> Stack dump:
> 0. Program arguments: clang -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -O3 -vectorize-slp t4.c
> 1. <eof> parser at end of file
> 2. Optimizer
> #0 0x000055c62dade00e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (clang+0x82de00e)
> #1 0x000055c62dadc149 llvm::sys::RunSignalHandlers() (clang+0x82dc149)
> #2 0x000055c62dade6ad SignalHandler(int) (clang+0x82de6ad)
> #3 0x00007f5ba4b791c0 __restore_rt (/usr/grte/v5/lib64/libpthread.so.0+0x151c0)
> #4 0x000055c62d203d3d llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::finalize(llvm::ArrayRef<int>) (clang+0x7a03d3d)
> #5 0x000055c62d1ffd0a llvm::slpvectorizer::BoUpSLP::getEntryCost(llvm::slpvectorizer::BoUpSLP::TreeEntry const*, llvm::ArrayRef<llvm::Value*>) (clang+0x79ffd0a)
> #6 0x000055c62d206064 llvm::slpvectorizer::BoUpSLP::getTreeCost(llvm::ArrayRef<llvm::Value*>) (clang+0x7a06064)
> #7 0x000055c62d237be1 (anonymous namespace)::HorizontalReduction::tryToReduce(llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo const&) (clang+0x7a37be1)
> #8 0x000055c62d223fb2 llvm::SLPVectorizerPass::vectorizeHorReduction(llvm::PHINode*, llvm::Value*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*, llvm::SmallVectorImpl<llvm::WeakTrackingVH>&) (clang+0x7a23fb2)
> #9 0x000055c62d22417a llvm::SLPVectorizerPass::vectorizeRootInstruction(llvm::PHINode*, llvm::Value*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*) (clang+0x7a2417a)
> #10 0x000055c62d21ce5a llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (clang+0x7a1ce5a)
> #11 0x000055c62d21ae15 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (clang+0x7a1ae15)
> #12 0x000055c62d21a746 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (clang+0x7a1a746)
> #13 0x000055c62c353a72 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (clang+0x6b53a72)
> #14 0x000055c62d9478b5 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (clang+0x81478b5)
> #15 0x000055c6295354b2 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>&) (clang+0x3d354b2)
> #16 0x000055c62d949c09 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (clang+0x8149c09)
> #17 0x000055c629537552 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (clang+0x3d37552)
> #18 0x000055c62d946d95 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (clang+0x8146d95)
> #19 0x000055c62952cfad (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>>&) (clang+0x3d2cfad)
> #20 0x000055c629525ca7 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__u::unique_ptr<llvm::raw_pwrite_stream, std::__u::default_delete<llvm::raw_pwrite_stream>>) (clang+0x3d25ca7)
> #21 0x000055c629523816 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (clang+0x3d23816)
> #22 0x000055c62a2742c6 clang::ParseAST(clang::Sema&, bool, bool) (clang+0x4a742c6)
> #23 0x000055c629fe159a clang::FrontendAction::Execute() (clang+0x47e159a)
> #24 0x000055c629f50f64 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (clang+0x4750f64)
> #25 0x000055c6291c85ce clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (clang+0x39c85ce)
> #26 0x000055c6291bd16f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (clang+0x39bd16f)
> #27 0x000055c6291b9ea4 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (clang+0x39b9ea4)
> #28 0x000055c6291b8a9f clang_main(int, char**, llvm::ToolContext const&) (clang+0x39b8a9f)
> #29 0x000055c6291b5d84 main (clang+0x39b5d84)
> #30 0x00007f5ba4a0c633 __libc_start_main (libc.so.6+0x61633)
> #31 0x000055c6291b5cea _start (clang+0x39b5cea)
Hi, must be fixed in 403bd583a8cc1f041430ff1b236ab296a2acdc85 <https://reviews.llvm.org/rG403bd583a8cc1f041430ff1b236ab296a2acdc85>
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148279/new/
https://reviews.llvm.org/D148279
More information about the llvm-commits
mailing list