Personal tools

LLVM

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m
(llvm-extra, synthesizer-llvm)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
{{Stub}}
 
 
 
[http://llvm.org/ LLVM] is an abbreviation of "Low Level Virtual Machine"; LLVM is:
 
[http://llvm.org/ LLVM] is an abbreviation of "Low Level Virtual Machine"; LLVM is:
 
* A compilation strategy
 
* A compilation strategy
Line 6: Line 4:
 
* A compiler infrastructure
 
* A compiler infrastructure
   
It is developed by the University of Illinois. To use this from a Haskell program, one can download the package [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/llvm llvm]. Usage examples can be found in the blog article at [http://augustss.blogspot.com/2009/01/llvm-llvm-low-level-virtual-machine-is.html]. LLVM can improve performance, as described in [http://augustss.blogspot.com/2009/01/performance-update-ive-continued.html A performance update]; it is implemented on many platforms, amongst others the [http://www.ipodobserver.com/story/30184 iPhone].
+
It is developed by the University of Illinois.
  +
It is implemented on many platforms, amongst others the [http://www.ipodobserver.com/story/30184 iPhone].
  +
  +
You can use this from a Haskell program using the Haskell package <tt>llvm</tt>.
  +
There is
  +
* a cabal package at [http://hackage.haskell.org/package/llvm Hackage],
  +
* a [http://code.haskell.org/llvm darcs repository],
  +
* a [http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-llvm mailing list],
  +
* a [http://augustss.blogspot.com/2009/01/llvm-llvm-low-level-virtual-machine-is.html blog article] with examples,
  +
* the article "[http://augustss.blogspot.com/2009/01/performance-update-ive-continued.html A performance update]" that describes, how LLVM can improve performance
  +
  +
Additional stuff
  +
* [http://hackage.haskell.org/package/llvm-extra llvm-extra] provides high-level control structures (<hask>ifThenElse</hask>, <hask>whileLoop</hask>, <hask>Maybe</hask>), vector instructions, automatic adaption to target specific extensions
  +
  +
Applications
  +
* [http://hackage.haskell.org/package/synthesizer-llvm synthesizer-llvm] provides efficient signal processing using vector instructions, including a realtime [[Synthesizer|software synthesizer]]
   
[[Category:Applications]]
 
 
[[Category:Packages]]
 
[[Category:Packages]]
 
[[Category:Performance]]
 
[[Category:Performance]]

Latest revision as of 17:25, 26 September 2010

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 the Haskell package llvm. There is

Additional stuff

  • llvm-extra provides high-level control structures (
    ifThenElse
    ,
    whileLoop
    ,
    Maybe
    ), vector instructions, automatic adaption to target specific extensions

Applications