LLVM能够轻松实现高度优化吗?
举个具体的例子,假设我有一种简单的语言,想要为其编写编译器。
- 简单函数
- 简单结构体
- 表格
- 指针(带算术运算)
- 控制结构
- 等等。
我可以很容易地创建一个编译到C后端,并依赖clang -O3进行优化。使用LLVM API是否也同样容易呢?
LLVM能够轻松实现高度优化吗?
举个具体的例子,假设我有一种简单的语言,想要为其编写编译器。
我可以很容易地创建一个编译到C后端,并依赖clang -O3进行优化。使用LLVM API是否也同样容易呢?
opt
命令以及使用构建在所有LLVM工具上的C++库时作为API调用可用。有关简单示例,请参见教程。我看到了几个优点:
#define
,模糊的pragma,指令或命令行选项)。我说的是像向量,保证的(好吧,比在C中更多-据我所知,一些代码生成器忽略它们)尾调用,纯/只读函数,更多对内存布局和类型转换的控制(例如零扩展与符号扩展)。当然,您可能不需要其中大多数。