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

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 24 17:23:38 PST 2018


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: http://llvm.org/viewvc/llvm-project?rev=323348&view=rev
> 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