[Soot-list] How to re-launch points-to analysis after wjop.si, so the points-to analysis corresponds to the inlined program?

Zhoulai zell08v at orange.fr
Mon May 27 14:39:12 EDT 2013


Hello,

I have a naive question about how to re-launch points-to analysis after the
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 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. 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","on",
                "-p", "cg.spark", "enabled:true",
                className,
                "-d","sootOutput_inline",
                "-no-bodies-for-excluded",
        };


Any ideas? Thank you.
Zhoulai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20130527/962c746d/attachment.html 


More information about the Soot-list mailing list