<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 6, 2020 at 1:47 AM Renato Golin <<a href="mailto:rengolin@gmail.com" target="_blank">rengolin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 6 Aug 2020 at 00:16, Mircea Trofin via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> The analysis in the scenarios here is external to LLVM - ML training, for example. It's really a way to do printf, but where the data could be large (challenging in a distributed build env, where IO may be throttled), or non-textual (for instance, capture IR right before a pass). An alternative would be to produce a side-file, but then (again, distributed build), you have to collect those files and concatenate them, and modify the build system to be aware of all that.<br>
<br>
I don't understand why we'd add a functionality to LLVM that is<br>
external to LLVM and not want to change the build system accordingly.<br>
<br>
All of the needs you describe on your email can already be done using<br>
optimization remarks and dumped into a file.<br>
<br>
The main difference for you, in the distributed build, is that you<br>
rely on the linker to do the concatenation, and for that you change<br>
the compiler and the ELF files you produce.<br></blockquote><div><br></div><div>At a high level, you are right, the 2 alternatives are similar, but the devil is in the details. The build system (basel-based) is hermetic, and needs to be aware of all such extra files, and have a separate rule to copy and concatenate them. This solution turned out to be much cleaner.</div><div><br></div><div>From Hal's earlier message, it seems we already have something along the lines of what we need in the "-remarks-section" (llvm/lib/Remarks/RemarkStreamer.cpp or llvm/docs/Remarks.rst), so I think we need to investigate what, if anything, needs to be added to fit our scenarios.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Seems to me like a roundabout way of doing concatenation of debug<br>
messages that could easily be done by a simple script and added to<br>
your build system.<br>
<br>
In the past, when I wanted something similar, I wrote a small script<br>
that would be called as the compiler (CMAKE_C_COMPILER=myscript) and<br>
it would do the fiddling with return values and the outputs onto local<br>
fast storage. For a distributed build you'd need another script to<br>
copy them into your dispatcher (or something), and that's it.<br>
<br>
What am I missing? </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
cheers,<br>
--renato<br>
</blockquote></div></div>