LLVM

From HaskellWiki

LLVM is an abbreviation of "Low Level Virtual Machine"; LLVM is:

  • A compilation strategy
  • A virtual instruction set
  • A compiler infrastructure

It is developed by the University of Illinois. It is implemented on many platforms, amongst others the iPhone.

You can use this from a Haskell program using essentially two bindings:

A strongly typed interface that is mainly intended to accelerate your Haskell programs with low-level code:

An untyped interface mainly intended to write compilers and analyse LLVM bitcode: