Class 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 Detail

      • internalTransform

        protected void internalTransform​(Body b,
                                         String phaseName,
                                         Map<String,​String> 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.