llvm-hs-pretty and llvm-hs
These are complementary tools where the pretty printer depends on the bindings library to convert LLVM AST representations back into human-readable textual IR format.
About llvm-hs-pretty
llvm-hs/llvm-hs-pretty
Pretty printer for LLVM AST to Textual IR
Converts `llvm-hs-pure` AST back to canonical LLVM textual IR, enabling round-trip validation through the LLVM verifier without C++ bindings. Uses a polymorphic `PP` typeclass to support printing individual IR elements (constants, instructions) alongside complete modules. Validates fidelity through test suite that parses official LLVM IR, reconstructs it via `llvm-hs-pure` AST, and compares textual output against originals.
About llvm-hs
llvm-hs/llvm-hs
Haskell bindings for LLVM
Provides both low-level FFI bindings matching the LLVM C API and high-level pure Haskell abstractions like IRBuilder and ModuleBuilder for easier code generation. The FFI layer extends upstream LLVM's C API with missing functionality from the C++ interface, while preferring pure Haskell implementations where possible. Well-suited for implementing compiler backends, as demonstrated by projects like Google's Dex research language.
Scores updated daily from GitHub, PyPI, and npm data. How scores work