Javascript:SpiderMonkey:BaselineCompiler

From MozillaWiki
Jump to navigation Jump to search

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

  • 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
    • Inline SetProp_NativeAdd operations using Baseline ICs.
    • Inline polymorphic, shape-guarded GetProp and SetProp operations using Baseline ICs.
  • Compile more ops with baseline (e.g. ES6 reset parameters)
  • Optimize new ES6 features
    • Proxies
    • Generators
  • Add support for try/finally
  • Enable toggling debugger with code on the stack
    • Will require implementation of OST - on-stack transformation of jitcode
    • OST also enables removing profiler instrumentation from default jitcode