Platform/Features/IonMonkey: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
mNo edit summary
mNo edit summary
Line 3: Line 3:
|Feature stage=Definition
|Feature stage=Definition
|Feature health=OK
|Feature health=OK
}}
}} {{FeatureTeam
{{FeatureTeam
|Feature feature manager=David Anderson
|Feature feature manager=David Anderson
|Feature lead engineer=David Anderson, David Mandelin
|Feature lead engineer=David Anderson, David Mandelin
}}
}} {{FeaturePageBody
{{FeaturePageBody
|Feature overview=IonMonkey is a new JIT for SpiderMonkey. Our goal is to implement a new compiler to enable many new JavaScript optimizations. In particular IonMonkey will feature much more organized and explicit data structures typical of advanced compilers. This goal of being clean and flexible will be extremely important for future optimization work and experimentation.
|Feature overview=IonMonkey is a new JIT for SpiderMonkey. Our goal is to implement a new compiler to enable many new JavaScript optimizations. In particular IonMonkey will feature much more organized and explicit data structures typical of advanced compilers. This goal of being clean and flexible will be extremely important for future optimization work and experimentation.
|Feature users and use cases=Goals:
|Feature users and use cases=Goals:
Line 30: Line 28:
|Feature implementation notes=Note: time estimates here are total guesswork, erring on the safe side. Items are in no particular order.
|Feature implementation notes=Note: time estimates here are total guesswork, erring on the safe side. Items are in no particular order.


<s># '''Bailouts'''
#<s> '''Bailouts'''</s>
## What: Bailouts are the heart of the optimizing compiler. When speculation fails (triggering a type, shape, overflow guard, etc), or C++ throws an exception, or needs to GC, we must be able to inspect the JIT frame, and if needed, reconstruct an interpreter frame.
## What: Bailouts are the heart of the optimizing compiler. When speculation fails (triggering a type, shape, overflow guard, etc), or C++ throws an exception, or needs to GC, we must be able to inspect the JIT frame, and if needed, reconstruct an interpreter frame.
## Dependencies:
## Dependencies:
Line 42: Line 40:
## Priority: Critical, blocks testing
## Priority: Critical, blocks testing
## Time: 2-3 weeks
## Time: 2-3 weeks
## Owner: dvander</s>
## Owner: dvander
## Status: <b>DONE<b>
# '''Calls out to C++'''
# '''Calls out to C++'''
## What: Ability to call into C++ from JIT code.
## What: Ability to call into C++ from JIT code.
Line 144: Line 143:
## Time: Continuous
## Time: Continuous
## Owner: everyone
## Owner: everyone
}}
}} {{FeatureInfo
{{FeatureInfo
|Feature priority=P1
|Feature priority=P1
|Feature roadmap=Platform
|Feature roadmap=Platform
|Feature list=Platform
|Feature list=Platform
|Feature engineering team=JavaScript
|Feature engineering team=JavaScript
}}
}} {{FeatureTeamStatus}}
{{FeatureTeamStatus}}
Confirmed users
156

edits

Navigation menu