@hackage llvm-extra0.2
Utility functions for the llvm interface
Categories
License
BSD-3-Clause
Maintainer
Henning Thielemann <haskell@henning-thielemann.de>
Links
Versions
Installation
Dependencies (7)
- base >=3 && <5
- containers >=0.1 && <0.4
- cpuid >=0.2.2 && <0.3
- llvm >=0.9.1.0 && <0.9.1.2
- transformers >=0.1.1 && <0.3
- type-level >=0.2.3 && <0.3 Show all…
Dependents (9)
@hackage/synthesizer-llvm, @hackage/llvm-extension, @hackage/knead-arithmetic, @hackage/acme-everything, @hackage/set-cover, @hackage/knead, Show all…
Package Flags
buildexamples
(off by default)
Build example executables
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 better type inference than the
llvminterface inLLVM.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
CodeGenFunctioninLLVM.Extra.MaybeContinuationvarious kinds of loops (while) and condition structures (if-then-else) in
LLVM.Extra.Controlautomatic 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.Vectortype classes for handling scalar and vector operations in a uniform way in
LLVM.Extra.ScalarOrVectora Makefile and a description of how to run LLVM code from within GHCi.