[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: whole program analysis support



So far, Soot has several interprocedural analyses, such as reachability
analysis (VTA), points-to analysis (SPARK), and bounds checks. But all
these are based on call graphs. There is no general interprocedural FLOW
analyses framework in soot now.

StaticMethodBinder is a transformation for devirtualization of monomorphic
call sites. It uses the results of interprocedural analyses, but itself
is not an interprocedural analysis.

As I understand, you need an interprocedural flow analysis framework.
There are tremendous literatures available about interprocedural flow
analysis. As I know, you have to consider the context sensitivity, and how
to deal with virtual calls (using invoke graph). Hope this helpful.

Cheers,
Feng
---------------------------------------------------------------------
Feng Qian                                       fqian@sable.mcgill.ca
Sable Research Group                       http://www.sable.mcgill.ca
School of Computer Science, McGill University        Montreal, Canada

On Tue, 14 Jan 2003, david shepherd wrote:

> I am trying to simply compute reaching definitions in
> Soot (as my first step anyway).  However, it seems
> that Soots analysis framework only supports local
> analysis.  When I build any kind of graph, such as a
> CompleteUnitGraph or a CompleteBlockGraph, the graph
> does not follow method calls, but simply represents
> them as a unit which is a method call.  I discovered
> the "StaticMethodBinder" which I believe should do
> what I would like it to, which is substitute method
> call instructions with pointers to that method (well,
> it creates a new static method, but it is basically
> the same as the original method).  However, it does
> not help (or else I am using it wrong).  Anyway, is
> there anyway to perform a whole program analysis while
> still taking advantage of soot's analysis framework
> (like ForwardFlowAnalysis)?  Is there any graph that
> does this?  I know there is an invokeGraph, but can
> the analysis framework still be used with this? Anyone
> who has tried to do whole program analysis please help
> me arrive at the best way to do this.
> Thanks,
> David Shepherd
> University of Delaware
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com
>