llvm-extra: Utility functions for the llvm interface

[ bsd3, code-generation, compilers-interpreters, library ] [ Propose Tags ] [ Report a vulnerability ]

The Low-Level Virtual-Machine is a compiler back-end with optimizer. You may also call it a high-level portable assembler. This package provides various utility functions for the Haskell interface to LLVM, for example:

  • arithmetic operations with more general types but 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.Memory,

  • 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

  • a Makefile and a description of how to run LLVM code from within GHCi.

Modules

[Last Documentation]

  • LLVM
    • Extra
      • LLVM.Extra.Arithmetic
      • LLVM.Extra.Array
      • LLVM.Extra.Class
      • LLVM.Extra.Control
      • LLVM.Extra.Extension
        • LLVM.Extra.Extension.X86
      • ExtensionCheck
        • LLVM.Extra.ExtensionCheck.X86
      • LLVM.Extra.ForeignPtr
      • LLVM.Extra.Maybe
      • LLVM.Extra.MaybeContinuation
      • LLVM.Extra.Memory
      • LLVM.Extra.Monad
      • LLVM.Extra.Scalar
      • LLVM.Extra.ScalarOrVector
      • LLVM.Extra.Vector

Flags

Automatic Flags
NameDescriptionDefault
buildexamples

Build example executables

Disabled
buildtools

Build intrinsic translator

Disabled
cpuid

Use CPUID for host feature detection if available on the architecture

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.3, 0.3.0.1, 0.4.1, 0.4.1.1, 0.4.2, 0.5, 0.6, 0.6.0.1, 0.6.0.2, 0.7, 0.7.0.1, 0.7.1, 0.7.2, 0.7.3, 0.8, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.1, 0.8.2, 0.8.3, 0.9, 0.9.1, 0.10, 0.10.1, 0.11, 0.12, 0.12.0.1, 0.12.1 (info)
Dependencies base (>=3 && <5), containers (>=0.1 && <0.6), cpuid (>=0.2.3 && <0.3), llvm-extra, llvm-tf (>=3.0 && <3.0.1), parsec (>=2.1 && <3.2), tfp (>=0.7 && <0.9), transformers (>=0.1.1 && <0.4), unsafe (>=0.0 && <0.1), utility-ht (>=0.0.1 && <0.1) [details]
Tested with ghc ==6.10.4, ghc ==6.12.3, ghc ==7.0.4, ghc ==7.4.1, ghc ==7.6.3
License BSD-3-Clause
Author Henning Thielemann <haskell@henning-thielemann.de>
Maintainer Henning Thielemann <haskell@henning-thielemann.de>
Category Compilers/Interpreters, Code Generation
Home page http://code.haskell.org/~thielema/llvm-extra/
Source repo this: darcs get http://code.haskell.org/~thielema/llvm-extra/ --tag 0.4.2
head: darcs get http://code.haskell.org/~thielema/llvm-extra/
Uploaded by HenningThielemann at 2014-03-14T16:21:06Z
Distributions NixOS:0.12.1
Reverse Dependencies 7 direct, 1 indirect [details]
Executables prepare-intrinsics, tone-llvm
Downloads 18451 total (90 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-18 [all 6 reports]