Javascript:SpiderMonkey:BaselineCompiler
From MozillaWiki
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