[Soot-list] escape analysis

Richard L. Halpert richard.halpert at mail.mcgill.ca
Tue Mar 10 13:17:32 EDT 2009


In soot.jimple.toolkits.thread there is a class called
ThreadLocalObjectsAnalysis.  This analysis takes an MhpTester as input
(which provides a list of thread classes), and uses the infoflow package to
partition an abstract representation of the heap into "thread-local" and
"thread-shared" segments for each thread class.  It provides APIs to test if
a local variable or object reference is thread-local.

The analysis is described in detail in my thesis:
http://www.sable.mcgill.ca/publications/thesis/#richardsMastersThesis.  The
analysis makes some unsafe assumptions about virtual method calls, so
technically, it's unsound.  For some programs, this analysis may be very
costly.

Example:

ThreadLocalObjectsAnalysis tlo = new ThreadLocalObjectsAnalysis(new
SynchObliviousMhpAnalysis());
tlo.precompute(); // optionally, do calculations up front instead of
on-the-fly
tlo.isObjectThreadLocal(myValue, myMethod); // myValue should be a Local or
FieldRef from the jimple code of myMethod

You will need to use Spark for points-to analysis.

-Richard

On Mon, Mar 9, 2009 at 2:17 PM, Sangmin Park <sangminp at cc.gatech.edu> wrote:

> Thanks, Richard.
> Would you briefly explain what the package
> does? SmartMethodLocalObjectsAnalysis seems to be the entry class, but I do
> not know what exactly it does.
>
> By the way, I want to use thread escape analysis, not method escape
> analysis, but I guess it would be helpful to know method escape analysis. I
> appreciate your help again.
>
> Sangmin
>
>
> On Wed, Mar 4, 2009 at 4:32 PM, Richard L. Halpert <
> richard.halpert at mail.mcgill.ca> wrote:
>
>> the soot.jimple.toolkits.infoflow package can be used as an escape
>> analysis, but it has not yet been shoe-horned into the interface you
>> mentioned.  How do you need to use it?
>>
>> -Richard
>>
>> On Tue, Mar 3, 2009 at 4:14 PM, Sangmin Park <sangminp at cc.gatech.edu>wrote:
>>
>>>  Hi All,
>>> Is there an implementation for escape analysis? I found the interface
>>> (soot.EscapeAnalysis), but couldn't find any implementation in soot library.
>>>
>>> Thanks,
>>> Sangmin
>>>
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20090310/d5fb55be/attachment.html 


More information about the Soot-list mailing list