hLLVM-0.5.0.0: hLLVM.cabal
name: hLLVM
version: 0.5.0.0
license: BSD3
license-file: LICENSE
author: Ning Wang <email@ningwang.org>
maintainer: Ning Wang <email@ningwang.org>
build-Type: Simple
cabal-Version: >= 1.10
stability: 0.5
synopsis: A library for processing LLVM assembly codes
category: Compilers/Interpreters
description: A pure Haskell library for analyzing and transforming LLVM assembly codes.
It includes:
1) a parser to parse LLVM code in its text form
2) an internal IR that can be feed into Hoopl
3) a set of utility functions to convert LLVM AST to and from the internal IR
4) a set of utility functions to query the IR
extra-source-files: README.md, LICENSE, CHANGES, TODO
source-repository head
type: git
location: https://github.com/mlite/hLLVM.git
flag debug {
description: Enable debug support
default: False
}
flag testcoverage {
description: Enable test coverage report
default: False
}
library {
default-language: Haskell2010
build-depends: base >= 3 && < 5,
containers,
array,
bytestring,
mtl,
filepath,
directory,
hooplext == 3.10.0.2,
parsec >=3.1.2 && <3.2,
cmdargs >=0.10 && <0.11,
transformers >= 0.3.0.0,
pretty >= 1.1.1.1,
data-dword == 0.3,
template-haskell >= 2.9.0.0
hs-source-dirs: src
exposed-modules: Llvm.Data.Ast,
Llvm.Data.Type,
Llvm.Data.CoreIr,
Llvm.Data.Ir,
Llvm.Data.IrType,
Llvm.Data.Shared,
Llvm.Data.Shared.AtomicEntity,
Llvm.Data.Shared.SimpleConst,
Llvm.Data.Shared.DataLayout,
Llvm.Data.Shared.Util,
Llvm.Data.Conversion,
Llvm.Data.Conversion.AstSimplification,
Llvm.Data.Conversion.AstIrConversion,
Llvm.Data.Conversion.AstScanner,
Llvm.Data.Conversion.IrAstConversion,
Llvm.Data.Conversion.TypeConversion,
Llvm.Data.Conversion.LabelMapM,
Llvm.Util.Mapping,
Llvm.Util.Monadic,
Llvm.Query.TypeConstValue,
Llvm.Query.Qerror,
Llvm.Query.Conversion,
Llvm.Query.IrCxt,
Llvm.Query.TypeDef,
Llvm.Syntax.Printer.Common,
Llvm.Syntax.Printer.SharedEntityPrint,
Llvm.Syntax.Printer.IrPrint,
Llvm.Syntax.Printer.LlvmPrint,
Llvm.Syntax.Parser.Basic,
Llvm.Syntax.Parser.Block,
Llvm.Syntax.Parser.Const,
Llvm.Syntax.Parser.DataLayout,
Llvm.Syntax.Parser.Instruction,
Llvm.Syntax.Parser.Module,
Llvm.Syntax.Parser.Rhs,
Llvm.Syntax.Parser.Type,
Llvm.Pass.Dominator,
Llvm.Pass.Liveness,
Llvm.Pass.Mem2Reg,
Llvm.Pass.NormalGraph,
Llvm.Pass.Optimizer,
Llvm.Pass.PassManager,
Llvm.Pass.PhiFixUp,
Llvm.Pass.Rewriter,
Llvm.Pass.Uda,
Llvm.Pass.PassTester,
ParserTester
if flag(debug) {
if !os(windows) {
cc-options: -DDEBUG
} else {
cc-options: -DNDEBUG
}
}
if flag(testcoverage) {
ghc-options:
}
other-extensions: CPP
}
executable llvm-test
default-language: Haskell2010
main-is: LlvmTest.hs
hs-source-dirs: src
build-depends: base >= 3 && < 5,
containers,
array,
bytestring,
mtl,
filepath,
directory,
template-haskell >= 2.9.0.0,
hooplext == 3.10.0.2,
parsec >=3.1.2 && <3.2,
cmdargs >=0.10 && <0.11,
transformers >= 0.3.0.0,
pretty >= 1.1.1.1,
data-dword == 0.3
if flag(testcoverage) {
ghc-options:
}