[Soot-list] Should CFG be used for transformation

Marc-André Laverdière marc-andre.laverdiere-papineau at polymtl.ca
Wed Oct 30 10:34:59 EDT 2013


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
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list