编译器

LLVM 初步了解

2018-08-16  本文已影响40人  草原野马
LLVM标志

什么是LLVM

传统的编译器架构

传统的编译器架构

LLVM编译器架构

LLVM编译器架构
 从上面的2张图就可以看出来LLVM编译器的优点
 1.不同的前端后端使用统一的中间代码LLVM Intermediate Representation (LLVM IR)
 2.如果需要支持一种新的编程语言,那么只需要实现一个新的前端
 3.如果需要支持一种新的硬件设备,那么只需要实现一个新的后端
 4.优化阶段是一个通用的阶段,它针对的是统一的LLVM IR,不论是支持新的编程语言,还是支持新的硬件设备,都不需要对优化阶段做修改
 5.相比之下,GCC的前端和后端没分得太开,前端后端耦合在了一起。所以GCC为了支持一门新的语言,或者为了支持一个新的目标平台,就 变得特别困难
 6LLVM现在被作为实现各种静态和运行时编译语言的通用基础结构(GCC家族、Java、.NET、Python、Ruby、Scheme、Haskell、D等)

下面主要介绍下Clang

Clang 与LLVM 的关系

Clang 与 LLVM 的关系

具体操作开始

下载LLVM

下载Clang

编译源码

安装cmake和ninja

libclang、libTooling

Clang插件开发


clang插件开发

写完插件代码后需要重新来到我们创建llvm_xcode 文件下

运行效果

测试插件效果

clang插件开发6 – Hack Xcode

上一篇下一篇

猜你喜欢

热点阅读