我需要生成LLVM代码,这些代码将为大量线程/任务(数十万)提供服务。这些线程应该像英特尔TBB的任务、golang gorutines或其他线程一样轻量级。当然,它们可以用外部C++库来实现,比如前面提到的Intel TBB(如果它与LLVM兼容的话)。
我在LLVM中搜索了很长时间有关线程的信息,但没有找到太多。在LLVM的文档中,描述了一些API调用,但我认为这不是我想要的。
所以有几个问题:
- 有可能将英特尔的TBB或Cilk等技术与LLVM一起使用吗
- 在这种情况下,我应该使用什么线程库
实际上,似乎有一些项目使用英特尔TBB和LLVM,例如英特尔自己的opencl SDK使用TBB和LLVM作为编译器,http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/