#llvm #mlir #编译器 #pliron

bin+lib pliron-llvm

pliron 的 LLVM 方言

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编程语言 中排名

Download history 124/week @ 2024-05-28 6/week @ 2024-06-04 5/week @ 2024-06-11 213/week @ 2024-07-02 134/week @ 2024-07-09

347 每月下载量

Apache-2.0

435KB
10K SLoC

pliron 的 LLVM 方言

该软件包提供以下功能

  1. LLVM 操作、类型和属性的方言定义。
  2. inkwell 的包装,将我们的 LLVM 方言与 inkwell 的 LLVM 表示形式相互转换。

后者使用 llvm-sys,这要求您的系统上已安装 LLVM。

我们目前支持 LLVM-17,因此您的计算机上需要安装 LLVM-17。在 Ubuntu 上,这意味着您需要 libllvm17libpolly-17-dev 软件包

llvm-opt 工具

提供 llvm-opt 二进制文件,以启用将 LLVM 位码二进制文件解析为 pliron 的 LLVM 方言,并将方言从方言重新生成 LLVM 位码。

示例用法

  1. fib.c 编译成 LLVM-IR

    $clang-17 -c-emit-llvm-o/tmp/fib.bc tests/resources/fib.c

  2. 将 LLVM 位码转换为 pliron 中的 LLVM 方言,并将其转换回 LLVM 位码(在您的 cargo 目标目录中产生的二进制文件 llvm-opt 必须在 $PATH 中)

    $llvm-opt-S-i/tmp/fib.bc-o/tmp/fib.opt.ll

  3. 将输出 fibonacci LLVM-IR 与 主函数 一起编译成二进制文件

    $clang-17 -o /tmp/fib /tmp/fib.out.ll tests/resources/fib-main.c

  4. 运行 fibonacci 二进制文件以查看打印的前几个斐波那契数。

    $/tmp/fib

        fib(0): 0
        fib(1): 0
        fib(2): 1
        fib(3): 1
        fib(4): 2
    

注意:LLVM 方言的实现尚未完成,上述内容仅是一个证明概念。

依赖项

~6–8MB
~143K SLoC