Javascript:SpiderMonkey:BaselineCompiler

From MozillaWiki
Jump to: navigation, search
Ambox outdated.png THIS PAGE IS OBSOLETE
This article is in parts, or in its entirety, outdated. Hence, the information presented on this page may be incorrect, and should be treated with due caution. Visit SpiderMonkey.dev for more up to date information.

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
  • 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
  • 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