IonMonkey/Overview: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
mNo edit summary
mNo edit summary
Line 37: Line 37:
*[[IonMonkey/Frames]]
*[[IonMonkey/Frames]]
*[[IonMonkey/Bailouts]]
*[[IonMonkey/Bailouts]]
=File Layout=
All IonMonkey files are contained in <tt>js/src/ion</tt>. The entry point is <tt>ion/Ion.cpp</tt>, which mostly contains random assorted small functions. The rest is:
*Helpers:
**BitSet.* - An efficient arbitrary-size bitset implementaton.
**C1Spewer.* - Spew for the C1 visualizer.
**FixedArityList.h - Template for declaring fixed-length vectors.
**InlineList.h - Templates for threading linked lists through objects.
**IonAllocPolicy.h - IonMonkey's pool-based allocator.
**IonSpewer.* - Debug spew helpers.
**JSONSpewer.* - Debug spew in JSON form.
*Data Structures:
**IonCode.h - Declaration for IonCode, IonScript.
**IonCompartment.h - Declaration for IonCompartment.h.
**IonFrames.h - Layout of Ion frames.
*MIR Generation:
**IonBuilder.* - Translation from bytecode to MIR.
**MIR.* - MIR class and instruction hierarchy.
**MIRGenerator.h - Not really anything, this should be renamed.
**MIRGraph.* - Control flow graph and basic blocks.
**MOpcodes.h - MIR opcodes.
*Analyses:
**IonAnalysis.cpp - Small, assorted analysis passes.
**LICM.* - Loop-invariant code motion.
**TypeOracle.h - Interface for type oracles.
**TypePolicy.* - Rules for how MIR is specialized and how conversions are inserted.
**ValueNumbering.* - Global value numbering.
*LIR Generation:
**Lowering.* - Entry point to LIR generation. Contains LIRGenerator.
**IonLIR.* - Interfaces for LIR instructions and their inputs, as well as LIR blocks and graphs.
**LIR-Common.* - LIR instructions shared by all platforms.
**LOpcodes.* - LIR opcodes shared by all platforms.
***shared/Lowering-x86-shared.* - LIR generation that is shared between x86 and x64.
***x86/Lowering-x86.* - LIR generation specific to x86.
***x86/LIR-x86.h - LIR instructions specific to x86.
***x86/LOpcodes-x86.h - LIR opcodes specific to x86.
***x64/Lowering-x64.* - LIR generation specific to x64.
***x64/LIR-x64.h - LIR instructions specific to x64.
***x64/LOpcodes-x64.h - LIR opcodes specific to x64.
Confirmed users
156

edits

Navigation menu