[Soot-list] Should CFG be used for transformation
Marc-André Laverdière-Papineau
marc-andre.laverdiere-papineau at polymtl.ca
Sun Nov 3 21:48:37 EST 2013
Hello,
I agree with you - it seems like nothing else is needed than a given
stmt object at a time. That works as long as you only split statements.
If you ever wanted to merge some, that'd be a different story.
I am curious if there could be some kind of messy looping structure that
would make the simple mapping approach you are using break. I can't
think of any, but I'd encourage you to trace increasingly complex cases
on paper to make sure.
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate
On 30/10/13 04:36 PM, Khanh Nguyen wrote:
> Marc-André, thanks for your reply.
> In my work, given a class A - I want to generate another class called
> newA that preserves the semantics of A. One statement in A may require
> multiple statements in newA to achieve the same effect.
> The transformation from A to newA can be done in flow-insensitive
> manner. If you have statements 1-2-3 in A, newA would have 1'-2'-2''-3'.
> Even the tranformation of an if statement is quite simple since we know
> the target stmt (for the else branch)
> I simply cant think of any example that the transformation would need to
> be done in flow-sensitive manner
>
>
>
>
> Thank you,
>
> Khanh Nguyen
>
>
> On Wed, Oct 30, 2013 at 7:34 AM, Marc-André Laverdière
> <marc-andre.laverdiere-papineau at polymtl.ca
> <mailto:marc-andre.laverdiere-papineau at polymtl.ca>> wrote:
>
> Hello,
>
> The answer, as with everything in software engineering, is "it depends".
>
> I am doing plenty of stuff in a flow insensitive manner. That makes
> sense when you only need the information from that Stmt object and
> nothing else. This is what I'd call 'structural changes' - but I am not
> sure this is proper terminology.
>
> Flow insensitive analyses are quick and often crude. That may be good
> enough for what you need to do.
>
> If you want to do flow sensitive, you're obviously going to increase
> your precision, but it is not as simple. Sometimes you need to loop
> until a fixed point is reached - this is not as fast.
>
> So the real question is: what is it that you are trying to do?
>
> Marc-André Laverdière-Papineau
> Doctorant - PhD Candidate
>
> On 10/28/2013 03:15 PM, Khanh Nguyen wrote:
> > Dear All,
> >
> > I have a transformation that operates on Jimple. Up to now, in my
> > transformation, I consider the method body as straight line of codes.
> > Thus, I just loop thru the units in the body in top-down manner and
> > perform my transformation accordingly. The result is the new class.
> >
> > However, I'm concerned whether doing this would create problems (what
> > problems, I dont know) A suggestion to me was to use the CFG instead.
> > I.e., get the original CFG, clone it (to preserve the same flow
> > structure) then going inside each basic block and still perform the
> > transformation on each unit in the basic block, the transformed units
> > will be put in the correspondent basic block in the clone version.
> >
> > Obviously, the latter method involves serious interference with soot
> > since UnitGraph doesnt offer methods to do what I need.
> > So soot experts, do you think CFG is needed? I do not believe CFG is
> > needed (but again, I'm new with soot, I dont know what kind of
> problems
> > could arise by doing straight-line transformation)
> > Furthermore, CFG requires a body to work on, if I just clone the
> CFG and
> > then change the statements in the CFG, isnt it the same as considering
> > the body as straight line of codes?
> >
> > Thank you,
> >
> > Khanh Nguyen
> > UC Irvine
> >
> >
> > _______________________________________________
> > Soot-list mailing list
> > Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> >
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>
More information about the Soot-list
mailing list