<br><br><div class="gmail_quote">2011/12/9 Joerg Sonnenberger <span dir="ltr"><<a href="mailto:joerg@britannica.bec.de">joerg@britannica.bec.de</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Fri, Dec 09, 2011 at 10:03:37AM +0100, Seb wrote:<br>
> I think my explanation is not clear, my front-end did NOTt generate<br>
> 'llvm.memcpy' it generate LL code that after use of LLVM 'opt' get<br>
> transformed by 'loop-idom' pass into an 'llvm.memcpy' for an overlapping<br>
> loop:<br>
><br>
> static void<br>
> t0(int n)<br>
> {<br>
>     int i;<br>
>     for (i=0; i<n; i++)<br>
>     result[i+1] = result[i];<br>
> }<br>
<br>
</div>Do you really want to assign result[0] to everything?<br>
<br>
I wonder how much work it is to each the loop-idiom pass to handle this<br>
and the case of reverse indices correctly, if result is char *. E.g.<br>
create either memset or memmove...<br>
<span class="HOEnZb"><font color="#888888"><br>
Joerg</font></span><br></blockquote><div> </div></div>This thread is not to discuss how relevant this example is. I just would like to know:<br>a) If people think that adding an option to disable a specific pass is useful.<br>
b) To discuss implementation details (disable all pass invocations, what to do when there are dependencies between passes invocations).<br>c) If I implement it, what's the process to get my change merge with trunk.<br>
<br>Now for my own purpose, I commented out loop-idiom invocation in LLVM 2.9 sources and it worked well. I just wanted to develop something generic that could benefit LLVM community.<br><br>Best Regards<br>Seb<br>