| CARVIEW |
llvm-data-interop: A low-level data interoperability binding for LLVM
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]
Downloads
- llvm-data-interop-0.3.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.3.0 |
|---|---|
| Dependencies | array, base (>=4 && <5), 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] |
| Tested with | ghc ==7.6.3 |
| License | BSD-3-Clause |
| Author | Tristan Ravitch |
| Maintainer | travitch@cs.wisc.edu |
| Uploaded | by TristanRavitch at 2013-11-12T03:24:44Z |
| Category | Data |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 1269 total (5 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Successful builds reported [all 2 reports] |
Readme for llvm-data-interop-0.3.0
[back to package description]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
- Currently, this library is set up to link against the LLVM shared
library (libLLVM-3.X.so). Most distro packages build the LLVM
shared library. If you make a custom build, be sure to configure
with
--enable-shared.
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
- Support LLVM-3.3 (contributed by Patrick Hulin)
- Minor breaking change in MetaDW*Type. These no longer have a MetaDWFile; instead, they directly contain their file and directory information.