[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization

Star Tan tanmx_star at yeah.net
Wed Sep 18 06:47:03 PDT 2013


At 2013-09-18 13:46:13,"Tobias Grosser" <tobias at grosser.es> wrote:

>On 09/17/2013 04:12 AM, Star Tan wrote:
>> Now, we come to more evaluations on http://188.40.87.11:8000/db_default/v4/nts/recent_activity
>
>Hi Star Tan,
>
>thanks for this very extensive analysis. The results look very 
>interesting. As you found out, just removing some canonicalization 
>passes will reduce compile time, but this reduction may in large part 
>being due to Polly not being able to optimise certain pieces of code.
>
>Instead of removing canonicalization passes, I believe we may want to 
>move Polly to a later place in the pass manager. Possibly at the 
>beginning of the loop optimizer right before
>PM.add(createLoopRotatePass());
>
>We would then only need a very low number of canonicalization passes 
>(possibly zero) and instead would put a couple of cleanup passes right
>after Polly. What do you think?

Sure, I agree with you. I did those previous evaluations to see what is the impact of each polly canonicalization pass. Results show that "InstructionCombining" and "PromoteMemoryToRegister" passes are critical to enabling Polly optimization. These passes may be also called by other LLVM components, so I am trying to find out which later point we can start Polly to avoid Polly's canonicalization passes by reusing those existing LLVM passes.
Thanks for your helpful suggestion. I will to look into where we should start Polly. 
Best,
Star Tan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130918/7d568aaa/attachment.html>


More information about the llvm-dev mailing list