====================================================
Benchmarks for static tracematch optimizations
====================================================

Contents of this directory:

abc-complete.jar	- abc distribution, customized version
abc-runtime.jar		- abc runtime
benchmark-all-dacapo	- script to generate optimized versions of all benchmarks
benchmark-tm-dacapo     - script to generate optimized versions of benchmarks for one tracematch
compiled-noopt          - directory containing the unoptimized benchmarks (after they have been compiled)
dacapo                  - directory containing the DaCapo benchmark suite
noopt-all-dacapo        - script to generate unoptimized versions of all benchmarks
noopt-tm-dacapo		- script to generate unoptimized versions of benchmarks for one tracematch
optimized		- directory containing the optimized benchmarks (after they have been compiled)
README			- this file
tracematches		- directory containing all tracematches used for those benchmarks

If you encounter any PROBLEMS whatsoever with those benchmarks, please EMAIL Eric Bodden at eric.bodden@mail.mcgill.ca.
Thank you.


COMPILING THE BENCHMARKS:

1.) Make sure a Java 1.5 VM ("java") is on your PATH.
2.) Change to ./dacapo/ and modify "compile" and "compile-noopt" to point to the right JDKs.
3.) You can now compile all unoptimized benchmarks by invoking ./noopt-all-dacapo
4.) You can compile all optimized benchmarks by invoking ./opt-all-dacapo <stage> where <stage> is one of quick, flowins or flowsens and represents the last optimization stage to execute

The directory ./optimized/ contains a script "filter" which extracts relevant data from the generated log files into a CSV file which can then be used with other tools.

RUNNING THE BENCHMARKS:

1.) change to ./compiled-noopt/ or ./optimized/ (depending on whether to runt the unoptimized or optimized benchmarks)
2.) modify the run-one-dacapo script to point to the correct JVM
3.) execute ./run-all-dacapo to run all benchmarks in the directory

The directories ./compiled-noopt/ and ./optimized/ contain a script "runfilter" which extracts all run times of all benchmarks and generates a CSV file out of them. The benchmark lucene consists of one run for luindex and one for lusearch. Here, runtimes have to be added manually.
