pliron
is an extensible compiler IR framework, inspired by MLIR
and written in safe Rust.
-
Install the rust toolchain.
-
cargo build
andcargo test
should build the compiler and run the testsuite. -
To see a simple IR constructed (by the print_simple test), use the following command:
cargo test print_simple -- --show-output
It should print something like:
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
provides anllvm-opt
tool that can parse LLVM-IR bitcode into the LLVM dialect and output LLVM-IR bitcode.
pliron
is currently in a nascent stage and not yet useful for
real-world use. In the future it can be used by just adding
a dependence to the crate
in your Rust project.
- Introduction and motivation are covered in the introductory wiki article.
- The wiki also has a comparison of
pliron
with other compiler projects, touching upon some design decisions. - Code documentation can be found on docs.rs.