Javascript:SpiderMonkey:BaselineCompiler: Difference between revisions

From MozillaWiki
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)
*** See: https://bugzilla.mozilla.org/show_bug.cgi?id=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 (e.g. ES6 reset parameters)
* 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

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