hLLVM

A library for analyzing and transforming LLVM (3.5) assembly codes

Latest on Hackage:0.5.0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed and maintained by Ning Wang

hLLVM -- A Haskell Library for analyzing and transforming LLVM assembly codes

Goal:

  • Provide functionalities for performaning analysis and transformation of LLVM codes in pure Haskell

Build:

From hLLVM toplevel directory

cabal configure

cabal build

The test driver 'llvm-test' is generated at dist/build/llvm-test

Test:

test LLVM assembly parser

dist/build/llvm-test/llvm-test parse -i test/test1.ll -o out.ll

test mem2reg pass

dist/build/llvm-test/llvm-test pass -s=mem2reg -f=10000 -i test/test1.ll -o out.ll

test dce pass

dist/build/llvm-test/llvm-test pass -s=dce -f=10000 -i test/test1.ll -o out.ll

test mem2reg and dce passes

dist/build/llvm-test/llvm-test pass -s=mem2reg -s=dce -f=1000 -i test/test1.ll -o out.ll

run tests in batch (llvm-test needs to be available in the executable search paths)

test/runLlvmTest.sh [parse|ast2ir|ir2ast]

Changes

0.5
- support LLVM 3.5 syntax
- renamed to hLLVM
0.1
- support LLVM 3.1 syntax
- Hoopl based implementation :mem2reg, dce, dominator
comments powered byDisqus