Confirmed users
24
edits
No edit summary |
|||
| Line 14: | Line 14: | ||
=Control-Flow Graphs= | =Control-Flow Graphs= | ||
''Found in: <tt> | ''Found in: <tt>jit/MIRGraph.*</tt> | ||
The control-flow graph for MIR is represented via basic blocks (<tt>MBasicBlock</tt>). Basic blocks are collected in a <tt>MIRGraph</tt>, in reverse postorder. | The control-flow graph for MIR is represented via basic blocks (<tt>MBasicBlock</tt>). Basic blocks are collected in a <tt>MIRGraph</tt>, in reverse postorder. | ||
| Line 31: | Line 31: | ||
=MIR Nodes= | =MIR Nodes= | ||
''Found in: <tt> | ''Found in: <tt>jit/MIR.*</tt> | ||
MIR objects are organized into the following class hierarchy: | MIR objects are organized into the following class hierarchy: | ||
| Line 53: | Line 53: | ||
=Building MIR= | =Building MIR= | ||
''Found in: <tt> | ''Found in: <tt>jit/IonBuilder.*</tt>'' | ||
==Parsing Bytecode== | ==Parsing Bytecode== | ||
| Line 99: | Line 99: | ||
==Graph Fixups== | ==Graph Fixups== | ||
''Found in: <tt> | ''Found in: <tt>jit/IonAnalysis.*</tt>'' | ||
After building MIR, a few passes are run to make the graph suitable for future analyses and optimizations: | After building MIR, a few passes are run to make the graph suitable for future analyses and optimizations: | ||
| Line 122: | Line 122: | ||
==Respecialization== | ==Respecialization== | ||
''Found in: <tt> | ''Found in: <tt>jit/IonAnalysis.cpp, jit/TypePolicy.*</tt>'' | ||
After MIR is built, each instruction is analyzed in postorder. If the instruction exposes a <tt>TypePolicy</tt>, it is asked to perform two tasks: | After MIR is built, each instruction is analyzed in postorder. If the instruction exposes a <tt>TypePolicy</tt>, it is asked to perform two tasks: | ||