<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jul 16, 2014 at 11:00 PM, Krzysztof Parzyszek <span dir="ltr"><<a href="mailto:kparzysz@codeaurora.org" target="_blank">kparzysz@codeaurora.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">On 7/15/2014 6:34 AM, Mahesha S wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
As far as partial loop unrolling is concerned, I could see following<br>
three different possibilities. Assume that unroll factor is 3.<br>
<br>
Original loop:<br>
       for (i = 0; i < 10; i++)<br>
       {<br>
            do_foo(i);<br>
       }<br>
<br>
1. First possibility<br>
       i = 0;<br>
       do_foo(i++);<br>
       do_foo(i++);<br>
       do_foo(i++);<br>
       for (; i < 10; i++)<br>
       {<br>
            do_foo(i);<br>
       }<br>
</blockquote>
<br></div>
This is really peeling, not unrolling.<div class=""><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
2. Second possibility<br>
       for (i = 0; i < 7; i++)<br>
       {<br>
            do_foo(i);<br>
       }<br>
       do_foo(i++);<br>
       do_foo(i++);<br>
       do_foo(i++);<br>
</blockquote>
<br></div>
Same as above.</blockquote><div><br></div><div><br></div><div>I understand. I must agree that, I am newbee when it comes to compiler optimization techniques and nomenclature</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
3. Third possibility<br>
       for (i = 0; i < 10;)<br>
       {<br>
            do_foo(i++);<br>
            do_foo(i++);<br>
            do_foo(i++);<br>
       }<br>
</blockquote>
<br></div>
This one is unrolled, but incorrectly.</blockquote><div> </div><div><br></div><div>I think I understood the mistake here. In fact, I noticed it just after shooting my initial mail. One of the correct ways may be below one.</div>
<div><br></div><div><br></div><div>3. Third possibility<br>       for (i = 0; i < 10;)<br>       {<br>            do_foo(i++);<br>            do_foo(i++);<br>            do_foo(i++);</div><div>            do_foo(i++);</div>
<div>            do_foo(i++);<br>       }<br></div><div><br></div><div><br></div><div>--</div><div>mahesha</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><font color="#888888"><br>
<br>
<br>
-Krzysztof<br>
<br>
<br>
-- <br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation</font></span><div class=""><div class="h5"><br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">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/<u></u>mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>mahesha</div>
</div></div>