| Index: src/compiler/osr.h
|
| diff --git a/src/compiler/osr.h b/src/compiler/osr.h
|
| index fb2267018199213b09ce911eb187b0a061147d9a..89773f0ec55ac5fb6782ba4f7eee182de83bc6ec 100644
|
| --- a/src/compiler/osr.h
|
| +++ b/src/compiler/osr.h
|
| @@ -9,12 +9,10 @@
|
|
|
| // TurboFan structures OSR graphs in a way that separates almost all phases of
|
| // compilation from OSR implementation details. This is accomplished with
|
| -// special
|
| -// control nodes that are added at graph building time. In particular, the graph
|
| -// is built in such a way that typing still computes the best types and
|
| -// optimizations and lowering work unchanged. All that remains is to deconstruct
|
| -// the OSR artifacts before scheduling. The helper class below performs the
|
| -// necessary graph rewriting.
|
| +// special control nodes that are added at graph building time. In particular,
|
| +// the graph is built in such a way that typing still computes the best types
|
| +// and optimizations and lowering work unchanged. All that remains is to
|
| +// deconstruct the OSR artifacts before scheduling and code generation.
|
|
|
| // Graphs built for OSR from the AstGraphBuilder are structured as follows:
|
| // Start
|
| @@ -36,20 +34,20 @@
|
| // end
|
|
|
| // The control structure expresses the relationship that the loop has a separate
|
| -// entrypoint which corresponds to entering the loop directly from start.
|
| +// entrypoint which corresponds to entering the loop directly from the middle
|
| +// of unoptimized code.
|
| // Similarly, the values that come in from unoptimized code are represented with
|
| // {OsrValue} nodes that merge into any phis associated with the OSR loop.
|
| -// The nodes {A} and {B} represent values in the "normal" graph that correspond
|
| -// to the values of those phis before the loop and on any backedges,
|
| -// respectively.
|
| +// In the above diagram, nodes {A} and {B} represent values in the "normal"
|
| +// graph that correspond to the values of those phis before the loop and on any
|
| +// backedges, respectively.
|
|
|
| // To deconstruct OSR, we simply replace the uses of the {OsrNormalEntry}
|
| -// control
|
| -// node with {Dead} and {OsrLoopEntry} with start and run the {ControlReducer}.
|
| -// Control reduction propagates the dead control forward, essentially "killing"
|
| -// all the code before the OSR loop. The entrypoint to the loop corresponding
|
| -// to the "normal" entry path will also be removed, as well as the inputs to
|
| -// the loop phis, resulting in the reduced graph:
|
| +// control node with {Dead} and {OsrLoopEntry} with start and run the
|
| +// {ControlReducer}. Control reduction propagates the dead control forward,
|
| +// essentially "killing" all the code before the OSR loop. The entrypoint to the
|
| +// loop corresponding to the "normal" entry path will also be removed, as well
|
| +// as the inputs to the loop phis, resulting in the reduced graph:
|
|
|
| // Start
|
| // Dead |^-------------------------+
|
|
|