[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