diff -r 000000000000 -r 6474c204b198 js/src/devtools/rootAnalysis/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/devtools/rootAnalysis/README.txt Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,39 @@ +This directory contains scripts and a makefile for running Brian Hackett's +static GC rooting analysis on a JS source directory. + +To use it: + +1. Download and compile sixgill. Make sure the gcc plugin is enabled. (The + configure output will tell you.) + + - [sfink] I needed a couple of patches to get it work on Fedora 16/17/18. + Ask me if you need them. + +2. Compile an optimized JS shell that includes the patch at + . This does not + need to be in the same source tree as you are running these scripts from. + Remember the full path to the resulting JS binary; we'll call it $JS_SHELL + below. + +3. |make clean| in the objdir of the JS source tree that you're going to be + analyzing. (These analysis scripts will default to the tree they are within, + but you can point them at another tree.) + +4. in $objdir/js/src/devtools/analysis, |make JS=$JS_SHELL + SIXGILL=.../path/to/sixgill...|. You may need one or more of the following + additional settings in addition to the |JS| already given: + + - JSOBJDIR: if you are analyzing a different source tree, set this to the + objdir of the tree you want to analyze. + + - ANALYSIS_SCRIPT_DIR: by default, the *.js files within the directory + containing this README will be used, but you can point to a different + directory full. At the time of this writing, there are some changes not in + bhackett's git repo that are necessary, and you'll also need the + gen-hazards.sh shell script. + + - JOBS: set this to the number of parallel jobs you'd like to run the final + analysis pass with. This defaults to 6, somewhat randomly, which gave me a + large speedup even on a machine with only 2 cores. + +The results will be in rootingHazards.txt