The llvm-data-interop package

[Tags: bsd3, library]

This package converts the LLVM IR (either bitcode files or LLVM assembly) into a Haskell data type (defined in llvm-base-types). The conversion uses the LLVM libraries to read bitcode. It then traverses the IR and produces a Haskell structure that can be pattern matched against in pure code. Note that this library works with LLVM 3.0-3.3. There are incompatible changes in this release relative to llvm-data-interop 0.2.0. See the changelog in llvm-analysis-0.3.0.


[Skip to ReadMe]

Properties

Version0.3.0
Change logNone available
Dependenciesarray, base (==4.*), bytestring, containers, data-default (>=0.3), deepseq, dwarf, hashable (>=1.1.2.0), hashtables, llvm-base-types (>=0.3.0), loch-th (>=0.2), mtl (>2), text, transformers, unification-fd (>=0.8), unordered-containers (>=0.2.1.0), vector [details]
LicenseBSD3
AuthorTristan Ravitch
Maintainertravitch@cs.wisc.edu
CategoryData
UploadedTue Nov 12 03:24:44 UTC 2013 by TristanRavitch
DistributionsNixOS:0.3.0
Downloads267 total (13 in last 30 days)
Votes
0 []
StatusDocs available [build log]
Successful builds reported [all 2 reports]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for llvm-data-interop-0.3.0

This package converts the LLVM IR (either bitcode files or LLVM assembly) into a Haskell data type (defined in llvm-base-types). The conversion uses the LLVM libraries to read bitcode. It then traverses the IR and produces a Haskell structure that can be pattern matched against in pure code.

After the conversion, no C++ data is referenced and no C++ code is called. This library does link against LLVM directly, and therefore also uses libstdc++. This can make linking tricky sometimes. For example, mixing template-haskell with C++-linked code does not seem to work.

Note that this library only works with LLVM 3.0-3.3, and will try to retain as much compatibility with future and past versions as is reasonable.

Installation Notes

Debian and Ubuntu

You need the development libraries and headers, so be sure to install the llvm-3.X-dev package, where X is the version you would like to use. You will also need clang.

Changes

v0.3.0