|
@@ -26,7 +26,7 @@
|
|
|
|
|
|
\def\racketEd{0}
|
|
|
\def\pythonEd{1}
|
|
|
-\def\edition{1}
|
|
|
+\def\edition{0}
|
|
|
|
|
|
% material that is specific to the Racket edition of the book
|
|
|
\newcommand{\racket}[1]{{\if\edition\racketEd{#1}\fi}}
|
|
@@ -10810,13 +10810,14 @@ block_4:
|
|
|
\subsection{Remove Jumps}
|
|
|
|
|
|
There is an opportunity for removing jumps that is apparent in the
|
|
|
-example of figure~\ref{fig:if-example-x86}. The \code{start} block
|
|
|
-ends with a jump to \racket{\code{block\_5}}\python{\code{block\_4}},
|
|
|
-and there are no other jumps to
|
|
|
-\racket{\code{block\_5}}\python{\code{block\_4}} in the rest of the program.
|
|
|
-In this situation we can avoid the runtime overhead of this jump by merging
|
|
|
-\racket{\code{block\_5}}\python{\code{block\_4}}
|
|
|
-into the preceding block, which in this case is the \code{start} block.
|
|
|
+example of figure~\ref{fig:explicate-control-challenge}. The
|
|
|
+\code{start} block ends with a jump to
|
|
|
+\racket{\code{block\_5}}\python{\code{block\_4}}, and there are no
|
|
|
+other jumps to \racket{\code{block\_5}}\python{\code{block\_4}} in
|
|
|
+the rest of the program. In this situation we can avoid the runtime
|
|
|
+overhead of this jump by merging
|
|
|
+\racket{\code{block\_5}}\python{\code{block\_4}} into the preceding
|
|
|
+block, which in this case is the \code{start} block.
|
|
|
Figure~\ref{fig:remove-jumps} shows the output of
|
|
|
\code{allocate\_registers} on the left and the result of this
|
|
|
optimization on the right.
|