X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FNormalization.tex;h=f2d0fbba13be843158d19e4644604ccb6c07d307;hp=2d82716401854391475606611d4068569ad7177a;hb=7095d53c2ec805554837714da3df3a458ebfb2bb;hpb=05ad754047f8965ea7d330d1b4a09ff53ce7f09d diff --git a/Chapters/Normalization.tex b/Chapters/Normalization.tex index 2d82716..f2d0fbb 100644 --- a/Chapters/Normalization.tex +++ b/Chapters/Normalization.tex @@ -7,9 +7,9 @@ % space at the start of the frame. \define[1]\example{ \framed[offset=1mm,align=right,strut=no,background=box,frame=off]{ - \setuptyping[option=LAM,style=sans,before=,after=] + \setuptyping[option=LAM,style=sans,before=,after=,strip=auto] \typebuffer[#1] - \setuptyping[option=none,style=\tttf] + \setuptyping[option=none,style=\tttf,strip=auto] } } @@ -862,6 +862,8 @@ Since its exact role and need is not clear yet, this transformation is not yet specified. + TODO: Cast propagation + \subsubsection{Top level binding inlining} This transform takes simple top level bindings generated by the \small{GHC} compiler. \small{GHC} sometimes generates very simple @@ -950,7 +952,7 @@ \starttrans (letrec binds in E) M - ----------------- + ------------------------ letrec binds in E M \stoptrans @@ -1329,6 +1331,10 @@ Note that \lam{x0} and {x1} will still need normalization after this. \subsubsection{Argument propagation} + TODO: Generalize this section into specialization, so other + transformations can refer to this (since specialization is really used + in multiple categories). + This transform deals with arguments to user-defined functions that are not representable at runtime. This means these arguments cannot be preserved in the final form and most be {\em propagated}.