[llvm] r323348 - [SLP] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle.

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 24 17:45:38 PST 2018


Hi Davide, I reverted this commit already and fixed the bug in the patch, fixed version will be committed tomorrow. 

Best regards,
Alexey Bataev

> 24 янв. 2018 г., в 20:24, Davide Italiano <davide.italiano at gmail.com> написал(а):
> 
> On Wed, Jan 24, 2018 at 9:50 AM, Alexey Bataev via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>> Author: abataev
>> Date: Wed Jan 24 09:50:53 2018
>> New Revision: 323348
>> 
>> URL: https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%3Frev%3D323348%26view%3Drev&data=02%7C01%7C%7Cda19d89197fd4ba6a64008d563925b9d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636524402599730729&sdata=Qfnr08p5QyU6ovP7Z9nYknM4r%2FxNFWJVkrmFiLrcqEg%3D&reserved=0
>> Log:
>> [SLP] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle.
>> 
> 
> This change is very likely responsible for a crash which manifests
> when building the swift compiler.
> I'll try to come up with a repro for you, but, in the meanwhile, this
> is the assertion I'm seeing.
> 
>                        ^~~~~~~
> 
> Assertion failed: (idx < size()), function operator[], file
> /Users/dcci/work/swift-next/llvm/include/llvm/ADT/SmallVector.h, line
> 149.
> 
> 0  swift                    0x00000001127712e8
> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
> 
> 1  swift                    0x00000001127719f6 SignalHandler(int) + 694
> 
> 2  libsystem_platform.dylib 0x00007fff6b878f5a _sigtramp + 26
> 
> 3  libsystem_platform.dylib 0x0000000000003a28 _sigtramp + 2490936040
> 
> 4  libsystem_c.dylib        0x00007fff6b6a3312 abort + 127
> 
> 5  libsystem_c.dylib        0x00007fff6b66b368 basename_r + 0
> 
> 6  swift                    0x00000001115390a5
> llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>,
> unsigned int, int) + 19253
> 
> 7  swift                    0x000000011153841e
> llvm::slpvectorizer::BoUpSLP::buildTree_rec(llvm::ArrayRef<llvm::Value*>,
> unsigned int, int) + 16046
> 
> 8  swift                    0x0000000111533884
> llvm::slpvectorizer::BoUpSLP::buildTree(llvm::ArrayRef<llvm::Value*>,
> llvm::MapVector<llvm::Value*, llvm::SmallVector<llvm::Instruction*,
> 2u>, llvm::DenseMap<llvm::Value*, unsigned int,
> llvm::DenseMapInfo<llvm::Value*>,
> llvm::detail::DenseMapPair<llvm::Value*, unsigned int> >,
> std::__1::vector<std::__1::pair<llvm::Value*,
> llvm::SmallVector<llvm::Instruction*, 2u> >,
> std::__1::allocator<std::__1::pair<llvm::Value*,
> llvm::SmallVector<llvm::Instruction*, 2u> > > > >&,
> llvm::ArrayRef<llvm::Value*>) + 148
> 
> 9  swift                    0x000000011154eb79
> llvm::SLPVectorizerPass::tryToVectorizeList(llvm::ArrayRef<llvm::Value*>,
> llvm::slpvectorizer::BoUpSLP&, bool) + 4329
> 
> 10 swift                    0x000000011154b130
> llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*,
> llvm::slpvectorizer::BoUpSLP&) + 912
> 
> 11 swift                    0x000000011154a230
> llvm::SLPVectorizerPass::runImpl(llvm::Function&,
> llvm::ScalarEvolution*, llvm::TargetTransformInfo*,
> llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*,
> llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*,
> llvm::OptimizationRemarkEmitter*) + 1696
> 
> 12 swift                    0x000000011155924f (anonymous
> namespace)::SLPVectorizer::runOnFunction(llvm::Function&) + 975
> 
> 13 swift                    0x000000011264a14d
> llvm::FPPassManager::runOnFunction(llvm::Function&) + 541
> 
> 14 swift                    0x000000011264a3c3
> llvm::FPPassManager::runOnModule(llvm::Module&) + 67
> 
> 15 swift                    0x000000011264a91b
> llvm::legacy::PassManagerImpl::run(llvm::Module&) + 971
> 
> 16 swift                    0x000000010f16e754
> swift::performLLVMOptimizations(swift::IRGenOptions&, llvm::Module*,
> llvm::TargetMachine*) + 1844
> 
> 17 swift                    0x000000010f16f117
> swift::performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine*,
> llvm::sys::SmartMutex<false>*, llvm::GlobalVariable*, llvm::Module*,
> llvm::TargetMachine*, swift::version::Version const&, llvm::StringRef,
> swift::UnifiedStatsReporter*) + 2055
> 
> 18 swift                    0x000000010f00ca19
> performCompile(swift::CompilerInstance&, swift::CompilerInvocation&,
> llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*,
> swift::UnifiedStatsReporter*) + 15497
> 
> 19 swift                    0x000000010f007e04
> swift::performFrontend(llvm::ArrayRef<char const*>, char const*,
> void*, swift::FrontendObserver*) + 3284
> 
> 20 swift                    0x000000010efc66d2 main + 3042
> 
> 21 libdyld.dylib            0x00007fff6b5f7115 start + 1
> 
> 22 libdyld.dylib            0x0000000000000059 start + 2493550405
> 
> Stack dump:
> 
> 
> --
> Davide


More information about the llvm-commits mailing list