<div dir="ltr">Hi Hao,<div><br></div><div><span style="font-family:arial,sans-serif;font-size:14px">GenOpString() is only used to generate function body, but here I want to modified the function's argument name, like switching </span><span style="font-family:arial,sans-serif;font-size:14px">vcopy_lane(a, b, c) to </span><span style="font-family:arial,sans-serif;font-size:14px">vcopy_lane(a1, b1, c1).</span><br>
</div><div><span style="font-family:arial,sans-serif;font-size:14px"><br></span></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/10 Hao Liu <span dir="ltr"><<a href="mailto:Hao.Liu@arm.com" target="_blank">Hao.Liu@arm.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Kevin,<br>
<br>
There are two points of hard code in shared functions:<br>
<br>
+    //To avoid argument being multiple defined, add extra number for renaming.<br>
+    if (name == "vcopy_lane")<br>
+      s.push_back('1');<br>
<br>
+    bool extranumber = false;<br>
+    if(name == "vcopy_lane")<br>
+      extranumber = true;<br>
<br>
     s += TypeString(proto[i], typestr) + " __";<br>
     s.push_back(arg);<br>
+    if(extranumber)<br>
+      s.push_back('1');<br>
     s += " = (";<br>
     s.push_back(arg);<br>
+    if(extranumber)<br>
+      s.push_back('1');<br>
<br>
<br>
I think maybe this is not necessary. Because you can achieve renaming in function GenOpString(name, op, proto, typestr).<br>
As this function has passed the "name", you can handle renaming under the switch case of OpCopy like:<br>
<br>
case OpCopy: {<br>
    if (name == "vcopy_lane") {<br>
        renaming ....<br>
<div class="HOEnZb"><div class="h5">   }<br>
 }<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:cfe-commits-bounces@cs.uiuc.edu">cfe-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:cfe-commits-bounces@cs.uiuc.edu">cfe-commits-bounces@cs.uiuc.edu</a>] On Behalf Of Kevin Qin<br>
Sent: Tuesday, October 08, 2013 6:34 AM<br>
To: <a href="mailto:kevinqindev@gmail.com">kevinqindev@gmail.com</a>; <a href="mailto:t.p.northover@gmail.com">t.p.northover@gmail.com</a><br>
Cc: <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>; <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
Subject: [PATCH] Implement aarch64 neon instruction class SIMD copy - Clang<br>
<br>
Implemented related ACLE intrinsic : vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n<br>
<br>
Please review, thanks.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D1855" target="_blank">http://llvm-reviews.chandlerc.com/D1855</a><br>
<br>
Files:<br>
  include/clang/Basic/<a href="http://arm_neon.td" target="_blank">arm_neon.td</a><br>
  lib/CodeGen/CGBuiltin.cpp<br>
  test/CodeGen/aarch64-neon-copy.c<br>
  utils/TableGen/NeonEmitter.cpp<br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Best Regards,<div><br></div><div>Kevin Qin</div></div>
</div>