abc: The AspectBench Compiler for AspectJ



Benchmarks for static tracematch optimization, December 2006

Download of all benchmark files

(approx 88MB compressed):    tmopt-benches.tgz
This package contains all binaries necessary to compile and run the benchmarks. The tarball contains a README that explains how to compile and run the benchmarks.

(approx 732KB compressed):    abc-tmopt-src.tgz
This package contains the complete source code of the abc version used for those benchmarks. The related Soot source code can be viewed or downloaded using Subversion at this place.
The entry point to the analysis is the class abc.tm.weaving.weaver.tmanalysis.TracematchAnalysis which can be found in file abc-tmopt\paddle-src\abc\tm\weaving\weaver\tmanalysis\TracematchAnalysis.java in the source distribution.

Download test cases

In this directory, we provide test cases that demonstrate the different tracematches we used for our benchmarks plus a few more which demonstrate and test special features of our analysis like sound handling of multi-threading and inter-procedural treatment.
Also, feel free to download all tracematches in one package. To compile them one by one, type:
java -cp abc-complete.jar abc.main.Main -ext abc.tm -tmopt tracematches/<TraceMatch>.java
You can use the additional parameter -laststage (quick|flowins|flowsens) to determine what should be the last analysis stage applied.

Download results spreadsheet

(approx 68KB):    tmopt-benches-results.xls
Excel spreadsheet containing the runtimes of selected benchmarks.

Remarks

Those benchmarks were processed using a customized abc build, which is contained in the package. This version of abc includes a customized version of Soot, which allows for the use of the demand-driven refinement-based context-sensitive points-to analysis by Manu Sridharan and Rastislav Bodik. At the moment, Java 5 is required to run this extended version of Soot/abc. Java 1.4 is required to compile the and run the DaCapo benchmarks.

Technical report

The related technical report can be found here.


Valid XHTML 1.1!