llvm-extra: Utility functions for the llvm interface
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,
storing and reading Haskell values in an LLVM compatible format in LLVM.Extra.Marshal,
LLVM functions for loading and storing values in Haskell's
Storable
format in LLVM.Extra.Storable,support value tuples and instance declarations of LLVM classes in LLVM.Extra.Tuple,
handling of termination by a custom monad on top of
CodeGenFunction
in LLVM.Extra.MaybeContinuationvarious kinds of loops (while) and condition structures (if-then-else) in LLVM.Extra.Control
more functional loop construction using LLVM.Extra.Iterator
complex Haskell values mapped to LLVM values in LLVM.Extra.Multi.Value
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
library llvm-extra
Modules
[Index]
- LLVM
- Extra
- LLVM.Extra.Arithmetic
- LLVM.Extra.Array
- LLVM.Extra.Control
- LLVM.Extra.Either
- LLVM.Extra.FastMath
- LLVM.Extra.Function
- LLVM.Extra.Iterator
- LLVM.Extra.Marshal
- LLVM.Extra.Maybe
- LLVM.Extra.MaybeContinuation
- LLVM.Extra.Memory
- LLVM.Extra.Monad
- Multi
- LLVM.Extra.Scalar
- LLVM.Extra.ScalarOrVector
- LLVM.Extra.Storable
- LLVM.Extra.Struct
- LLVM.Extra.Tuple
- LLVM.Extra.Vector
- Extra
library llvm-extra:private
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
buildexamples | Build example executables | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- llvm-extra-0.10.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
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) |
---|---|
Change log | Changes.md |
Dependencies | base (>=3 && <5), base-orphans (>=0.5 && <1), bool8 (>=0.0 && <0.1), containers (>=0.1 && <0.7), enumset (>=0.0.5 && <0.2), fixed-length (>=0.2.1 && <0.3), llvm-extra, llvm-tf (>=9.2 && <9.3), non-empty (>=0.2.1 && <0.4), prelude-compat (>=0.0 && <0.0.1), storable-enum (>=0.0 && <0.1), storable-record (>=0.0.5 && <0.1), tagged (>=0.7 && <0.9), tfp (>=1.0 && <1.1), transformers (>=0.1.1 && <0.6), utility-ht (>=0.0.15 && <0.1) [details] |
Tested with | ghc ==7.0.4, ghc ==7.4.2, ghc ==7.8.4, ghc ==8.4.4, ghc ==8.6.5, ghc ==8.8.1 |
License | BSD-3-Clause |
Author | Henning Thielemann <haskell@henning-thielemann.de> |
Maintainer | Henning Thielemann <haskell@henning-thielemann.de> |
Revised | Revision 1 made by HenningThielemann at 2021-07-26T16:40:02Z |
Category | Compilers/Interpreters, Code Generation |
Home page | https://wiki.haskell.org/LLVM |
Source repo | this: darcs get http://code.haskell.org/~thielema/llvm-extra/ --tag 0.10.1 head: darcs get http://code.haskell.org/~thielema/llvm-extra/ |
Uploaded | by HenningThielemann at 2020-04-13T08:29:50Z |
Distributions | NixOS:0.12.1 |
Reverse Dependencies | 7 direct, 1 indirect [details] |
Executables | tone-llvm |
Downloads | 18632 total (5 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |