llvm 初探
2014-08-17 16:32
197 查看
GCC/G++ 如此成熟,本来以为可能下个20年我们还是用它,但最近看 llvm 似乎大有取代gcc 和 g++ 的架势
1)Apple 编程已经把 llvm 提供developer 使用
2) 开源 3D 架构,Mesa3D 可以使用 llvm 引擎 (当没有 GPU时, Mesa 解释 glsl并执行,速度慢,如果使用 LLVM JIT, 速度大大提升< 没有用llvm,只能用一个CPU核,打开llvm可以用多个核)
3)大数据分析引擎 Impala引入 llvm 提高速度。(估计是解析其提供的类 SQL 语义)
4) Android 利用 llvm 跑 RenderScript
后端:
llvm 可以运行是 llvm 定义的 中间代码, 这个中间代码 可以 编译为 x86, arm, mips 等目标机或 GPU 的 native 代码。
相对于 gcc/g++ llvm 的优势就是可以以 lib形式存在,如此就可以集成到各系统中了
前段:
针对C语言, llvm的前端是 CLANG, 基本支持了 最新的 C/C++ 语言标准, 生成代码比 g++慢一些(可能10%); 但CLANG 是模块化的, 可以对庞大的项目进行重构。
参考资料
主站: http://llvm.org/
开发者谈架构: http://aosabook.org/en/llvm.html
Pyhon 使用 llvm 的 example: http://www.mdevan.org/llvm-py/examples.html
语法制导编译和代码生成使用 llvm学习资料 : http://www.llvm.org/docs/tutorial/LangImpl1.html
其它
http://homepages.uni-paderborn.de/plessl/lectures/2012-Codesign/slides/02-Compiler-LLVM.pdf
1)Apple 编程已经把 llvm 提供developer 使用
2) 开源 3D 架构,Mesa3D 可以使用 llvm 引擎 (当没有 GPU时, Mesa 解释 glsl并执行,速度慢,如果使用 LLVM JIT, 速度大大提升< 没有用llvm,只能用一个CPU核,打开llvm可以用多个核)
3)大数据分析引擎 Impala引入 llvm 提高速度。(估计是解析其提供的类 SQL 语义)
4) Android 利用 llvm 跑 RenderScript
后端:
llvm 可以运行是 llvm 定义的 中间代码, 这个中间代码 可以 编译为 x86, arm, mips 等目标机或 GPU 的 native 代码。
相对于 gcc/g++ llvm 的优势就是可以以 lib形式存在,如此就可以集成到各系统中了
前段:
针对C语言, llvm的前端是 CLANG, 基本支持了 最新的 C/C++ 语言标准, 生成代码比 g++慢一些(可能10%); 但CLANG 是模块化的, 可以对庞大的项目进行重构。
参考资料
主站: http://llvm.org/
开发者谈架构: http://aosabook.org/en/llvm.html
Pyhon 使用 llvm 的 example: http://www.mdevan.org/llvm-py/examples.html
语法制导编译和代码生成使用 llvm学习资料 : http://www.llvm.org/docs/tutorial/LangImpl1.html
其它
http://homepages.uni-paderborn.de/plessl/lectures/2012-Codesign/slides/02-Compiler-LLVM.pdf
相关文章推荐
- Ubuntu下llvm之pass初探
- 函数式编程初探
- javascript对象初探 (五)--- 函数对象的属性
- 【实战HTML5与CSS3 第一篇】初探水深,美丽的导航,绚丽的图片爆炸!!
- javascript --- 继承初探七日谈 (一)
- extjs初探1
- Kibana安装与初探
- 【初探HTML本相】道之真谛不过自然,html标签脱俗还真
- 国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台
- 函数式编程初探
- 国外物联网平台初探(三):IBM Watson IoT
- java instrument 初探
- GCC,LLVM,Clang编译器对比
- Android Fragment初探
- JAVA设计模式初探之装饰者模式
- C Socket初探
- Spring Batch批处理框架初探
- LLVM在警告方面的改进 @ WWDC 2013
- Spring学习总结(一).初探Spring
- stream_iterator、ostream_iterator 使用初探