skip to navigation
skip to content

pykit 0.2.0

IR optimizer and lowerer


Pykit is a package for a pluggable intermediate representation, that is higher level and easier to use than LLVM. It allows pluggable compiler optimizations and custom opcodes, and aims to abstract over backends (e.g. C or LLVM), IR serialization and caching, debug information. exception handling and potentially GC root finding.

Pykit ships with a builtin set of opcodes, and has an IR verifier and interpreter for that set of operations. The IR is a function of basic blocks containing instructions (operations), similar to three-address code. It supports builtin variables and explicit SSA instructions through the dataflow and reg2mem passes.

Although pykit ships with builtin opcodes and passes, one is entirely free to use a custom set of opcodes, types and transformations.


  • lowers and optimizes intermediate code

  • tries to be independent from platform or high-level language

  • can generate LLVM or C89 out of the box
    • todo: finish C codegen :)
  • supports pluggable opcodes

  • has a number of builtin optimizations and transformations

  • has a builtin set of goodies to work with the IR
    • builder, interpreter, verifier
  • supports float and complex math functions through llvmmath

pykit is inspired by VMKit and LLVM.

File Type Py Version Uploaded on Size
pykit-0.2.0.tar.gz (md5) Source 2014-02-19 251KB