soot.jimple.toolkits.graph
Class CriticalEdgeRemover

java.lang.Object
  |
  +--soot.Transformer
        |
        +--soot.BodyTransformer
              |
              +--soot.jimple.toolkits.graph.CriticalEdgeRemover

public class CriticalEdgeRemover
extends BodyTransformer

removes all critical edges.
A critical edge is an edge from Block A to block B, if B has more than one predecessor and A has more the one successor.
As an example: If we wanted a computation to be only on the path A->B this computation must be directly on the edge. Otherwise it is either executed on the path through the second predecessor of A or throught the second successor of B.
Our critical edge-remover overcomes this problem by introducing synthetic nodes on this critical edges.
Exceptions will be ignored.


Method Summary
 java.lang.String getDeclaredOptions()
           
 java.lang.String getDefaultOptions()
           
protected  void internalTransform(Body b, java.lang.String phaseName, java.util.Map options)
          performs critical edge-removing.
static CriticalEdgeRemover v()
           
 
Methods inherited from class soot.BodyTransformer
transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

v

public static CriticalEdgeRemover v()

getDeclaredOptions

public java.lang.String getDeclaredOptions()
Overrides:
getDeclaredOptions in class BodyTransformer

getDefaultOptions

public java.lang.String getDefaultOptions()
Overrides:
getDefaultOptions in class BodyTransformer
Returns:
the default options for this transform.

internalTransform

protected void internalTransform(Body b,
                                 java.lang.String phaseName,
                                 java.util.Map options)
performs critical edge-removing.

Specified by:
internalTransform in class BodyTransformer
Parameters:
b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
options - the actual computed options; a combination of default options and Scene specified options.