[闲聊] 聊聊LLVM吧o_O

楼主: sunneo (艾斯寇德)   2015-05-03 21:35:39
自我大学毕业时(2009)LLVM已经算热门,
LLVM-IR的处理速度快,而且格式完整,还很好用,
IR层的使用者可以将成熟的编译器理论跟优化策略应用上去,
如果你有disasm跟codegen,也能利用LLVM的pass生成转换器。
目前在上面的应用有Renderscript/Filterscript、LLVMPipe(mesa/Gallium)…。
近几年NVIDIA也扩充LLVM弄了个nvvm http://docs.nvidia.com/cuda/nvvm-ir-spec
不过自从jserv大大的这篇 http://www.slideshare.net/jserv/nes-llvm
我就很少看到国内讨论llvm,ptt上的文章还因为时间的关系都消失了。
目前我在学术研究上也看过一些应用,像是看上llvm codegen的效能,
把qemu的binary translation换成llvm-codegen,用jit结果导致效能下降的例子。
另一个是利用llvm当CPU multicore的backend,把multicore cpu当CUDA device
https://code.google.com/p/gpuocelot/ 用这作法的是ocelot
他是在__cudaRegisterFatBinary那个nvcc插入的undocumented function解出,
取出fatbin后用gz解压缩,得到ptx,再交给他的Module,ptx-parser。接着就是由
configuration决定转给哪个ExecutiveDevice,他可以给RemoteDevice、ATI GPU、
NVIDIA GPU、Emulator(1 CPU)、LLVM(Multicore)。不过ocelot在2013就没继续了,
只支援到CUDA 5。
目前在llvm都玩什么?在vm/ir这一块好像很少国内分享跟讨论?

Links booklink

Contact Us: admin [ a t ] ucptt.com