<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 31 March 2014 12:35, Yuri <span dir="ltr"><<a href="mailto:yuri@rawbw.com" target="_blank">yuri@rawbw.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

This function (understandably) takes quite a long time, because it has to go through each function in module and write its binary.<br>
But it probably can be parallelized if different threads would write binaries separately, and then merge them together.<br>
<br>
Is this implemented or planned?</blockquote><div><br></div><div>I've never heard this proposed before. Are you interested in working on it?</div><div><br></div><div>Note that we require the output to be deterministic, so what exactly would you be doing? Performing the write out to a memory buffer for each function, then another thread which passes through these memory buffers sequentially and issues the actual I/O calls?</div>

<div><br></div><div>I don't think there's currently even primitives in LLVM to do thread management yet, but now that we've moved to C++11, <thread> may be unlocked?</div><div><br></div><div>I'm hopeful the same technique could end up being used for multi-threaded per-function .s and .o emission.</div>

<div><br></div><div>Nick</div></div></div></div>