<div dir="ltr">Keep in mind that if your intrinsic has an obvious direct mapping to the builtin you're exposing, you can just write your intrinsic in a way that it inherits from <span style="font-family:monospace,monospace">GCCBuiltin</span>. That will avoid having to add custom lowering in <span style="font-family:monospace,monospace">CGBuiltin.cpp</span>. There should be plenty of examples of that in the <span style="font-family:monospace,monospace">include/llvm/IR/</span><wbr><span style="font-family:monospace,monospace">IntrinsicsX86.td</span> file that you already modified.<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 31, 2017 at 11:56 PM, Martin J. O'Riordan via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="EN-IE"><div class="m_1780685590584852938WordSection1"><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif;color:#943634">I suspect that you almost certainly need to also implement a handler for this in the function ‘</span><span style="font-family:"Courier New";color:black">CodeGenFunction::<wbr>EmitX86BuiltinExpr</span><span style="font-family:"Book Antiqua",serif;color:#c00000">’ in:<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Courier New";color:black"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-left:36.0pt"><span style="font-family:"Courier New";color:black">tools/clang/lib/CodeGen/<wbr>CGBuiltin.cpp<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif;color:#943634"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif;color:#943634">All the best,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif;color:#943634"><u></u> <u></u></span></p><p class="MsoNormal" style="text-indent:36.0pt"><span style="font-family:"Book Antiqua",serif;color:#943634">MartinO<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif;color:#943634"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif" lang="EN-US">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif" lang="EN-US"> cfe-dev [<a href="mailto:cfe-dev-bounces@lists.llvm.org" target="_blank">mailto:cfe-dev-bounces@lists.<wbr>llvm.org</a>] <b>On Behalf Of </b>Seth Goldstein via cfe-dev<br><b>Sent:</b> 31 October 2017 22:20<br><b>To:</b> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><b>Subject:</b> [cfe-dev] Adding an intrinsic that the user can include in source code<u></u><u></u></span></p><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">I would like to add an intrinsic that the user can put in their code.<u></u><u></u></p></div><div><p class="MsoNormal">The intrinsic is for sending, ala MPI, a value to another processor.<u></u><u></u></p></div><div><p class="MsoNormal">I have read the short document,<u></u><u></u></p></div><div><p class="MsoNormal"><a href="https://llvm.org/docs/ExtendingLLVM.html" target="_blank">https://llvm.org/docs/<wbr>ExtendingLLVM.html</a>, about adding intrinsics but<u></u><u></u></p></div><div><p class="MsoNormal">must be missing something because it doesn't mention changing anything<u></u><u></u></p></div><div><p class="MsoNormal">in clang.  I added my intrinsic to<u></u><u></u></p></div><div><p class="MsoNormal">llvm/include/llvm/IR/<wbr>IntrinsicsX86.td, then I added it to<u></u><u></u></p></div><div><p class="MsoNormal">clang/include/clang/Basic/<wbr>BuiltinsX86.def.  When I compile my code I get:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">send.c:14:3: error: cannot compile this builtin function yet<u></u><u></u></p></div><div><p class="MsoNormal">  __builtin_uli_send0(1, 0, &incr);<u></u><u></u></p></div><div><p class="MsoNormal">  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<wbr>~~<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The AST has information about my intrinsic and the parameters, but not<u></u><u></u></p></div><div><p class="MsoNormal">sure how to proceed.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">What am I missing?<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><div><div><div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">--------------<u></u><u></u></p></div><div><p class="MsoNormal">Seth Copen Goldstein<u></u><u></u></p></div><div><p class="MsoNormal">Carnegie Mellon University<u></u><u></u></p></div><div><p class="MsoNormal">Computer Science Dept<u></u><u></u></p></div><div><p class="MsoNormal">7111 GHC<u></u><u></u></p></div><div><p class="MsoNormal"><a href="tel:(412)%20268-3828" value="+14122683828" target="_blank">412-268-3828</a><u></u><u></u></p></div></div></div></div></div></div></div></div></div></div></div><br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>