[Soot-list] Spark and Shimple

Navindra Umanee navindra at cs.mcgill.ca
Thu Mar 30 21:15:42 EST 2006


Hi Deepak,

Thanks for the update.  A big inefficiency was introduced when I fixed
a bug some time ago (IIRC it involves the dominators implementation,
or use of it in the first place).  This should be solvable when I get
a little time to look into it -- the penalty hit really shouldn't need
to be that big in my opinion.

Thanks,
Navin.

Deepak Chandra <dchandra at ics.uci.edu> wrote:
> Hi Navindra,
> 
> It did work with 2.2.3. :)
> 
> However -ws option takes much longer than -w option (7.3 vs 1.3 min).
> I suspect that is probably because of additional variables in the
> shimple representation, but want to make sure that is if normal.
> 
> Thanks again for your time.
> 
> Deepak
> 
> 
> 
> On 3/30/06, Navindra Umanee <navindra at cs.mcgill.ca> wrote:
> > Excellent, please do let me know if it works in 2.2.3.
> >
> > Thanks,
> > Navin.
> >
> > Deepak Chandra <dchandra at ics.uci.edu> wrote:
> > > Hi Navindra,
> > >
> > > I am using soot-2.2.1 and the tests.Main in just a simple "Hello World"
> > > program.
> > > When I analyse is with -w option it works fine, but if I use -ws option it
> > > gives the error. I am attaching the output from both.
> > >
> > > Thanks alot for taking interest in the problem.
> > >
> > > Deepak
> > > PS:I will also check it with soot-2.2.3 and let you know if the problem
> > > still persists with it.
> > >
> > > -------------------------------For  -w option
> > > ------------------------------------------------
> > >
> > > dchandra:~/SA/src$  java -Xmx700m soot.Main -w -p cg.spark on tests.Main
> > > Soot started on Thu Mar 30 11:20:02 PST 2006
> > > [Call Graph] For information on where the call graph may be incomplete, use
> > > the verbose option to the cg phase.
> > > [Spark] Pointer Assignment Graph in 6.2 seconds.
> > > [Spark] Type masks in 0.7 seconds.
> > > [Spark] Pointer Graph simplified in 0.0 seconds.
> > > [Spark] Propagation in 78.7 seconds.
> > > [Spark] Solution found in 78.7 seconds.
> > > Transforming tests.Main...
> > > Writing to sootOutput/tests/Main.class
> > > Soot finished on Thu Mar 30 11:21:37 PST 2006
> > > Soot has run for 1 min. 34 sec.
> > >
> > > -----------------------------For -ws option
> > > --------------------------------------------------------------
> > >
> > > dchandra:~/SA/src$ java -Xmx700m soot.Main -ws -p cg.spark on tests.Main
> > > Soot started on Thu Mar 30 11:21:43 PST 2006
> > > [Call Graph] For information on where the call graph may be incomplete, use
> > > the verbose option to the cg phase.
> > > Exception in thread "main" java.lang.ClassCastException
> > >         at soot.shimple.internal.SPhiExpr.apply(SPhiExpr.java:445)
> > >         at soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(
> > > MethodNodeFactory.java:78)
> > >         at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:222)
> > >         at soot.jimple.spark.builder.MethodNodeFactory.handleStmt(
> > > MethodNodeFactory.java:71)
> > >         at soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java:162)
> > >         at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:128)
> > >         at soot.jimple.spark.solver.OnFlyCallGraph.processReachables(
> > > OnFlyCallGraph.java:78)
> > >         at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java
> > > :70)
> > >         at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(
> > > ContextInsensitiveBuilder.java:78)
> > >         at soot.jimple.spark.SparkTransformer.internalTransform(
> > > SparkTransformer.java:53)
> > >         at soot.SceneTransformer.transform(SceneTransformer.java:39)
> > >         at soot.Transform.apply(Transform.java:89)
> > >         at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
> > >         at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(
> > > CallGraphPack.java:36)
> > >         at soot.Pack.apply(Pack.java:110)
> > >         at soot.PackManager.runWholeProgramPacks(PackManager.java:345)
> > >         at soot.PackManager.runPacks(PackManager.java:300)
> > >         at soot.Main.run(Main.java:179)
> > >         at soot.Main.main(Main.java:153)
> > > ----------------------------Soot version
> > > dchandra:~/SA/src$ java soot.Main --version
> > > Soot version 2.2.1
> > > Copyright (C) 1997-2003 Raja Vallee-Rai and others.
> > > All rights reserved.
> > >
> > >
> > > On 3/30/06, Navindra Umanee <navindra at cs.mcgill.ca> wrote:
> > > > Hi Deepak,
> > > >
> > > > Thanks for the report.  I'll have to look into this later tonight.
> > > > Can you send me tests.Main and tell me what version of Soot you are
> > > > using?
> > > >
> > > > Thanks,
> > > > Navin.
> > > >
> > > > Deepak Chandra <dchandra at ics.uci.edu> wrote:
> > > > > Hi,
> > > > >
> > > > > I have been trying to use the spark framework with shimple but it
> > > > > raises exceptions.
> > > > > Does the spark framework work with shimple IR?
> > > > >
> > > > > I am analyzing a simple "Hello World" program using a the following
> > > > > command line
> > > > >
> > > > > java -Xmx700m soot.Main -v -ws  -p cg.spark on,verbose:true tests.Main
> > > > > and I get the following error message.
> > > > >
> > > > > Applying phase cg.spark to the scene.
> > > > > Exception in thread "main" java.lang.ClassCastException
> > > > >         at soot.shimple.internal.SPhiExpr.apply(SPhiExpr.java:445)
> > > > >         at soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(
> > > MethodNodeFactory.java:78)
> > > > >         at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:222)
> > > > >         at soot.jimple.spark.builder.MethodNodeFactory.handleStmt(
> > > MethodNodeFactory.java:71)
> > > > >         at soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java
> > > :162)
> > > > >         at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:128)
> > > > >         at soot.jimple.spark.solver.OnFlyCallGraph.processReachables(
> > > OnFlyCallGraph.java:78)
> > > > >         at soot.jimple.spark.solver.OnFlyCallGraph.build(
> > > OnFlyCallGraph.java:70)
> > > > >         at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(
> > > ContextInsensitiveBuilder.java:78)
> > > > >         at soot.jimple.spark.SparkTransformer.internalTransform(
> > > SparkTransformer.java:53)
> > > > >         at soot.SceneTransformer.transform(SceneTransformer.java:39)
> > > > >         at soot.Transform.apply(Transform.java:89)
> > > > >         at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
> > > > >         at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(
> > > CallGraphPack.java:36)
> > > > >         at soot.Pack.apply(Pack.java:110)
> > > > >         at soot.PackManager.runWholeProgramPacks(PackManager.java:345)
> > > > >         at soot.PackManager.runPacks(PackManager.java:300)
> > > > >         at soot.Main.run(Main.java:179)
> > > > >         at soot.Main.main(Main.java:153)
> > > > >
> > > > >
> > > > > Thanks,
> > > > > Deepak
> > > > > _______________________________________________
> > > > > 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