[haskell-llvm] llvm-extra

Henning Thielemann lemming at henning-thielemann.de
Fri Oct 8 13:24:02 EDT 2010


I just want to advertise my package llvm-extra that contains a lot of 
utility functions when programming in LLVM assembly language. It makes 
Haskell the perfect portable macro assembler. It provides:

  * arithmetic operations with better type inference than the llvm
    interface in LLVM.Extra.Arithmetic,

  * a type class for loading and storing sets of values with one command
    (macro) in LLVM.Extra.Representation,

  * support instance declarations of LLVM classes in LLVM.Extra.Class,

  * handling of termination by a custom monad on top of CodeGenFunction
    in LLVM.Extra.MaybeContinuation

  * various kinds of loops (while) and condition structures (if-then-else)
    in LLVM.Extra.Control

  * automatic adaption to target specific extensions, currently used for 
access of vector operations that are specific to an SSE level on x86 
processors in LLVM.Extra.Extension (On x86 architectures we depend on the 
cpuid package that is needed for automatic detection of available 
features.)

  * advanced vector operations such as sum of all vector elements, cumulative
    sum, floor, non-negative fraction, absolute value in LLVM.Extra.Vector

  * type classes for handling scalar and vector operations in a uniform way
    in LLVM.Extra.ScalarOrVector


The darcs repository is at:
  http://code.haskell.org/~thielema/llvm-extra/

Upload to hackage follows the next llvm release.



More information about the Haskell-llvm mailing list