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

Re: bug in generating variable names



Hi Patrick,

Wow, that was a fast reply !
Thank you for the good news.

I would like to ask something related to my
experiment: the jimple output files kept improving
with every iteration. Do you have an idea why (I mean
why didn't the first pass find these jimple-specific
optimization opportunities)?

And an unrelated question: is there a description
somewhere of what was generated automatically with
sablecc and what needed to be done manually on top of
that ? Say if sablecc improves, how easy would it be
to regenerate an "improved" soot ?

Thank you

Florin


--- Patrick LAM <plam@sable.mcgill.ca> wrote:
> Hi Florin,
> 
> On Fri, 8 Jun 2001, Florin Mateoc wrote:
> 
> > void
> > offsetToPointer(soot.coffi.ByteCode) and public
> > soot.coffi.Instruction[]
> > branchpoints(soot.coffi.Instruction)) - in which a
> > variable called $cseTemp0 was declared twice (in
> the
> > first case as two different types).
> 
> This is definitely a bug in my code.  I know how to
> fix it and I'll try to
> get to it tonight.
> 
> The common subexpression elimination phase is a bit
> broken when you read
> in the local variable names for Jimple.  Creating
> bytecode is fine,
> because the local names are not written, but the
> Jimple created is invalid
> in this context.
> 
> [Common subexpression elimination is when you have
> e.g.
> 
>    x = y + z;
>    a = y + z;
> 
> The expression 'y + z' is common to the two
> statements and needs only be
> done once.  So you can write instead,
> 
>    $cseTmp0 = y + z;
>    x = $cseTmp0;
>    a = $cseTmp0;]
> 
> pat
> 
> 


__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35 
a year!  http://personal.mail.yahoo.com/