X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FNormalization.tex;h=f2d0fbba13be843158d19e4644604ccb6c07d307;hp=89c2d4a13faafd1ac6df231082632d1d78777148;hb=7095d53c2ec805554837714da3df3a458ebfb2bb;hpb=63011ad76e4813e43544f8e938be40de2853acb4 diff --git a/Chapters/Normalization.tex b/Chapters/Normalization.tex index 89c2d4a..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 @@ -901,11 +903,11 @@ architecture which would just add its inputs. This generates a lot of overhead in the VHDL, which is particularly annoying when browsing the generated RTL schematic (especially since + is not allowed in VHDL - architecture names\footnote{Technically, it is allowed when using - extended identifiers, but it seems that none of the tooling likes - extended identifiers in filenames, so it effectively doesn't work}, so - the entity would be called \quote{w7aA7f} or something similarly - unreadable and autogenerated). + architecture names\footnote{Technically, it is allowed to use + non-alphanumerics when using extended identifiers, but it seems that + none of the tooling likes extended identifiers in filenames, so it + effectively doesn't work}, so the entity would be called + \quote{w7aA7f} or something similarly unreadable and autogenerated). \subsection{Program structure} These transformations are aimed at normalizing the overall structure @@ -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}.