Chromium Code Reviews
DescriptionImplement 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
Committed: https://code.google.com/p/dart/source/detail?r=39087
Patch Set 1 #Patch Set 2 : Remove unused method #
Total comments: 6
Patch Set 3 : Addressed comments, fixed several bugs exposed by later commits #
Total comments: 32
Patch Set 4 : Addressed comments, pt. 2 #
Messages
Total messages: 7 (0 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||