<div dir="ltr"><div>r288412 appears to cause severe regression compiling few clang files w/ optimizations enabled.</div><div>Compilation of clang/lib/Basic/Warnings.cpp takes forever now (didn't finish after 15 minutes) with all the time spent in SLPVectorizer.</div><div><br></div><div>Reproduction:</div><div>* do release build of clang ()</div><div><div># bin/clang --version</div><div>clang version 4.0.0 (trunk 288414) (llvm/trunk 288417)</div><div>Target: x86_64-unknown-linux-gnu</div><div>Thread model: posix</div><div>InstalledDir: /usr/local/google/home/tra/work/llvm/build/gpu/release/bin</div></div><div><br></div><div>* compile clang/lib/Basic/Warnings.cpp with -O3:</div><div>bin/clang -v -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_OBJC_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/lib/Basic -I../../../tools/clang/lib/Basic -I../../../tools/clang/include -Itools/clang/include -Iinclude -I../../../include -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Werror=date-time -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3    -UNDEBUG  -fno-exceptions -fno-rtti -MMD -MT tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o -MF tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o.d -o tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o -c ../../../tools/clang/lib/Basic/Warnings.cpp<br></div><div><br></div><div>Typical stack trace:</div><div><br></div><div><div>#0  0x0000000001bfb043 in llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, llvm::ArrayRef<llvm::Value*>, bool) ()</div><div>#1  0x0000000001bf83c3 in llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) ()</div><div>#2  0x0000000001bf73b0 in llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*) ()</div><div>#3  0x0000000001c00392 in (anonymous namespace)::SLPVectorizer::runOnFunction(llvm::Function&) ()</div><div>#4  0x0000000001682b7f in llvm::FPPassManager::runOnFunction(llvm::Function&) ()</div><div>#5  0x0000000001682dd3 in llvm::FPPassManager::runOnModule(llvm::Module&) ()</div><div>#6  0x00000000016832d5 in llvm::legacy::PassManagerImpl::run(llvm::Module&) ()</div><div>#7  0x0000000001c44097 in clang::EmitBackendOutput(clang::DiagnosticsEngine&, 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> >) ()</div><div>#8  0x0000000002380a74 in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) ()</div><div>#9  0x0000000002850d05 in clang::ParseAST(clang::Sema&, bool, bool) ()</div><div>#10 0x0000000002049728 in clang::FrontendAction::Execute() ()</div><div>#11 0x000000000200f971 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ()</div><div>#12 0x00000000020e351b in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) ()</div><div>#13 0x0000000000807b5e in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) ()</div></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 1, 2016 at 12:16 PM, Alexey Bataev via Phabricator via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This revision was automatically updated to reflect the committed changes.<br>
Closed by commit rL288412: [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. (authored by ABataev).<br>
<br>
Changed prior to commit:<br>
  <a href="https://reviews.llvm.org/D27215?vs=79588&id=79966#toc" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D27215?vs=79588&id=79966#toc</a><br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D27215" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D27215</a><br>
<br>
Files:<br>
  llvm/trunk/lib/Transforms/<wbr>Vectorize/SLPVectorizer.cpp<br>
  llvm/trunk/test/Transforms/<wbr>SLPVectorizer/X86/insert-<wbr>element-build-vector.ll<br>
<br>
<br>______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--Artem Belevich</div></div>
</div></div>