6 releases (3 breaking)
0.5.0 | Sep 8, 2024 |
---|---|
0.4.0 | Aug 27, 2024 |
0.3.2 | Jul 8, 2024 |
0.2.0 | May 31, 2024 |
#14 in #mlir
Used in 2 crates
(via pliron)
88KB
2K
SLoC
Programming Languages Intermediate RepresentatiON
pliron
is an extensible compiler IR framework, inspired by MLIR
and written in safe Rust.
Build and Test
-
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.
Using the Library
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.
Documentation
- 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.
Dependencies
~0.8–1.4MB
~30K SLoC