12 个版本

0.3.2 2024年7月8日
0.3.1 2024年7月8日
0.2.0 2024年5月31日
0.1.7 2023年10月21日
0.1.1 2022年9月5日

编程语言 中排名 134

每月下载量 46
用于 pliron-llvm

Apache-2.0 协议

315KB
7K SLoC

编程语言中间表示

Status

pliron 是一个可扩展的编译器中间表示框架,灵感来源于 MLIR,并使用安全的 Rust 编写。

构建和测试

  • 安装 Rust 工具链

  • cargo buildcargo test 应该构建编译器并运行测试套件。

  • 要查看一个简单的 IR 构造(由 print_simple 测试),使用以下命令

    cargo test print_simple -- --show-output
    

    它应该打印类似以下内容

    builtin.module @bar {
      ^block_1v1():
        builtin.func @foo: builtin.function<() -> (builtin.int<si64>)> {
          ^entry_block_2v1():
            c0_op_3v1_res0 = test.constant builtin.integer <0x0: builtin.int<si64>>;
            test.return c0_op_3v1_res0
        }
    }
    
  • pliron 提供了一个 llvm-opt 工具,可以将 LLVM-IR 位码解析为 LLVM 词汇并输出 LLVM-IR 位码。

使用库

pliron 目前处于初级阶段,尚未适用于实际使用。未来可以通过在 Rust 项目中添加对 crate 的依赖来使用。

文档

  • 介绍和动机在 入门维基文章 中有介绍。
  • 维基还有 比较,介绍了 pliron 与其他编译器项目,触及了一些设计决策。
  • 代码文档可以在 docs.rs 上找到。

依赖项

~4–5.5MB
~101K SLoC