<font color="#000066"><font size="2"><font face="times new roman,serif">How are you collecting the Static/Dynamic features?<br></font></font></font><div><font class="Apple-style-span" color="#000066" face="'times new roman', serif"><br>

</font><div class="gmail_quote">On Sun, Jun 19, 2011 at 6:08 AM, Frits van Bommel <span dir="ltr"><<a href="mailto:fvbommel@gmail.com">fvbommel@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div></div><div class="h5">On 19 June 2011 14:44, Suresh Purini <<a href="mailto:suresh.purini@gmail.com">suresh.purini@gmail.com</a>> wrote:<br>
>  I am doing few experiments to do understand optimization phase<br>
> interactions. Here is a brief description of my experiements.<br>
><br>
> 1. I picked the list of machine independent optimizations acting on<br>
> llvm IR (those that are enabled at O3).<br>
> 2.  for each optimzation in the optimization-list<br>
>             a) Compiled the program using 'clang -c O0 -flto program.c'<br>
>             b) opt -optimization program.o -o optprogram.o<br>
>             c) llc optprogram.o<br>
>             d) gcc optprogram.o.s<br>
>             e) Measure the performance of the generated executable.<br>
> 3. for each optimization pair [opt1, opt2] from the optimization list<br>
>             a) Compiled the program using 'clang -c O0 -flto program.c'<br>
>             b) opt -opt1 -opt2 program.o -o optprogram.o<br>
>             c) llc optprogram.o<br>
>             d) gcc optprogram.o.s<br>
>             e) Measure the performance of the generated executable.<br>
><br>
> My intention is understand or model phase interactions by observing<br>
> this data and the corresponding program's static/dynamic features.<br>
> However I couldn't glean much information from this data as almost in<br>
> all cases there is no change in the runtime when compared to O0 except<br>
> for few programs where gvn and loop-rotate improved the program<br>
> performance to some extent. But the 'scalarrepl' optimization is an<br>
> exception because it almost consistently improved the program<br>
> performance and in fact it almost matches the O3 level performance of<br>
> the program.<br>
><br>
> Can some one enlighten about what is happening? Is there any thing<br>
> wrong in my experimental setup?<br>
<br>
</div></div>In short: it doesn't really make sense to run most of the<br>
optimizations before running -scalarrepl (or -mem2reg), and it makes<br>
even less sense to leave it out entirely.<br>
<br>
Almost all optimizations assume that -scalarrepl (or the less<br>
aggressive -mem2reg) has been run first. If neither has been run, then<br>
all variables are still stored on the stack, meaning they have to be<br>
loaded before each use and stored when they change. That makes it hard<br>
for other optimizations to see what's really happening because they<br>
usually consider every load to be a separate value.<br>
<br>
A better setup might be to always run -scalarrepl (or mem2reg) before<br>
2b/3b. Running it in a separate opt invocation allows you to to save<br>
some cycles by pre-calculating it once.<br>
<div><div></div><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><font face="'times new roman', serif" color="#666666">Sameer Kulkarni</font><div><font face="'times new roman', serif"><font color="#666666">My Present email load:</font> <a href="http://courteous.ly/Ok2EKh" target="_blank">http://courteous.ly/Ok2EKh</a><br>

</font><div><font face="'times new roman', serif"><font color="#666666">Work:</font> <a href="http://www.cis.udel.edu/~skulkarn/" target="_blank">www.cis.udel.edu/~skulkarn/</a></font></div><div><br></div></div><br>


</div>