windows下llvm的Thread-local-Storage(TLS)的问题
来源:互联网 发布:c语言的数据类型定义 编辑:程序博客网 时间:2024/05/13 09:07
在csdn的第一篇
目前llvm版本(3.6.0)的新JIT引擎MCJIT还不支持的TLS,而且开发组在3.6版本开始把旧jit移除了,所以需要TLS,选择3.4.3版本的旧JIT,用3.6的洗洗睡吧……
windows下,就算使用了3.4版本,MSVC依旧不支持llvm的TLS,所以用VS的洗洗睡吧……
切换到GCC。注意llvm的tls在windows下仍然有许多限制,不可以使用ExternalLinkage声明全局TLS变量,而且不可以在execution_engine->addGlobalMapping为TLS变量添加Mapping,全局TLS变量的Initializer是无效的。。。。。
目前探索到的可以正常运行的使用TLS的方法:
GlobalVariable*bsp=newGlobalVariable(*module,Type::getInt32PtrTy(context),true,GlobalValue::InternalLinkage,(Constant*)ConstantPointerNull::get(Type::getInt32PtrTy(context)),"bsp",0,GlobalVariable::GeneralDynamicTLSModel);
声明一个全局TLS变量,这里设他的类型为Int32Ptr
然后用irbuilder添加一个函数,设置这个变量指向的地址,完成初始化(不同的线程分别设置不同的地址)
0 0
- windows下llvm的Thread-local-Storage(TLS)的问题
- pthread的TLS(THREAD LOCAL STORAGE)
- TLS (Thread local storage)
- Thread-Local Storage(TLS)
- TLS:Thread Local Storage
- TLS:Thread Local Storage
- Thread-Local Storage: TLS
- Thread Local Storage(TLS)
- Thread Local Storage (TLS)
- 线程的局部存储tls (thread local storage)
- TLS(Thread Local Storage)入门
- (TLS)Thread Local Storage(写中.....)
- 线程局部存储Thread Local Storage(TLS)
- 线程本地存储(Thread Local Storage TLS)
- TLS(thread - local storage)线程局部存储
- 线程局部存储(Thread Local Storage,TLS)
- TLS(Thread Local Storage)线程本地存储
- TLS (Thread Local Storage)反调试原理
- 《C语言及程序设计》实践参考——反序数
- 《C语言及程序设计》实践参考——阿姆斯特朗数
- 《C语言及程序设计》实践参考——回文日
- topCoder Stripepainter
- android:ellipsize的使用
- windows下llvm的Thread-local-Storage(TLS)的问题
- QT String
- contiki中etimer定时器事件
- Win10下搭建绿色版基于WNMP的Laravel开发环境
- 硬中断和软中断
- UITabBarController与UINavigationController配合使用
- zoj 3497 Mistwald (矩阵应用)
- codeforces Covered Path
- 自己动手写C语言库函数(2) memmove