[PATCH] D117951: [SLP] Optimize reschedule of previously scheduled bundle member [NFC]

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 3 10:11:28 PST 2022


ABataev added a comment.

In D117951#3294099 <https://reviews.llvm.org/D117951#3294099>, @reames wrote:

> In D117951#3293958 <https://reviews.llvm.org/D117951#3293958>, @ABataev wrote:
>
>> Currently this patch crashes the compiler for SPECCPU2006:
>
>   I don't have a copy of SPEC2006, can you provide a preprocessed source file or IR file?  The stack trace is not enough to guess the cause.



  define void @test() {
  for.end580:
    br i1 false, label %for.body602.preheader, label %for.cond794.preheader
  
  for.body602.preheader:                            ; preds = %for.end580
    br label %for.body602
  
  for.cond794.preheader:                            ; preds = %for.body602, %for.end580
    %fullElectEnergy.1.lcssa = phi double [ 0.000000e+00, %for.end580 ], [ %10, %for.body602 ]
    %electEnergy.1.lcssa = phi double [ 0.000000e+00, %for.end580 ], [ %3, %for.body602 ]
    ret void
  
  for.body602:                                      ; preds = %for.body602, %for.body602.preheader
    %mul701 = fmul double 0.000000e+00, 0.000000e+00
    %mul703 = fmul double 0.000000e+00, 0.000000e+00
    %0 = call double @llvm.fmuladd.f64(double 0.000000e+00, double 0.000000e+00, double %mul701)
    %1 = call double @llvm.fmuladd.f64(double %0, double 0.000000e+00, double %mul703)
    %2 = call double @llvm.fmuladd.f64(double %1, double 0.000000e+00, double 0.000000e+00)
    %3 = call double @llvm.fmuladd.f64(double 0.000000e+00, double %2, double 0.000000e+00)
    %4 = call double @llvm.fmuladd.f64(double %mul701, double 0.000000e+00, double %mul703)
    store double %4, double* null, align 8
    %5 = load double, double* null, align 8
    %6 = load double, double* null, align 8
    %mul746 = fmul double 0.000000e+00, %6
    %mul747 = fmul double 0.000000e+00, %5
    %7 = call double @llvm.fmuladd.f64(double 0.000000e+00, double 0.000000e+00, double %mul746)
    %8 = call double @llvm.fmuladd.f64(double %7, double 0.000000e+00, double %mul747)
    %9 = call double @llvm.fmuladd.f64(double %8, double 0.000000e+00, double 0.000000e+00)
    %10 = call double @llvm.fmuladd.f64(double 0.000000e+00, double %9, double 0.000000e+00)
    br i1 false, label %for.cond794.preheader, label %for.body602
  }
  
  declare double @llvm.fmuladd.f64(double, double, double)

  opt -slp-vectorizer -S -o -  ./repro.ll


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

https://reviews.llvm.org/D117951



More information about the llvm-commits mailing list