[Soot-list] Simple Interprocedural Analysis

Eric Bodden eric.bodden at mail.mcgill.ca
Tue Jul 17 20:00:54 EDT 2007


You can have a look at the optimization for tracematches we just
implemented in the abc compiler. abc builds on Soot and we basically
use Soot for the analysis. It's mainly intraprocedural but uses
interprocedural summary-information. (most often that is what people
do interprocedurally anyway)

It's all available here:
http://abc.comlab.ox.ac.uk/tmoptbenchintra

The entry point to the analysis is the class
abc.tm.weaving.weaver.tmanalysis.OptIntraProcedural which can be found
in abc-tmopt-src.tgz:\abc-tmopt\src\abc\tm\weaving\weaver\tmanalysis\OptIntraProcedural.java

The related tech report will be online by tomorrow hopefully.

Then, there is another whole-program optimization for tracematches,
available here:
http://abc.comlab.ox.ac.uk/tmoptbench - published here:
http://abc.comlab.ox.ac.uk/papers#ecoop2007

Flow-sensitively (stage 3 in the paper), this builds a complete
interprocedural abstraction, which however turned out to be imprecise
and inefficient. So that is something I would not recommend. However,
it contains also a nice example of a flow-insensitive analysis,
building on pointer analysis. This works pretty effectively.

Eric

On 17/07/07, Armand Navabi <anavabi at purdue.edu> wrote:
> Anyone know of a complete example that demonstrates interprocedural
> analysis in Soot?  I have been able to find many intraprocedural data
> flow analyses, but the survivor's guide (and any other tutorial I have
> found) only contain bits and pieces of code for interprocedural
> analysis.  Another problem is that I am using soot 2.2.2 and it seems
> that everything I find is for older versions of soot.
>
> While I have been able to implement any intraprocedural analysis I want,
> I have played around a lot with it and have been unable to get anything
> interprocedural working.  Any small example online or in a tutorial?
> Even something as simple as getting the call graph and then printing all
> the methods that could potentially be called at a call site.
>
> Thanks,
> Armand
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>


-- 
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada


More information about the Soot-list mailing list