GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Go to file
2018-02-18 14:19:26 +01:00
bugs add parser test 2018-02-18 14:19:26 +01:00
grin hotfix pure reducer 2018-02-18 14:18:27 +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
.gitignore some work on extend HPT to infer LLVM types 2018-01-08 18:25:51 +01:00
.travis.yml Run sum_simple.grin on travis. 2018-01-28 02:46:14 +01:00
AbstractInterpretation.md optional verbose pretty printer for HPTProgram 2018-02-15 09:44:13 +01: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
Documentation.md queue an idea to explain 2018-01-17 15:47:15 +01:00
GRIN-LLVM-CodeGen.md Update GRIN-LLVM-CodeGen.md 2018-02-16 18:34:29 +01:00
GRIN-Type-System.md add type system note 2018-02-15 09:48:46 +01:00
MemoryManagement.md memory management notes 2018-01-15 20:23:47 +01:00
MVP.md add notes 2018-02-13 00:08:27 +01:00
Readings.md Update Readings.md 2018-02-11 21:59:51 +01:00
README.md Update README.md 2018-01-21 20:19:12 +01:00
RUNTIME.md RUNTIME.md 2017-10-02 21:27:49 +01:00
stack.yaml Change test seed. 2018-02-16 20:04:29 +01:00
TODO.md add todo 2018-02-17 11:57:26 +01:00

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 .

Simplification Transformations

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