grin/README.md
2018-03-02 10:09:53 +01:00

7.6 KiB

GRIN

Build Status

The name GRIN is short for Graph Reduction Intermediate Notation, and it is an intermediate language for graph reduction. For an overview read The GRIN Project article. To grasp the details take your time and read Urban Boquist's PhD thesis on Code Optimisation Techniques for Lazy Functional Languages .

Simplifying Transformations

Transformation Schema
vectorisation
case simplification
split fetch operation
right hoist fetch operation
register introduction

Optimising Transformations

Transformation Schema
evaluated case elimination
trivial case elimination
sparse case optimisation
update elimination
copy propagation
late inlining
generalised unboxing
arity raising
case copy propagation
case hoisting
whnf update elimination
common sub-expression elimination
constant propagation
dead procedure elimination
dead variable elimination
dead parameter elimination