[LLVMdev] [Polly] Question about Polly's speed up on huffbench.c without optimization and code generation

Star Tan tanmx_star at yeah.net
Mon Aug 5 20:08:59 PDT 2013


Hi all,


 It seems that Polly could still speed up  test-suite/SingleSource/Benchmarks/CoyoteBench/huffbench.c even without any optimization and code generation. Our evaluation show that when compiled with "clang -Xclang -load -Xclang LLVMPolly.so -mllvm -polly -mllvm -polly-optimizer=none -mllvm -polly-code-generator=none", the execution time of huffbench would reduced to 15 secs from the original 19 secs without Polly.


By investigating Polly's canonicalication passes, I find the speedup mainly comes from "createIndVarSimplifyPass()", which is controlled by the variable SCEVCodegen:


    if (!SCEVCodegen)
       PM.add(polly::createIndVarSimplifyPass());


If we remove this canonicalication pass, then there would be no performance improvement.


Could anyone give me some hints why Polly needs this canonicalication pass in normal cases but refuse it in SCEVCodegen case? Is it possible to remove this canonicalication pass at all?


Thanks,
Star Tan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130806/4a6040cc/attachment.html>


More information about the llvm-dev mailing list