GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Go to file
2017-12-03 21:38:56 +01:00
grin Define pipeline via command line. 2017-12-03 21:38:56 +01:00
images add algebras diagram 2017-09-10 15:48:17 +01:00
papers add paper: Trace-based Just-in-time Compilation for Lazy Functional Programming Languages 2017-09-17 14:53:19 +01:00
x64 start to work on LLVM codegen 2017-09-16 15:31:33 +01:00
.gitignore Initial commit 2017-06-23 22:18:06 +02:00
bench.sh add llvm jit to benchmarks 2017-09-18 18:31:16 +01:00
Design.md add papers and notes 2017-08-28 15:44:50 +01:00
Readings.md add Dive into GHC 2017-11-19 15:04:15 +00:00
README.md Update README.md 2017-10-27 18:42:05 +01:00
RUNTIME.md RUNTIME.md 2017-10-02 21:27:49 +01:00
stack.yaml use llvm-hs-pretty for llvm ast printing 2017-11-19 15:33:18 +00:00
TODO.md link to transformation description; links for good materials for recursion schemes 2017-09-10 12:04:09 +01:00

GRIN

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 .

Simplification Transformations

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