1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/devtools/rootAnalysis/README.txt Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,39 @@ 1.4 +This directory contains scripts and a makefile for running Brian Hackett's 1.5 +static GC rooting analysis on a JS source directory. 1.6 + 1.7 +To use it: 1.8 + 1.9 +1. Download and compile sixgill. Make sure the gcc plugin is enabled. (The 1.10 + configure output will tell you.) 1.11 + 1.12 + - [sfink] I needed a couple of patches to get it work on Fedora 16/17/18. 1.13 + Ask me if you need them. 1.14 + 1.15 +2. Compile an optimized JS shell that includes the patch at 1.16 + <http://people.mozilla.org/~sfink/data/bug-835552-cwd-snarf>. This does not 1.17 + need to be in the same source tree as you are running these scripts from. 1.18 + Remember the full path to the resulting JS binary; we'll call it $JS_SHELL 1.19 + below. 1.20 + 1.21 +3. |make clean| in the objdir of the JS source tree that you're going to be 1.22 + analyzing. (These analysis scripts will default to the tree they are within, 1.23 + but you can point them at another tree.) 1.24 + 1.25 +4. in $objdir/js/src/devtools/analysis, |make JS=$JS_SHELL 1.26 + SIXGILL=.../path/to/sixgill...|. You may need one or more of the following 1.27 + additional settings in addition to the |JS| already given: 1.28 + 1.29 + - JSOBJDIR: if you are analyzing a different source tree, set this to the 1.30 + objdir of the tree you want to analyze. 1.31 + 1.32 + - ANALYSIS_SCRIPT_DIR: by default, the *.js files within the directory 1.33 + containing this README will be used, but you can point to a different 1.34 + directory full. At the time of this writing, there are some changes not in 1.35 + bhackett's git repo that are necessary, and you'll also need the 1.36 + gen-hazards.sh shell script. 1.37 + 1.38 + - JOBS: set this to the number of parallel jobs you'd like to run the final 1.39 + analysis pass with. This defaults to 6, somewhat randomly, which gave me a 1.40 + large speedup even on a machine with only 2 cores. 1.41 + 1.42 +The results will be in rootingHazards.txt