[PATCH] D121121: [SLP]Do not schedule instructions with constants/argument/phi operands and external users.

Haowei Wu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 16 16:09:14 PDT 2022


haowei added a comment.

In D121121#3387334 <https://reviews.llvm.org/D121121#3387334>, @ABataev wrote:

> In D121121#3387320 <https://reviews.llvm.org/D121121#3387320>, @ronlieb wrote:
>
>> Hi Alexey 
>> with this patch, i noticed an assert building one of our runtime files , the test case .c produced is around 24000 lines
>> would you like it as is? or reduced ?
>>
>> Instruction does not dominate all uses!
>>
>>   %39 = call <8 x i16> @llvm.fshl.v8i16(<8 x i16> %18, <8 x i16> %38, <8 x i16> <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>)
>>   %23 = shufflevector <8 x i16> %22, <8 x i16> %39, <8 x i32> <i32 0, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14>
>>
>> Instruction does not dominate all uses!
>>
>>   %67 = call <8 x i16> @llvm.fshl.v8i16(<8 x i16> %44, <8 x i16> %66, <8 x i16> <i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15>)
>>   %51 = shufflevector <8 x i16> %50, <8 x i16> %67, <8 x i32> <i32 0, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14>
>>
>> in function eshift
>> fatal error: error in backend: Broken function found, compilation aborted!
>
> Hi Ron, it would be good if you can provide reduced case. I'll revert the patch meanwhile.

Hi we are seeing clang front end errors:

  Instruction does not dominate all uses!
    %shuffle419 = shufflevector <2 x i64> %359, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
    %385 = xor <2 x i64> %shuffle419, %360, !dbg !1753
  Instruction does not dominate all uses!
    %shuffle418 = shufflevector <2 x i64> %357, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
    %386 = xor <2 x i64> %shuffle418, %358, !dbg !1753
  Instruction does not dominate all uses!
    %shuffle417 = shufflevector <2 x i64> %355, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
    %387 = xor <2 x i64> %shuffle417, %356, !dbg !1753
  Instruction does not dominate all uses!
    %shuffle = shufflevector <2 x i64> %353, <2 x i64> poison, <2 x i32> <i32 1, i32 0>
    %388 = xor <2 x i64> %shuffle, %354, !dbg !1753
  Instruction does not dominate all uses!
    %463 = call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %416, <2 x i64> %462, <2 x i64> <i64 63, i64 63>), !dbg !1845
    %460 = shufflevector <2 x i64> %432, <2 x i64> %463, <2 x i32> <i32 0, i32 3>
  in function HRSS_generate_key

When building boringssl and we found out this patch through git bisect. We have a reproducer available. I will file a github issue and post the reproducer there.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121121



More information about the llvm-commits mailing list