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 inLLVM.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 inLLVM.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
inLLVM.Extra.MaybeContinuation
various 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.Nice.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