Crates.io | pliron |
lib.rs | pliron |
version | 0.5.0 |
source | src |
created_at | 2022-09-04 10:10:10.402698 |
updated_at | 2024-09-08 15:26:51.115981 |
description | Programming Languages Intermediate RepresentatiON |
homepage | |
repository | https://github.com/vaivaswatha/pliron |
max_upload_size | |
id | 658229 |
size | 341,638 |
pliron
is an extensible compiler IR framework, inspired by MLIR
and written in safe Rust.
Install the rust toolchain.
cargo build
and cargo 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 an llvm-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.
pliron
with other compiler projects, touching upon some design decisions.