[LLVMdev] [FastPolly]: Update of Polly's performance on LLVM test-suite

Star Tan
2013-08-11T01:59:15Z

Hi all,

I have evaluated Polly's performance on LLVM test-suite with latest LLVM
(r188054) and Polly (r187981).  Results can be viewed on:
http://188.40.87.11:8000.

There are mainly five new tests and each test is run with 10 samples:
clang (run id = 27):  clang -O3
pollyBasic (run id = 28):  clang -O3 -load LLVMPolly.so
pollyNoGen (run id = 29):  pollycc -O3 -mllvm -polly-optimizer=none -mllvm
-polly-code-generator=none
pollyNoOpt (run id = 30):  pollycc -O3 -mllvm -polly-optimizer=none
pollyOpt (run id = 31):  pollycc -O3

Here is the performance comparison for the newest Polly:
    http://188.40.87.11:8000/db_default/v4/nts/31?compare_to=18&baseline=18

Overall, there are 198 benchmarks improved and 16 benchmarks regressed.
Especially, with those recent performance-oriented patch files for
ScopDetect/ScopInfo/ScopDependences/..., we have significantly reduced the
compile-time overhead of Polly for a large number of benchmarks, such as:
    SingleSource/Benchmarks/Misc/salsa20        -97.84%
    SingleSource/Benchmarks/Polybench/linear-algebra/solvers/lu/lu
 -85.01%
    MultiSource/Applications/obsequi/Obsequi        -57.12%
    SingleSource/Benchmarks/Polybench/stencils/seidel-2d/seidel-2d
  -50.00%
    MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm        -40.09%
    MultiSource/Benchmarks/mediabench/gsm/toast/toast       -39.91%
    SingleSource/Benchmarks/Misc/whetstone       -39.02%
    MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg       -38.07%
    MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg       -37.70%

However, Polly can still lead to significant compile-time overhead for many
benchmarks.
As shown on:
    http://188.40.87.11:8000/db_default/v4/nts/31?compare_to=28&baseline=28
there are 11 benchmarks whose compile time are more than 2x than clang.
 Furthermore, it seems that PollyDependence pass is still one of most expensive
passes in Polly.

Even without optimization and code generation, Polly also increases the compile
time for some benchmarks.
As shown on:
    http://188.40.87.11:8000/db_default/v4/nts/29?compare_to=28&baseline=28
there are 10 benchmarks that require more than 10% extra compile-time overhead
compared with clang.

Recently, I will still focus on improving some expensive Polly passes such as
PollyDependence.

Cheers,
Star Tan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20130811/a59da022/attachment.html>