[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Assignment statement isn't parsing



Nope, this still isn't the answer.  When I use this command line:

java soot.Main -j --soot-classpath $JIKESPATH -p jb use-original-names 
-p jb no-cp A

(Note that copy propagation is turned off) the result of the method call 
still doesn't make it into e:

[from A.jimp]
     void run()
     {
         A this;
         boolean e;
         int l1;

         this := @this;
         e = 0;
         l1 = A.calc();
         return;
     }

Since the dead assignment eliminator is the real culprit, let's try 
disabling that:

java soot.Main -j --soot-classpath $JIKESPATH -p jb use-original-names 
-p jb.dae disabled A

Still no luck:

[from A.jimp]
     void run()
     {
         A this;
         boolean e;

         this := @this;
         e = 0;
         A.calc();
         return;
     }


Patrick LAM wrote:

> 
> This is caused by the copy propagator.  Note that the assignment to z0 is
> dead.  But if you really feel strongly about that assignment, the phase
> option -p jb no-cp will restore it, as would any use of the value.
> 
> (This isn't completely true, because the copy propagator doesn't remove
> statements; I think it's actually the dead assignment eliminator which
> does it, but if copy propagation is not enabled, the dae doesn't get to
> eliminate the statement.)
> 
> pat

-- 
Nathan Kitchen
kitchen@ee.byu.edu