Files
sdk/tests/compiler
jgruber@google.com a117777ff3 Implement shrinking reductions in CPS IR
Shrinking reductions consist of

* dead-cont:
  letprim x = V in K -> K (x not free in K),
* dead-val:
  letcont k x = L in K -> K (k not free in K),
* beta-cont-lin:
  letcont k x = K in C[k y] ->C[K[y/x]] (k not free in C), and
* eta-cont:
  letcont k x = j x in K -> K[j/k]

as described in 'Compiling with Continuations, Continued' by Andrew
Kennedy.

This also requires adding parent pointers to both Node and Reference
classes as well as setting them in a separate pass.

BUG=
R=kmillikin@google.com, sigurdm@google.com

Review URL: https://codereview.chromium.org//417043003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39087 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-11 13:18:06 +00:00
..