<div><div dir="auto">Thanks Weiren!</div><div dir="auto"><br></div><div dir="auto">    My goal is to transform the code automatically by doing some code analysis, instead of rewriting it manually.</div><div dir="auto"><br></div><div dir="auto">    To do this source level auto transformation, do you have any suggestions on what tool to use? Thanks again!!</div><br><div class="gmail_quote"><div>On Mon, Jan 15, 2018 at 04:25 陳韋任 via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_extra"><div class="gmail_quote">2018-01-15 9:36 GMT+08:00 Linchuan Chen via llvm-dev <span><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Dear all,<div>    I'm working on a simple code transformation problem that can be described as below:</div><div> </div><div>    for a C++ loop:</div><div><br></div><div>    <b><font color="#38761d">for (int i = 0; i < N; ++i) {</font></b></div><div><b><font color="#38761d">        a = M[i] + b;</font></b></div><div><b><font color="#38761d">    }</font></b></div><div><br></div><div>    I want to transform it to:</div><div>    </div><div><font color="#ff0000">    <b>int A[4];    </b></font></div><div><b><font color="#ff0000"><br></font></b></div><div><b><font color="#ff0000">    for (int i = 0; i < N; ++i) {</font></b></div><div><b><font color="#ff0000">        A[0] = M[i] + b;</font></b></div><div><b><font color="#ff0000">        A[1] = M[i] + b;</font></b></div><div><b><font color="#ff0000">        A[2] = M[i] + b;</font></b></div><div><b><font color="#ff0000">        A[3] = M[i] + b;</font></b></div><div><b><font color="#ff0000">    }</font></b></div></div></blockquote><div><br></div></div></div></div><div><div class="gmail_extra"><div class="gmail_quote"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​The transformed code should be</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><div style="font-family:arial,sans-serif"><font color="#000000">    <b>int A[4];    </b></font></div><div style="font-family:arial,sans-serif"><b><font color="#000000"><br></font></b></div><div style="font-family:arial,sans-serif"><b><font color="#000000">    for (int i = 0; i < N; i+=4) {</font></b></div></div></div></div></div><div><div class="gmail_extra"><div class="gmail_quote"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><div style="font-family:arial,sans-serif"><b><font color="#000000">        A[0] = M[i] + b;</font></b></div><div style="font-family:arial,sans-serif"><b><font color="#000000">        A[1] = M[i+1] + b;</font></b></div><div style="font-family:arial,sans-serif"><b><font color="#000000">        A[2] = M[i+2] + b;</font></b></div><div style="font-family:arial,sans-serif"><b><font color="#000000">        A[3] = M[i+3] + b;</font></b></div><div style="font-family:arial,sans-serif"><b><font color="#000000">    }</font></b></div></div></div></div></div><div><div class="gmail_extra"><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">​I would suggest you manually rewrite the code, and see if SLP works on it. I think doing the transformation in source level would be easier. Or you can observe the IR for both side, see if you can think of algorithm handling your case. </div></div><div><br></div>-- <br><div class="m_-1502499705171962267gmail_signature"><div><div>Wei-Ren Chen (陳韋任)<br>Homepage: <a href="https://people.cs.nctu.edu.tw/~chenwj" target="_blank">https://people.cs.nctu.edu.tw/~chenwj</a></div></div></div>
</div></div><div><div class="gmail_extra"></div></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><span style="font-family:Arial;color:rgb(35,35,35);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Sincerely,</span><div><span style="font-family:Arial;color:rgb(35,35,35);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Linchuan</span></div></div></div>