Martin J. O'Riordan via llvm-dev
2017-May-25 14:07 UTC
[llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems
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 ‘mmap’ is similarly constraining. MartinO From: Nicholas Wilson [mailto:iamthewilsonator at hotmail.com] Sent: 25 May 2017 14:39 To: Martin J. O'Riordan <martin.oriordan at movidius.com> Cc: LLVM Developers <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems Well you could always write a ‘filesystem’ that shunts all data out the serial port (or similar). On 25 May 2017, at 9:12 pm, Martin J. O'Riordan via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > wrote: What is the best way of porting the ‘compiler-rt’ Profile library for an embedded system with no file-system (and hence no ‘fopen’, etc.)? 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. Are there any other embedded targets that this has been adapted for which would have similar constraints? Thanks, MartinO _______________________________________________ LLVM Developers mailing list <mailto:llvm-dev at lists.llvm.org> llvm-dev at lists.llvm.org <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170525/1900a855/attachment.html>
Simon Whittaker via llvm-dev
2017-May-26 16:07 UTC
[llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems
Hi Martin, Can't you just port enough to get the existing: __llvm_profile_write_buffer functionality working? This shouldn't depend on IO. You then have free choice of how to get that buffer to somewhere persistent. This is something we use on PlayStation, in addition to the more usual "write a file" path. Thanks, Simon On 25 May 2017 7:07 a.m., "Martin J. O'Riordan via llvm-dev" < llvm-dev at lists.llvm.org> wrote: 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 ‘mmap’ is similarly constraining. MartinO *From:* Nicholas Wilson [mailto:iamthewilsonator at hotmail.com] *Sent:* 25 May 2017 14:39 *To:* Martin J. O'Riordan <martin.oriordan at movidius.com> *Cc:* LLVM Developers <llvm-dev at lists.llvm.org> *Subject:* Re: [llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems Well you could always write a ‘filesystem’ that shunts all data out the serial port (or similar). On 25 May 2017, at 9:12 pm, Martin J. O'Riordan via llvm-dev < llvm-dev at lists.llvm.org> wrote: What is the best way of porting the ‘compiler-rt’ Profile library for an embedded system with no file-system (and hence no ‘fopen’, etc.)? 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. Are there any other embedded targets that this has been adapted for which would have similar constraints? Thanks, MartinO _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170526/46907865/attachment.html>
Xinliang David Li via llvm-dev
2017-May-26 17:29 UTC
[llvm-dev] [compiler-rt] '-fprofile-generate' and embedded systems
Right this is the way. One feature that is missing for the buffer writer is the value profiling support. David On Fri, May 26, 2017 at 9:07 AM, Simon Whittaker via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi Martin, > > Can't you just port enough to get the existing: > > __llvm_profile_write_buffer > > functionality working? This shouldn't depend on IO. You then have free > choice of how to get that buffer to somewhere persistent. > > This is something we use on PlayStation, in addition to the more usual > "write a file" path. > > Thanks, > > Simon > > > On 25 May 2017 7:07 a.m., "Martin J. O'Riordan via llvm-dev" < > llvm-dev at lists.llvm.org> wrote: > > 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 ‘mmap’ is similarly > constraining. > > > > MartinO > > > > *From:* Nicholas Wilson [mailto:iamthewilsonator at hotmail.com] > *Sent:* 25 May 2017 14:39 > *To:* Martin J. O'Riordan <martin.oriordan at movidius.com> > *Cc:* LLVM Developers <llvm-dev at lists.llvm.org> > *Subject:* Re: [llvm-dev] [compiler-rt] '-fprofile-generate' and embedded > systems > > > > Well you could always write a ‘filesystem’ that shunts all data out the > serial port (or similar). > > > > On 25 May 2017, at 9:12 pm, Martin J. O'Riordan via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > What is the best way of porting the ‘compiler-rt’ Profile library for an > embedded system with no file-system (and hence no ‘fopen’, etc.)? > > > > 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. > > > > Are there any other embedded targets that this has been adapted for which > would have similar constraints? > > > > Thanks, > > > > MartinO > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170526/24824c8b/attachment.html>