Hi Chris,<br><br>Is there a compelling reason why llvm-gcc does not
always produce natural loops.  Is it a code size issue, or are there
performance implications as well?  I am seeing a simple 'while' loop
compiled to an unnatural loop, without any gotos, breaks, or
continues.  What is the reason for this?<br><br>Marc<br><br><div class="gmail_quote">On Wed, Feb 11, 2009 at 6:51 PM, Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com">clattner@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><br>
On Feb 11, 2009, at 1:13 PM, Marc de Kruijf wrote:<br>
<br>
> I am reviving this thread because I am seeing the same thing<br>
> (unnatural loops produced by llvm-gcc), but it is not limited to -O0<br>
> -- I am seeing it for -O2 and -O3 as well.<br>
> Some of my research work is relying on LoopInfo to provide loop<br>
> information for all loops, but it is missing these loops.  Is there<br>
> any work in the pipeline that aims to fix this?<br>
<br>
</div>Not that I know of.  There has been a project on the open projects<br>
list to write a pass that converts all loops to natural loops (through<br>
code duplication).  That would be a nice and self-contained project if<br>
anyone is interested.<br>
<font color="#888888"><br>
-Chris<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<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>