Add / update TODOs.
[matthijs/master-project/report.git] / Chapters / Normalization.tex
index 89c2d4a13faafd1ac6df231082632d1d78777148..f2d0fbba13be843158d19e4644604ccb6c07d307 100644 (file)
@@ -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]
     }
   }
 
         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
         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
 
         \starttrans
         (letrec binds in E) M
-        -----------------
+        ------------------------
         letrec binds in E M
         \stoptrans
 
         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}.