LLVM: Difference between revisions

From HaskellWiki
(updated to year 2020)
(fixed nested list)
 
Line 17: Line 17:
* {{HackagePackage|id=knead}} provides array processing similar to {{HackagePackage|id=accelerate}}
* {{HackagePackage|id=knead}} provides array processing similar to {{HackagePackage|id=accelerate}}
* Example applications:
* Example applications:
    - {{HackagePackage|id=synthesizer-llvm}} provides efficient signal processing using vector instructions, including a live [[Synthesizer|software synthesizer]]
** {{HackagePackage|id=synthesizer-llvm}} provides efficient signal processing using vector instructions, including a live [[Synthesizer|software synthesizer]]
    - {{HackagePackage|id=patch-image}} constructs a big image from overlapping parts
** {{HackagePackage|id=patch-image}} constructs a big image from overlapping parts


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

Latest revision as of 11:22, 2 October 2020

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: