<div dir="ltr">It seems to me like this would be the responsibility of the executor being used.  You might have one parallel executor which uses a fixed size thread pool, and another which can dynamically add more threads if they are needed.  In any case, I would still hope that it be specified by the time of standardization.  Since the current executor stuff is all magically hidden away and inaccessible, I guess it wouldn't hurt to add this logic there?</div><br><div class="gmail_quote"><div dir="ltr">On Wed, May 10, 2017 at 8:36 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">It's hard to say.  By definition it appears undefined (in the sense that the TS literally does not define it), but on the other hand it is a TS and this issue would (hopefully) come up and be specified before it made it to standardization.<div><br></div><div>Supporting recursive parallel calls certainly seems like desirable behavior, so from my point of view it would be nice to make sure it works.  Not sure if others feel differently.</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, May 10, 2017 at 8:08 PM Scott Smith <<a href="mailto:scott.smith@purestorage.com" target="_blank">scott.smith@purestorage.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>The spec doesn't seem to say anything about recursive calls to parallel functions.  In my mind that means the functions must support it, since it doesn't explicitly say it does not need to support it.  Do you think that's accurate?<br><br></div>If so, I'll rely on that behavior in LLDB, and extend the implementation in LLVM accordingly.<br></div><div class="gmail_extra"><br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On Wed, May 10, 2017 at 5:37 PM, Zachary Turner via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>This is just a PSA that as of r302752, 3 parallel algorithms (for_each, for_each_n, and sort) are available in llvm/Support/Parallel.h.  </div><div><br></div><div>Effort was made to match the C++ Parallelism TS N4507 [<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4507.pdf" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4507.pdf</a>] as closely as possible, but some aspects were intentionally omitted.</div><div><br></div><div>No support is added for the executor proposal N4406 [<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4406.pdf" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4406.pdf</a>], but I plan to try to work on this in the future, with no specified timeline.</div><div><br></div><div><br></div></div>
<br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">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/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div></blockquote></div>