[polly] speedup compile time for functions with no loops

Tobias Grosser tobias at grosser.es
Thu May 30 10:21:29 PDT 2013


On 05/30/2013 10:16 AM, Sebastian Pop wrote:
> Hi,
>
> I don't have a testcase under hand, and sending huge files over email
> is not optimal,
> so here is how to get plenty of interesting huge testcases: compile
> the nightly test-suite
> with clang -ftime-report and polly enabled.
>
> Then grep for Polly in the compile log, I see things like this:
>
>    21.3500 ( 48.2%)   0.0000 (  0.0%)  21.3500 ( 48.1%)  22.2737 (
> 42.3%)  Polly - Detect static control parts (SCoPs)
>
> Note that I am still seeing huge compile time degradations with the patch
> when compiling a lot of functions with loops,
> although that's less often than without the patch ;-)
>
> There is still room for improvement to cut down from that time,
> maybe focusing scop detection on loop nests: i.e., run scop detection
> on the loop info iterating over loops and not over basic blocks to discover
> the interesting hot spots for polly.

I believe there is plenty of room for improvements. The biggest one is 
probably to not try all regions, but to start from the innermost regions 
and to bail out as soon as we see something invalid.

I agree that there may be various cases where Polly is slow. To discuss 
patches however we need to focus on a case at a time to understand the 
reason. If you see one test case and you can extract a function that is 
exceptionally slow, maybe you can create a bug report and copy me and 
Star Tan.

Tobias




More information about the llvm-commits mailing list