<div dir="auto">Hi Martin, <div dir="auto"><br></div><div dir="auto">Can't you just port enough to get the existing:</div><div dir="auto"><br></div><div dir="auto"><span style="color:rgb(121,93,163);font-family:consolas,"liberation mono",courier,monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,255)">__llvm_profile_write_buffer</span><br></div><div dir="auto"><span style="color:rgb(121,93,163);font-family:consolas,"liberation mono",courier,monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,255)"><br></span></div><div dir="auto"><span style="font-family:sans-serif">functionality working? This shouldn't depend on IO. You then have free choice of how to get that buffer to somewhere persistent. </span><br></div><div dir="auto"><span style="font-family:sans-serif"><br></span></div><div dir="auto"><span style="font-family:sans-serif">This is something we use on PlayStation, in addition to the more usual "write a file" path.</span></div><div dir="auto"><span style="font-family:sans-serif"><br></span></div><div dir="auto"><span style="font-family:sans-serif">Thanks,</span></div><div dir="auto"><span style="font-family:sans-serif"><br></span></div><div dir="auto">Simon</div><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On 25 May 2017 7:07 a.m., "Martin J. O'Riordan via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-IE" link="blue" vlink="purple"><div class="m_-585995369871199134WordSection1"><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">Yep, done that already, but it is not at all a good fit when the device is inside a drone flying around ;-)  What we do have, is a fake file-system that keeps everything in memory, and after the profiling is completed we offload it for analysis.  I guess I was hoping that there would be a more robust system agnostic implementation.  Use of ‘</span><span style="font-family:"Courier New"">mmap</span><span style="font-family:"Book Antiqua",serif">’ is similarly constraining.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">            MartinO<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"><u></u> <u></u></span></p><div><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Nicholas Wilson [mailto:<a href="mailto:iamthewilsonator@hotmail.com" target="_blank">iamthewilsonator@<wbr>hotmail.com</a>] <br><b>Sent:</b> 25 May 2017 14:39<br><b>To:</b> Martin J. O'Riordan <<a href="mailto:martin.oriordan@movidius.com" target="_blank">martin.oriordan@movidius.com</a>><br><b>Cc:</b> LLVM Developers <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br><b>Subject:</b> Re: [llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems<u></u><u></u></span></p></div></div><div class="elided-text"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Well you could always write a ‘filesystem’ that shunts all data out the serial port (or similar). <u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p><div><div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal">On 25 May 2017, at 9:12 pm, Martin J. O'Riordan via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">What is the best way of porting the ‘</span><span style="font-family:"Courier New"">compiler-rt</span><span style="font-family:"Book Antiqua",serif">’ Profile library for an embedded system with no file-system (and hence no ‘</span><span style="font-family:"Courier New"">fopen</span><span style="font-family:"Book Antiqua",serif">’, etc.)?</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"> </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">What I would like to do is use it as normal, but then use a custom solution for getting the resulting data off the system.  It seems that this library (and the other compiler-rt libraries) are designed only to work with a hosted system.</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"> </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">Are there any other embedded targets that this has been adapted for which would have similar constraints?</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"> </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">Thanks,</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"> </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif">            MartinO</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Book Antiqua",serif"> </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p></div><p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">______________________________<wbr>_________________<br>LLVM Developers mailing list<br></span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954f72">llvm-dev@lists.llvm.org</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br></span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954f72">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</span></a><u></u><u></u></p></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div><br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">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/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>