[PATCH] D99774: [LoopUtils] Populate sibling loops in reverse program order on new pass manager

JinGu Kang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 22 10:49:50 PDT 2021


jaykang10 added a comment.

In D99774#2707984 <https://reviews.llvm.org/D99774#2707984>, @fhahn wrote:

> In D99774#2705058 <https://reviews.llvm.org/D99774#2705058>, @jaykang10 wrote:
>
>> In D99774#2704838 <https://reviews.llvm.org/D99774#2704838>, @fhahn wrote:
>>
>>> Could you share any data of the impact this change has on runtime-performance/code-size on benchmarks?
>>
>> I have checked exec_time/size with llvm-test-suite on x86 and the result is as below.
>
> Thanks for sharing the data, but I am not sure the excerpt you shared motivates a change? The SingleSource/short-running ones probably do not provide much insight. I think the results for MultiSource/SPEC would be more interesting. In how many binaries does the patch cause changes? How does it impact runtime performance for longer benchmarks?

On AArch64, the performance difference from spec2006 with this change is as below.

                  diff(%)
  400.perlbench          0
  401.bzip2        1.04712
  403.gcc         -0.37736
  429.mcf         0.571429
  445.gobmk              0
  456.hmmer              0
  458.sjeng              0
  462.libquantum  0.615385
  464.h264ref      -0.9009
  471.omnetpp     0.684932
  473.astar       0.571429
  483.xalancbmk   -0.37453

Additionally, with this change, IRCE pass handles more cases and it helps loop vectorizer vectorize more loops. Once this change is merged, I will start discussion to turn on IRCE pass as default on new pass manager.


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

https://reviews.llvm.org/D99774



More information about the llvm-commits mailing list