[PATCH] D100486: [COST]Improve cost model for shuffles in SLP.

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 28 07:20:50 PDT 2022


ABataev added a comment.

In D100486#3480011 <https://reviews.llvm.org/D100486#3480011>, @fhahn wrote:

> In D100486#3479994 <https://reviews.llvm.org/D100486#3479994>, @ABataev wrote:
>
>> In D100486#3479989 <https://reviews.llvm.org/D100486#3479989>, @fhahn wrote:
>>
>>> Just a heads up that with this change building `llvm-test-suite/SingleSource/UnitTests/matrix-types-spec.cpp` crashes on X86. I'll see if I can extract a reproducer.
>>
>> Hi, most probably the crash is caused by the opaque pointers. This patch does not change the vectorizer behavior, just adjusts the cost of the vector shuffles ops.
>
> It crashes when calculating the cost with
>
>   Assertion failed: (idx < size()), function operator[], file SmallVector.h, line 273.
>   PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
>   Stack dump:
>   0.	Program arguments:  clang++ -DNDEBUG -O3 -O3 -DNDEBUG -isysroot ...
>   1.	<eof> parser at end of file
>   2.	Optimizer
>   Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
>   0  clang-15                 0x000000010a03f8c7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
>   1  clang-15                 0x000000010a03e6f8 llvm::sys::RunSignalHandlers() + 248
>   2  clang-15                 0x000000010a03ed20 llvm::sys::CleanupOnSignal(unsigned long) + 208
>   3  clang-15                 0x0000000109f6417a (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) + 106
>   4  clang-15                 0x0000000109f6435e CrashRecoverySignalHandler(int) + 110
>   5  libsystem_platform.dylib 0x00007ff808cfddfd _sigtramp + 29
>   6  libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603370433094176
>   7  libsystem_c.dylib        0x00007ff808c33d24 abort + 123
>   8  libsystem_c.dylib        0x00007ff808c330cb err + 0
>   9  clang-15                 0x000000010d263f33 llvm::processShuffleMasks(llvm::ArrayRef<int>, unsigned int, unsigned int, unsigned int, llvm::function_ref<void ()>, llvm::function_ref<void (llvm::ArrayRef<int>, unsigned int, unsigned int)>, llvm::function_ref<void (llvm::ArrayRef<int>, unsigned int, unsigned int)>) (.cold.9) + 35
>   10 clang-15                 0x00000001091758c4 llvm::processShuffleMasks(llvm::ArrayRef<int>, unsigned int, unsigned int, unsigned int, llvm::function_ref<void ()>, llvm::function_ref<void (llvm::ArrayRef<int>, unsigned int, unsigned int)>, llvm::function_ref<void (llvm::ArrayRef<int>, unsigned int, unsigned int)>) + 2244
>   11 clang-15                 0x000000010886d07b llvm::X86TTIImpl::getShuffleCost(llvm::TargetTransformInfo::ShuffleKind, llvm::VectorType*, llvm::ArrayRef<int>, int, llvm::VectorType*, llvm::ArrayRef<llvm::Value const*>) + 1755
>   12 clang-15                 0x00000001088666a7 llvm::TargetTransformInfoImplCRTPBase<llvm::X86TTIImpl>::getUserCost(llvm::User const*, llvm::ArrayRef<llvm::Value const*>, llvm::TargetTransformInfo::TargetCostKind) + 4551
>   13 clang-15                 0x000000010913f4b2 llvm::TargetTransformInfo::getUserCost(llvm::User const*, llvm::ArrayRef<llvm::Value const*>, llvm::TargetTransformInfo::TargetCostKind) const + 18
>   14 clang-15                 0x0000000109d40056 llvm::TargetTransformInfo::getUserCost(llvm::User const*, llvm::TargetTransformInfo::TargetCostKind) const + 214
>   15 clang-15                 0x0000000108f97ed5 (anonymous namespace)::CallAnalyzer::visitInstruction(llvm::Instruction&) + 37

Could you just share your compile options for the source file compilation?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100486/new/

https://reviews.llvm.org/D100486



More information about the llvm-commits mailing list