linearscan-hoopl: Makes it easy to use the linearscan register allocator with Hoopl

[ bsd3, development, library ] [ Propose Tags ]

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.

Versions 0.1.0.0, 0.4.0.0, 0.4.0.1, 0.5.0.0, 0.5.1.0, 0.6.0.0, 0.7.0, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.9.2, 0.10.0, 0.10.1, 0.10.2, 0.11, 0.11.1, 1.0.0
Dependencies base (>=4.7 && <5), containers, free, hoopl (>=3.10.0.1), linearscan (==1.0.*), QuickCheck, transformers [details]
License BSD-3-Clause
Author John Wiegley
Maintainer johnw@newartisans.com
Category Development
Home page http://github.com/jwiegley/linearscan-hoopl
Source repo head: git clone https://github.com/jwiegley/linearscan-hoopl
Uploaded by JohnWiegley at Fri Nov 20 17:35:58 UTC 2015
Distributions NixOS:1.0.0
Downloads 3859 total (52 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-11-20 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees