-
Notifications
You must be signed in to change notification settings - Fork 18
Home
HKrogstie edited this page Sep 24, 2025
·
4 revisions
The jlm wiki serves as a collection of documents for working with the jlm codebase.
At its heart, the jlm compiler uses an intermediate representation based on Regionalized Value State Dependence Graphs (RVSDG). You can read about its theoretical foundations in the Publication section of the README.
Details about building jlm can be found in the README.
Depending on how the build is configured, building will create (a subset of) the following binaries:
-
jlm-optcan take a program written in LLVM IR, convert it into RVSDG, do some transformation on it, and output back into LLVM IR. -
jlcis a helper that acts as a drop-in replacement for other C compilers, and usesclang+jlm-optunder the hood. -
jlm-hlstakes LLVM IR and does High Level Synthesis (HLS) to produce hardware descriptions in Verilog.
They will be located in build-release/ for release builds, and build-debug/ for debug builds.
The folder build/ is a symlink to whichever target was last configured.
- To get started with using
jlm-optto optimize C code / LLVM IR, see Tutorial: Running jlm‐opt.
- For a guide on adding unit tests, see Adding and Running Unit Tests.
- If you wish to write RVSDG by hand in a unit test, see Writing RVSDG by hand in Unit Tests.
We host doxygen documentation, which is automatically built from the master branch.