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日

#13 in #mlir

Download history 133/week @ 2024-05-30 7/week @ 2024-06-06 3/week @ 2024-06-13 326/week @ 2024-07-04 46/week @ 2024-07-11 1/week @ 2024-07-18

373 每月下载
用于 2 crates

Apache-2.0

72KB
2K SLoC

编程语言中间表示ON

Status

pliron 是一个可扩展的编译器IR框架,受 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 目前处于起步阶段,还不适用于实际应用。未来,它可以通过将 crate 添加到您的 Rust 项目中来使用。

文档

依赖关系

~0.9–1.5MB
~32K SLoC