[Soot-list] How to re-launch points-to analysis after wjop.si, so the points-to analysis corresponds to the inlined program?
Marc-André Laverdière-Papineau
marc-andre.laverdiere-papineau at polymtl.ca
Tue May 28 15:51:56 EDT 2013
Hello,
By default, Soot won't re-run the points-to analysis under any circumstance.
That being said, nothing prevents you from re-running Spark manually.
What I don't know is if you need to clear any state before doing that...
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate
On 27/05/13 02:39 PM, Zhoulai wrote:
> Hello,
>
> I have a naive question about how to re-launch points-to analysis after
> the wjop.si <http://wjop.si> phase (i.e., inlining transformation).
>
> Following this great tutorial of Eric
> http://www.bodden.de/2008/11/26/soot-packs/
>
> the phase cg is performed before other whole-program phases, in part.
> the inlining wjop.si <http://wjop.si> phase. I have encountered a
> situation in which I need to get the points-to analysis for the program
> after in-lining, which is slightly different from the points-to analysis
> for the program before inlining. However, I don't see how to re-launch
> points-to analysis after the the phase wjop.si <http://wjop.si>. Can
> anyone help?
>
> I have a small program showing points-to graph of program after inlining
> and before inlining are different:
>
> --------------original program in java -----------------
> public class Test4 {
> public static void main(String[] args) {
> A x=new A();
> x.val=5;
> foo(x);
> int u = x.val;
> }
> public static void foo(A x) {
>
> x.val=10;
> }
>
> }
> ------------------Jimple program after inlining---------------
>
> public static void main(java.lang.String[])
> {
> java.lang.String[] r0;
> cases.A $r1, r2, r3;
> int i0;
>
> r0 := @parameter0: java.lang.String[];
> $r1 = new cases.A;
> specialinvoke $r1.<cases.A: void <init>()>();
> r2 = $r1;
> r2.<cases.A: int val> = 5;
> r3 = r2;
> r3.<cases.A: int val> = 10;
> i0 = r2.<cases.A: int val>;
> return;
> }
> -----------------------------------
>
> Note the line 'r3=r2' which is introduce an extra points-to relation
> compared to the one for the original program. I would like to know how
> to run again the points-to analysis for the inlined program. This could
> be a possible duplicate of the early question which is not yet answered
> http://www.sable.mcgill.ca/pipermail/soot-list/2009-March/002278.html
>
> For info, my current soot options are here
>
> args= new String[]{
> "-f","J","-cp",sootClassPath,"-pp",
> "-w","-W","-f","J",
> "-p","wjop.si <http://wjop.si>","on",
> "-p", "cg.spark", "enabled:true",
> className,
> "-d","sootOutput_inline",
> "-no-bodies-for-excluded",
> };
>
>
> Any ideas? Thank you.
> Zhoulai
>
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
More information about the Soot-list
mailing list