diff --git a/README.md b/README.md index 41f319bd..5e30e0e2 100644 --- a/README.md +++ b/README.md @@ -19,27 +19,29 @@ Code Optimisation Techniques for Lazy Functional Languages Transformation | Schema -------------- | ------ -vectorisation | -case simplification | -split fetch operation | -right hoist fetch operation | -register introduction | +vectorisation | +case simplification | +split fetch operation | +right hoist fetch operation | +register introduction | ## Optimising Transformations -- [x] evaluated case elimination -- [x] trivial case elimination -- [x] sparse case optimisation -- [x] update elimination -- [x] copy propagation -- [x] constant propagation -- [x] dead procedure elimination -- [x] dead variable elimination -- [x] common sub-expression elimination -- [x] late inlining -- [ ] generalised unboxing -- [ ] arity raising -- [ ] dead parameter elimination -- [ ] case copy propagation -- [ ] case hoisting -- [ ] whnf update elimination _requires sharing analysis_ +Transformation | Schema +-------------- | ------ +constant propagation | +common sub-expression elimination | +dead procedure elimination | +dead variable elimination | +dead parameter elimination | +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 | diff --git a/images/arity-raising.png b/images/arity-raising.png new file mode 100644 index 00000000..8de7c638 Binary files /dev/null and b/images/arity-raising.png differ diff --git a/images/case-copy-propagation.png b/images/case-copy-propagation.png new file mode 100644 index 00000000..bb7f0fcd Binary files /dev/null and b/images/case-copy-propagation.png differ diff --git a/images/case-hoisting.png b/images/case-hoisting.png new file mode 100644 index 00000000..137125e9 Binary files /dev/null and b/images/case-hoisting.png differ diff --git a/images/copy-propagation-left.png b/images/copy-propagation-left.png new file mode 100644 index 00000000..9f4c944d Binary files /dev/null and b/images/copy-propagation-left.png differ diff --git a/images/copy-propagation-right.png b/images/copy-propagation-right.png new file mode 100644 index 00000000..8c5737b0 Binary files /dev/null and b/images/copy-propagation-right.png differ diff --git a/images/evaluated-case-elimination.png b/images/evaluated-case-elimination.png new file mode 100644 index 00000000..49232eac Binary files /dev/null and b/images/evaluated-case-elimination.png differ diff --git a/images/generalised-unboxing.png b/images/generalised-unboxing.png new file mode 100644 index 00000000..b34122eb Binary files /dev/null and b/images/generalised-unboxing.png differ diff --git a/images/late-inlining.png b/images/late-inlining.png new file mode 100644 index 00000000..fb0a69ae Binary files /dev/null and b/images/late-inlining.png differ diff --git a/images/sparse-case-optimisation.png b/images/sparse-case-optimisation.png new file mode 100644 index 00000000..2a97ca91 Binary files /dev/null and b/images/sparse-case-optimisation.png differ diff --git a/images/trivial-case-elimination.png b/images/trivial-case-elimination.png new file mode 100644 index 00000000..1ed63a75 Binary files /dev/null and b/images/trivial-case-elimination.png differ diff --git a/images/unboxing-of-function-return-values.png b/images/unboxing-of-function-return-values.png new file mode 100644 index 00000000..a5fcbc6c Binary files /dev/null and b/images/unboxing-of-function-return-values.png differ diff --git a/images/update-elimination.png b/images/update-elimination.png new file mode 100644 index 00000000..32a85653 Binary files /dev/null and b/images/update-elimination.png differ diff --git a/images/whnf-update-elimination.png b/images/whnf-update-elimination.png new file mode 100644 index 00000000..91a6eaed Binary files /dev/null and b/images/whnf-update-elimination.png differ