CACHEIR HEALTH REPORT

INFORMATION AND HELP PAGE FOR CACHEIR HEALTH REPORT TOOL

HOW TO GENERATE AND USE A HEALTH REPORT:

  1. Add the below line to your mozconfig to support CacheIR Health Report:
  2. ac_add_options --enable-jitspew
  3. Build SpiderMonkey's JavaScript shell.
  4. Use environment variable: SPEW=CacheIRHealthReport.
    note: The SPEW environment variable is not used in optimized browser builds, enabling jitspew allows generating a report in optimized builds.
  5. There are four ways to generate a CacheIR Health Report:
  6. The health report will be named "spew_output.[PID].0", unless otherwise specified, and will be in the same directory you ran the browser or shell from.
  7. Go to CacheIR Health Report and input the file from the previous step into the tool.

TIPS:

WHY IS THIS SCRIPT UNHAPPY?:

There are a few reasons why your script is unhappy:

  1. A CacheIR stub was created for a JS_Op has a sum of costs for each of the CacheIROps in that stub that is very high.
  2. More than one non-zero hit count stub was attached to the inline cache. This is costly because we will not Warp-transpile these stubs.
  3. An inline cache entry is either megamorphic or generic.

WHAT IS THE SPEWING CONTEXT?:

There are a few ways contexts that we spew health reports:

  1. Shell - The cacheIRHealthReport shell function was called.
  2. Transition - The inline cache transitioned into either megamorphic or generic mode.
  3. Trial Inlining - The trial inlining hit count threshold of 500 was reached.

RESOURCES:

Motivation and Description of CacheIR Health Report
How we decide scoring for particular CacheIROps
How to specify a different spew file for the health report