llvm
myjisgreat
这个作者很懒,什么都没留下…
展开
-
windows下llvm的Thread-local-Storage(TLS)的问题
在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的原创 2015-04-18 21:00:57 · 827 阅读 · 0 评论 -
llvm MCJIT 的若干陷阱
llvm MCJIT 的若干陷阱搬运自我的百度空间最近把llvm的老版本JIT转型到MCJIT,遇到一些问题首先是如何启动MCJIT,原来调用InitializeNativeTarget();的地方,添加InitializeNativeTargetAsmPrinter();InitializeNativeTarge原创 2015-06-14 00:51:41 · 3216 阅读 · 0 评论 -
VS2010编译LLVM(制作Lib文件)
VS2010编译LLVM(制作Lib文件)搬运自我的百度空间这里编译一个常用由常用LLVM的库组成的Lib文件,提高引用LLVM的程序的编译速度。相比codeblocks简单一些。仍然使用Cmake这个工具。如果没有把python加入环境变量,把python26.exepython26.dll python26.zip拷贝到(源文原创 2015-06-14 00:15:20 · 2173 阅读 · 0 评论 -
Cmake + CodeBlocks 编译llvm
Cmake + CodeBlocks 编译llvm搬运自我的百度空间1.安装cmake2.Cmake中,source code选择llvm的源文件文件夹,whereto build the binaries任意选择一个目录(一会生成的codeblocks工程文件会保存在这个文件夹)3.(如果环境变量没有设置python路径原创 2015-06-14 00:09:20 · 2463 阅读 · 0 评论 -
llvm JIT强制保留frame pointer(栈帧)
llvm JIT强制保留frame pointer(栈帧)搬运自我的百度空间不优化时,在每个函数开头都会把ebp入栈,这样可以方便调试时栈回溯(Stack Trace)等。push ebp的这个动作称为创建栈桢但是llvm默认情况下,如果函数中没有alloca等栈操作,就会把栈桢动作优化掉(因为没有用到esp和ebp),这样调试时无法原创 2015-06-14 00:44:27 · 846 阅读 · 0 评论 -
llvm GDB调试的几个坑
可以用DIBuilder类辅助建立调试信息,首先createcompileunit。然后要注意了,必须调用module->addModuleFlag(Module::Warning, "Debug Info Version",DEBUG_METADATA_VERSION); 否则把bitcode写入文件再读出来调试信息会被清除。如果要显示行号,可以在大多数llvm的指令里通过setdebugl原创 2015-10-08 10:59:08 · 3049 阅读 · 0 评论