[PATCH] D41692: [Polly][WIP] Remove immediate dominator heuristic for error block detection.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 29 21:14:03 PDT 2018


Meinersbur added a comment.

I ran a comparison on the test-suite and here is the result:

  Program                                                                        leone_N20_polly  leone_N30_errheuristic diff
   SingleSource/Benchmarks/Misc/flops                                            4.332            6.311                    45.7% 
   S...urce/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt  1.443            1.637                    13.4% 
   Polybench/Polybench-421/stencils/adi/P421_adi                                21.096           19.344                    -8.3%  
   External/SPEC/CFP2017rate/507.cactuBSSN_r/507.cactuBSSN_r                    31.899           33.395                     4.7% 

It shows that e.g. Misc/flops runs 45% slower with this patch (comparing medians of three runs). It is, however, the same performance as -O3 run, i.e. Polly makes it slower.
507.cactuBSSN_r shows up I think because Polly is able to tile it, but the default size is ... not a good one for this benchmark. That benchmark should also need improvement in the delinearizer, so I an wondering why it even shows up here.

I proposed this patch because I do not see the idea behind this heuristic. It basically only adds an exception for the first condition in a loop body. What makes the first condition so different than the second? IMHO if a conditional contains a (non-pure/modelable) function call, we should assume that it is not executed because the call would serialize all dependencies in the loops it is in (this only hope would be that the isl rescheduler unswitches the loop). Or maybe I misunderstood the idea behind the heuristic? If so, could you explain the intention?

I personally would love to see more intelligent heuristics.


Repository:
  rPLO Polly

https://reviews.llvm.org/D41692





More information about the llvm-commits mailing list