name: linearscan-hoopl
version: 1.0.0
synopsis: Makes it easy to use the linearscan register allocator with Hoopl
homepage: http://github.com/jwiegley/linearscan-hoopl
license: BSD3
license-file: LICENSE
author: John Wiegley
maintainer: johnw@newartisans.com
category: Development
build-type: Simple
cabal-version: >=1.10
description:
This module provides two convenience features for Hoopl users that wish to
use @linearscan@ for register allocation in their compilers.
.
First, it defines a type class called 'NodeAlloc'. After defining an
instance of this class for your particular graph node type, simply call
'LinearScan.Hoopl.allocateHoopl'. This is a simpler interface than using
@linearscan@ directly, which requires two records of functions that are more
general in nature than the methods of 'NodeAlloc'.
.
Second, it provides a DSL for constructing assembly language DSLs that
compile into Hoople program graphs. See the tests for a concrete example.
This is mainly useful for constructing tests of intermediate representations.
.
Please see the tests for an example of the simple assembly language that is
used to test the @linearscan@ allocator.
Source-repository head
type: git
location: https://github.com/jwiegley/linearscan-hoopl
library
default-language: Haskell2010
exposed-modules:
LinearScan.Hoopl
LinearScan.Hoopl.DSL
build-depends:
base >=4.7 && <5
, hoopl >= 3.10.0.1
, linearscan >= 1.0 && < 1.1
, containers
, transformers
, free
, QuickCheck
test-suite test
default-language: Haskell2010
type: exitcode-stdio-1.0
ghc-options: -Wall -fno-warn-deprecated-flags -threaded
hs-source-dirs: test
main-is: Main.hs
other-modules:
AsmTest
Assembly
Normal
Generated
Programs.Blocked
Programs.Exhaustion
Programs.Ordered
build-depends:
base >=3
, hspec >= 1.4.4
, hspec-expectations >= 0.3
, hoopl >= 3.10.0.1 && < 3.11
, linearscan >= 1.0 && < 1.1
, linearscan-hoopl
, containers >= 0.5.5
, transformers >= 0.3.0.0
, lens-family-core
, deepseq
, QuickCheck