[Soot-list] ForwardBranchedFlowAnalysis visits units in the "wrong" order?

Eric Bodden bodden at st.informatik.tu-darmstadt.de
Sat Nov 28 05:50:03 EST 2009


Hi Attila.

> Thus, it visits first the units FOLLOWING the loop before visiting the units
> IN the loop.

That can well be the case. Data-flow analyses generally do not define
any order in which nodes are visited.

> However, my analysis will only work correctly, if it visits first the loop
> body and then the code after the loop.

Then your analysis is not actually defined correctly (at least not if
you want to use it in combination with the ForwardBranchedFlowAnalysis
class). You should probably re-think your analyses. If it follows the
design principles for flow analyses (finite lattice, meat/join
operations, etc.) then the order should not actually matter.

> Is this a bug or an intended feature?

Intended.

> Is there an alternative forward analysis or a possible quick fix that visits
> the units in the ‘normal’ order?

Actually there is a hack to modify the order. See:
http://www.sable.mcgill.ca/soot/doc/soot/toolkits/scalar/ForwardFlowAnalysis.html#constructWorklist%28java.util.Map%29

But as I said, most likely there"s actually something wrong with your analysis.

Eric


More information about the Soot-list mailing list