[Soot-list] Context-Sensitive Spark with Static Method Binder

Manu Sridharan manu_s at cs.berkeley.edu
Tue Jul 8 15:42:41 EDT 2008


Hi there,

A couple things:

- My memory is a bit fuzzy.  Does setting cs-demand:true just call the
refinement-based analysis on all variables?  If so, then this should work,
but you may want to consider querying only the variables you care about.  If
you don't care about performance though, your settings are fine (except for
the possible quota issue that Eric mentions).

I also don't know what the StaticMethodBinder is and whether it is properly
hooked up with the demand-driven analysis, though from Eric's email I assume
everything should just work.

- You can get some idea of the potential benefits of context-sensitivity for
devirtualization from Section 6 of Ondrej's CC06 paper:

http://plg.uwaterloo.ca/~olhotak/pubs/cc06context.ps

For some benchmarks, context-sensitive analysis provides a win over
context-insensitive, but for others the benefit is very small.

Best,
Manu


On Tue, Jul 8, 2008 at 3:10 PM, Eric Bodden <eric.bodden at mail.mcgill.ca>
wrote:

> Hello.
>
> Normally this should just work. There may be two reasons for what you
> are seeing. Firstly it could be that the demand0driven analysis is not
> at all invoked. That would be a bug. Does your analysis run longer
> with "cs-demand:true" than with "cs-demand:false" ? Normally it
> should.
>
> The second reason may be that the quote is insufficient. If the
> demand-driven analysis does not finish within its quota then it just
> returns Spark's points-to set. To increase the quote see the
> "traversal" and "passes" phase options.
>
> Eric
>
> 2008/7/8 Rhodes H. F. Brown <rhodesb at cs.uvic.ca>:
> > Hi all,
> >
> > I've been using soot to devirtualize the DaCapo & SPECjvm98 benchmarks
> > (using the StaticMethodBinder) for comparison against another technique
> that
> > I'm working on. In an effort to get results at several levels of
> precision,
> > I've used the simple CHA call graph and the Spark default. I also tried
> > enabling the new context-sensitive refinement, but was surprised to find
> > that it seemed to be producing the same results as the Spark default
> > (insensitive) analysis. I'm invoking soot using:
> >
> > soot -W -app -p cg jdkver:5 -p cg.spark on,cs-demand:true -p wjop.smb on
> -p
> > wjop.si off <classes>
> >
> > Am I missing something? Do I need to do something more to have the
> refined
> > call graph results used by the static method binder? The PLDI paper on
> the
> > context-sensitive analysis focuses on cast elimination, but it seems that
> it
> > ought to do at least a little better than the insensitive analysis on
> > devirtualization too. Does anyone have any experience or insight that
> could
> > be of assistance?
> >
> > Thanks,
> >
> > Rhodes Brown
> > PhD Candidate in Computer Science
> > University of Victoria
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
> >
> > _______________________________________________
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20080708/d7d5e5cb/attachment.htm


More information about the Soot-list mailing list