Ver código fonte

Merge branch 'master' of https://github.com/IUCompilerCourse/Essentials-of-Compilation

Jeremy Siek 3 anos atrás
pai
commit
b27fb49c42
2 arquivos alterados com 11 adições e 8 exclusões
  1. 9 6
      book.tex
  2. 2 2
      defs.tex

+ 9 - 6
book.tex

@@ -10502,10 +10502,11 @@ generate better code by taking this fact into account.
 
 The output language of \code{explicate\_control} is \LangCLoop{}
 (Figure~\ref{fig:c7-syntax}), which is nearly identical to
-\LangCLam{}. The only syntactic difference is that \code{Call} and
-\code{read} may also appear as statements.  The most significant
-difference between \LangCLam{} and \LangCLoop{} is that the
-control-flow graphs of the later may contain cycles.
+\LangCIf{}. The only syntactic difference is that \code{read} may also
+appear as a statement.  The most significant difference between the
+programs generated by \code{explicate\_control} in
+Chapter~\ref{ch:Lif} versus \code{explicate\_control} in this chapter
+is that the control-flow graphs of the later may contain cycles.
 
 \begin{figure}[tp]
 \fbox{
@@ -14239,10 +14240,12 @@ include all the caller-saved registers. Recall that the reason for
 that is to force variables that are live across a function call to be assigned to callee-saved
 registers or to be spilled to the stack.
 
-Regarding the set of read locations $R$ the arity field of
+Regarding the set of read locations $R$, the arity field of
 \code{TailJmp} and \code{IndirectCallq} determines how many of the
 argument-passing registers should be considered as read by those
-instructions.
+instructions. Also, the target field of \code{TailJmp} and
+\code{IndirectCallq} should be included in the set of read locations
+$R$.
 
 \subsection{Build Interference Graph}
 \label{sec:build-interference-r4}

+ 2 - 2
defs.tex

@@ -233,7 +233,7 @@
 \newcommand{\CNOT}[1]{\LP\key{not}~#1\RP}
 \newcommand{\CALL}[2]{\key{Call}\LP #1\code{, } #2 \RP}
 \newcommand{\APPLY}[2]{\key{(Apply}~#1~#2\code{)}}
-\newcommand{\CAPPLY}[2]{\LP~#1~#2\RP}
+\newcommand{\CAPPLY}[2]{\LP#1~#2\RP}
 \newcommand{\FUNREF}[1]{\LP\key{FunRef}~#1\RP}
 \newcommand{\CFUNREF}[1]{\key{(fun-ref}~#1\code{)}}
 \fi
@@ -302,7 +302,7 @@
 \newcommand{\CRETURN}[1]{\key{return}~#1}
 \newcommand{\GOTO}[1]{\key{Goto}\LP #1 \RP}
 \newcommand{\CGOTO}[1]{\key{goto}~#1}
-\newcommand{\FUNDEF}[5]{\key{FunctionDef}\LP#1\key{, }#2\key{, }#3\key{, None}\key{, }#5\key{, None}\RP}
+\newcommand{\FUNDEF}[5]{\key{FunctionDef}\LP#1\key{, }#2\key{, }#5\key{, None}\key{, }#3\key{, None}\RP}
 \fi
 
 \newcommand{\SEQ}[2]{\key{(Seq}~#1~#2\key{)}}