Javascript:SpiderMonkey:BaselineCompiler: Difference between revisions
Jump to navigation
Jump to search
m (→Post Landing: bug 804676 fixed) |
(Mark as Outdated) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{OutdatedSpiderMonkey}} | |||
== General Plan == | == General Plan == | ||
Line 26: | Line 28: | ||
** High priority. | ** High priority. | ||
** Will reduce memory usage greatly. | ** Will reduce memory usage greatly. | ||
** Removal enables Brian Hackett's "rm analyzeTypes" | ** Removal enables Brian Hackett's "rm analyzeTypes" ({{bug|804676}} RESOLVED FIXED) | ||
** | ** Remove ScriptAnalysis::analyzeTypes (for real this time): {{bug|864928}} | ||
* Fix Octane performance issues. | * (DONE?) Fix Octane performance issues. | ||
** Overall scores on Octane are better than Interp+JM+Ion | ** Overall scores on Octane are better than Interp+JM+Ion | ||
** Some octane benches show perf-instability on AWFY (some runs are really slow) | ** Some octane benches show perf-instability on AWFY (some runs are really slow) | ||
Line 41: | Line 43: | ||
*** Splay | *** Splay | ||
* Integrate Ion and Baseline further | * Integrate Ion and Baseline further (mostly done, except SetProp_NativeAdd) | ||
** Inline SetProp_NativeAdd operations using Baseline ICs. | ** Inline SetProp_NativeAdd operations using Baseline ICs. | ||
** Inline polymorphic, shape-guarded GetProp and SetProp operations using Baseline ICs. | ** Inline polymorphic, shape-guarded GetProp and SetProp operations using Baseline ICs. | ||
* Compile more ops with baseline | * Compile more ops with baseline: | ||
** ES6 rest parameters: {{bug|867471}} | |||
** Remaining ops are |with| and other slow/rare stuff | |||
* Optimize new ES6 features | * Optimize new ES6 features | ||
** Proxies | ** Proxies | ||
** Generators | ** ES6 Generators: {{bug|903457}} | ||
* Add support for try/finally | * Add support for try/finally ({{bug|866878}} RESOLVED FIXED) | ||
* Enable toggling debugger with code on the stack | * Enable toggling debugger with code on the stack: {{bug|716647}} | ||
** Will require implementation of OST - on-stack transformation of jitcode | ** Will require implementation of OST - on-stack transformation of jitcode | ||
** OST also enables removing profiler instrumentation from default jitcode | ** OST also enables removing profiler instrumentation from default jitcode |
Latest revision as of 21:16, 27 April 2021
General Plan
Landing
Land with basic functionality to make Firefox 23. This means making it into mozilla-inbound before May 13, 2013.
Current ETA: make it into mozilla-inbound by end of first week of April, 2013.
Requirements:
- Performance
- Be on par or better than trunk Interp+JM+Ion on:
- Kraken
- Sunspider
- Octane
- Dromaeo
- Be on par or better than trunk Interp+JM+Ion on:
- Memory
- Do not regress memory as compared to trunk
- Features
- Support try/catch
- Support debugger integration
- Support profiler integration
Post Landing
- Remove persistent bytecode analysis (scriptAnalysis) on both Ion and Baseline
- High priority.
- Will reduce memory usage greatly.
- Removal enables Brian Hackett's "rm analyzeTypes" (bug 804676 RESOLVED FIXED)
- Remove ScriptAnalysis::analyzeTypes (for real this time): bug 864928
- (DONE?) Fix Octane performance issues.
- Overall scores on Octane are better than Interp+JM+Ion
- Some octane benches show perf-instability on AWFY (some runs are really slow)
- Box2D
- CodeLoad
- GameBoy
- PdfJS
- Individual benchmarks which are slower than Interp+JM+Ion
- DeltaBlue
- Richards
- Splay
- Integrate Ion and Baseline further (mostly done, except SetProp_NativeAdd)
- Inline SetProp_NativeAdd operations using Baseline ICs.
- Inline polymorphic, shape-guarded GetProp and SetProp operations using Baseline ICs.
- Compile more ops with baseline:
- ES6 rest parameters: bug 867471
- Remaining ops are |with| and other slow/rare stuff
- Optimize new ES6 features
- Proxies
- ES6 Generators: bug 903457
- Add support for try/finally (bug 866878 RESOLVED FIXED)
- Enable toggling debugger with code on the stack: bug 716647
- Will require implementation of OST - on-stack transformation of jitcode
- OST also enables removing profiler instrumentation from default jitcode