[Soot-list] Problem with inline expansion using wjop etc

Eric Bodden eric.bodden at ec-spride.de
Fri Jan 11 03:45:22 EST 2013


Hello.

Are you sure that all the inlining criteria are met?

Eric

On 11 January 2013 09:13, Zhoulai <zell08v at orange.fr> wrote:
> Hello,
>
> I have a naive question about inline expansion using wjop
>
> I learned from this page
> http://www.sable.mcgill.ca/soot/tutorial/devirt/index.html
>
> that
>
> StaticInliner (phase wjop.si) does the following:
>
> finds call sites which are monomorphic;
> checks whether the call sites can be safely inlined. The inlining criteria
> are listed in Vijay Sundaresan's Master's thesis;
> if the call site is safe to inline, inlines the body of the target into that
> of the caller.
>
>
> So, I am trying the inlining functionality for a toy program
>
> package trySomething;
>
> public class TryInliner {
>
>     public static void main(String[] args) {
>         foo();
>     }
>     static void foo(){
>         int x=0;
>         x =4;
>     }
> }
>
> I suppose the inlining would copy the static method 'foo' into 'main'.
>
> But proabably due to my wrong manipulations, the inlining does not work as I
> expected. Actually, in the 'main' method of  the transformed jimple file,
> the body of the static  'foo' is not inlined.
>
> Could you pls tell me where am I wrong? Thank you . I am using this command
> from Shell
>
> java -Xmx4096m soot.Main -pp -cp $CLASSPAth::src/test/java/ -w -f  J -p
> wjop.si enabled:true -p wjop.smb enabled:true trySomething.TryInliner
>
> Here is my transformed jimple file.
> ------------------------------------------
> public class trySomething.TryInliner extends java.lang.Object
> {
>
>     public static void main(java.lang.String[])
>     {
>         java.lang.String[] args;
>
>         args := @parameter0: java.lang.String[];
>         staticinvoke <trySomething.TryInliner: void foo()>();
>         return;
>     }
>
>     static void foo()
>     {
>         int x, temp$0;
>
>         x = 0;
>         temp$0 = 4;
>         x = temp$0;
>         return;
>     }
>
>     public void <init>()
>     {
>         trySomething.TryInliner this;
>
>         this := @this: trySomething.TryInliner;
>         specialinvoke this.<java.lang.Object: void <init>()>();
>         return;
>     }
> }
> ----------------------------------------------
>
>
> Otherwise,the link to Vijay's thesis is not reachable. Do you have a valid
> link for the paper? Thanks.
>
> Zhoulai
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>



-- 
Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt


More information about the Soot-list mailing list