[Soot-list] New in Soot: "Lazy" context-sensitive points-to sets

Eric Bodden eric.bodden at mail.mcgill.ca
Thu Mar 26 11:22:19 EDT 2009


Hello everybody.

I just wanted to people know that I committed an implementation of
what I call "lazy context-sensitive points-to sets", based on Manu
Sridharan's Demand-Driven Points-To Analysis. There is a new phase
option "lazy-pts" which enables the creation of these points-to sets
instead of the ordinary ones. The phase option is enabled by default.
Here's what these points-to sets do...

Normally, the demand-driven computes context information for every
local that is passed to the reachingObjects(..) method. However,
sometimes one might not need the context information, for instance if
the points-to set is only tested for non-empty intersection with other
points-to sets which don't intersect, even when these points-to sets
are context-insensitive. Hence lazy points-to sets defer the
computation of context information until the point in time where one
calls hasNonEmptyIntersection(..) and this method would return true
for the context-insensitive sets. At this point, the points-to sets
refine themselves using the demand-driven analysis and then the test
for non-empty intersection is performed again. The context-sensitive
result is kept, once it has been computed. In result, the
demand-driven analysis is even more on-demand than it used to be.

Hope other people find this useful, too.

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


More information about the Soot-list mailing list