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>