[llvm] r255621 - Fix MSVC build with LLVM_ENABLE_THREADS=OFF
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 16 20:24:41 PST 2015
Sent from my iPhone
> On Dec 15, 2015, at 12:05 PM, Reid Kleckner <rnk at google.com> wrote:
>
>> On Tue, Dec 15, 2015 at 1:55 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>>
>>
>> Sent from my iPhone
>>
>>> On Dec 15, 2015, at 11:50 AM, Reid Kleckner <rnk at google.com> wrote:
>>>
>>> I think I fixed that const qualified issue with r255678. I still have warnings from ppltasks.h, which is this connect issue:
>>> https://connect.microsoft.com/VisualStudio/feedback/details/1132688/ppltasks-h-does-not-compile-cleanly
>>>
>>> I think we should ban inclusions of <future> in LLVM and make a wrapper header that uses pragmas to disable warnings in <future> transitive includes.
>>
>> #include "llvm/Support/future.h"?
>> I can give a try at that later today, but since I can't validate with MSVC it might take a few tentatives, so I don't mind if someone else do it.
>
> I'm actually inclined to throw them all in "llvm/Support/thread.h", since we're probably going to need more ifdefs to avoid these includes when !LLVM_ENABLE_THREADS.
>
> Have you considered how ThreadPool should operate when the STL does not provide C++11 threading headers? We told users in that situation to turn off LLVM_ENABLE_THREADS, but this would de-support such a configuration altogether.
My understanding (and the information that I got on IRC) was that the only reason to have LLVM_ENABLE_THREADS is to avoid some performance hit because of the need of locking on some globals we have here and there.
So I didn't plan to support any C++11 implementation that do not allow std::async with launch deferred. (Note: we never need to include <thread> for that)
If anyone has such need, it will require to rewrite a custom implementation for std::async with launch::deferred that can be replaced like we do in lib/Support/thread.h for std::thread.
(I'll be happy to review such patch)
--
Mehdi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151216/a01a5080/attachment.html>
More information about the llvm-commits
mailing list