4 个版本
0.3.2 | 2024年7月8日 |
---|---|
0.3.1 | 2024年7月8日 |
0.3.0 | 2024年7月8日 |
0.2.0 | 2024年5月31日 |
761 在 编程语言 中排名
347 每月下载量
435KB
10K SLoC
pliron 的 LLVM 方言
该软件包提供以下功能
- LLVM 操作、类型和属性的方言定义。
- inkwell 的包装,将我们的 LLVM 方言与 inkwell 的 LLVM 表示形式相互转换。
后者使用 llvm-sys,这要求您的系统上已安装 LLVM。
我们目前支持 LLVM-17,因此您的计算机上需要安装 LLVM-17。在 Ubuntu 上,这意味着您需要 libllvm17
和 libpolly-17-dev
软件包。
llvm-opt 工具
提供 llvm-opt
二进制文件,以启用将 LLVM 位码二进制文件解析为 pliron
的 LLVM 方言,并将方言从方言重新生成 LLVM 位码。
示例用法
-
将 fib.c 编译成 LLVM-IR
$clang-17 -c-emit-llvm-o/tmp/fib.bc tests/resources/fib.c
-
将 LLVM 位码转换为
pliron
中的 LLVM 方言,并将其转换回 LLVM 位码(在您的 cargo 目标目录中产生的二进制文件llvm-opt
必须在 $PATH 中)$llvm-opt-S-i/tmp/fib.bc-o/tmp/fib.opt.ll
-
将输出 fibonacci LLVM-IR 与 主函数 一起编译成二进制文件
$clang-17 -o /tmp/fib /tmp/fib.out.ll tests/resources/fib-main.c
-
运行 fibonacci 二进制文件以查看打印的前几个斐波那契数。
$/tmp/fib
fib(0): 0 fib(1): 0 fib(2): 1 fib(3): 1 fib(4): 2
注意:LLVM 方言的实现尚未完成,上述内容仅是一个证明概念。
依赖项
~6–8MB
~143K SLoC