<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial">Hi all,</div><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><br></div><div><span style="line-height: 1.7;">When I was profiling Polly, I found some results were beyond my understanding. I need your help.</span><br><div style="color: rgb(0, 0, 0); font-family: arial; font-size: 14px; line-height: 1.7;"></div><div id="divNeteaseMailCard" style="color: rgb(0, 0, 0); font-family: arial; font-size: 14px; line-height: 1.7;"></div><br><span style="color: rgb(0, 0, 0); font-family: arial; font-size: 14px; line-height: 1.7;">To profile the Polly in details, I developed some timers to count the compiling overhead for each part of Polly. Attached is the patch!
  file for this purpose. For each runOnRegion/</span><span style="line-height: 1.7;">runOnScop/runOnFunction/runOnLoop function in Polly, a timer is inserted to count its compiling overhead. Since these functions usually account for the major compiling time, I think those timers should catch most of Polly compiling overhead.  </span>Unfortunately<span style="line-height: 1.7;">,  this is not true. My experimental results show that the compiling time captured by those timers only accounts for less than half of total Polly compiling time.</span></div><div><span style="line-height: 1.7;"><br></span></div><div><span style="line-height: 1.7;">For example, when compiling the doitgen.c in PolyBench with Polly, the total Polly compiling overhead is about 0.7 seconds, but the compiling overhead captured by our timers is only about 0.2 seconds.  A lot of compiling time is </span>consumed<span style="line-height: 1.7;"> by LLVM codes out of Polly.  Fo!
 r example, the RegisterPasses.cpp shows that </span><span style="
line-height: 1.7;">PM.add(polly::createIslScheduleOptimizerPass()) is immediately followed by PM.add(polly::createCodeGenerationPass()), but our profiling shows that 0.4 seconds </span>elapse between the two passes (<span style="line-height: 1.7;">ScheduleOptimizer and </span><span style="line-height: 1.7;">CodeGeneration)</span><span style="line-height: 1.7;">.  I have checked that CodeGeneration pass only depends on a few LLVM passes as follows:</span></div><div><div style="line-height: 1.7;">    AU.addRequired<CloogInfo>();</div><div style="line-height: 1.7;">    AU.addRequired<Dependences>();</div><div style="line-height: 1.7;">    AU.addRequired<DominatorTree>();</div><div style="line-height: 1.7;">    AU.addRequired<RegionInfo>();</div><div style="line-height: 1.7;">    AU.addRequired<ScalarEvolution>();</div><div style="line-height: 1.7;">    AU.addRequired<Scop!
 Detection>();</div><div style="line-height: 1.7;">    AU.addRequired<ScopInfo>();</div><div style="line-height: 1.7;">    AU.addRequired<DataLayout>();</div><div style="line-height: 1.7;"><br></div><div><span style="line-height: 1.7;">How could I find out where the time is spent on between two </span>adjacent Polly passes<span style="line-height: 1.7;">? Can anyone give me some </span><span style="line-height: 1.7;">advice</span><span style="line-height: 1.7;">?</span></div><div><span style="line-height: 1.7;"><br></span></div><div><span style="line-height: 1.7;">Thank you!</span></div><div><span style="line-height: 1.7;"><br></span></div><div><span style="line-height: 1.7;">Best Regards</span></div><div><span style="line-height: 1.7;">Star Tan.</span></div><div><span style="line-height: 1.7;"><br></span></div><div><br></div><div><span style="line-height: 1.7;">PS: I have updated my GSoC proposal. You can access the application o!
 n </span><a href="https://gist.github.com/tanstar/5441808" target
="_blank">https://gist.github.com/tanstar/5441808</a> or on  <a href="https://gist.github.com/tanstar/5441808/raw/c041e001300e3502403eb4071e9556a6eb2b7fd5/%5BGSoc2013%5D%5BLLVM-Polly%5D+Reducing+Polly+Compiling+Overhead" style="line-height: 1.7;">https://gist.github.com/tanstar/5441808/raw/c041e001300e3502403eb4071e9556a6eb2b7fd5/%5BGSoc2013%5D%5BLLVM-Polly%5D+Reducing+Polly+Compiling+Overhead</a></div><div>I would submit the proposal in recent days. Any comments or advice would be appreciated. Thank you!</div><div style="line-height: 1.7;"><br></div><div style="line-height: 1.7;"><pre>At 2013-04-26 11:08:02,tanmx_star <tanmx_star@yeah.net> wrote:
>Hi all,
>
>I have updated my GSoS proposal: "FastPolly: Reducing LLVM-Polly Compiling overhead" (https://gist.github.com/tanstar/5441808).  I think the pass ordering problem you discussed early can be also investigated in this project!
>
>Is there any comment or advice about my proposal?  I appreciate all your help and advice.
>
>Thanks,
>Star Tan
>Proposal: https://gist.github.com/tanstar/5441808
>
>>Hi all,
>>
>>
>>This is Star Tan, who proposed a project to reduce the Polly compiling overhead several days ago.  After that, I kept on moving forward for this project. By now, I am much familiar with Polly and LLVM. Thanks to the help from Polly and LLVM group, I have also provided some LLVM-Polly patch files for this project, such as  r179673, r179586, r179159, r179158, r179157, r178530. I am confident that I am on the right position to propose a GSoC project.
>>
>>
>>I have written a GSoC proposal draft in https://gist.github.com/tanstar/5441808. I am pleased to answer any questions about this project. Any advice or comment would be appreciated.
>>
>>
>>Thank you very much!
>>
>>
>>Best regards,
>>Star Tan.</pre></div></div></div></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"><span title="neteasefooter"><span id="netease_mail_footer"><a href="#" target="_blank"></a></span></span>
</span></span>