java.lang.Object
org.htmlunit.corejs.javascript.optimizer.Block

class Block extends Object
  • Field Details

    • itsSuccessors

      private Block[] itsSuccessors
    • itsPredecessors

      private Block[] itsPredecessors
    • itsStartNodeIndex

      private int itsStartNodeIndex
    • itsEndNodeIndex

      private int itsEndNodeIndex
    • itsBlockID

      private int itsBlockID
    • itsLiveOnEntrySet

      private BitSet itsLiveOnEntrySet
    • itsLiveOnExitSet

      private BitSet itsLiveOnExitSet
    • itsUseBeforeDefSet

      private BitSet itsUseBeforeDefSet
    • itsNotDefSet

      private BitSet itsNotDefSet
    • DEBUG

      static final boolean DEBUG
      See Also:
    • debug_blockCount

      private static int debug_blockCount
  • Constructor Details

    • Block

      Block(int startNodeIndex, int endNodeIndex)
  • Method Details

    • runFlowAnalyzes

      static void runFlowAnalyzes(OptFunctionNode fn, Node[] statementNodes)
    • buildBlocks

      private static Block[] buildBlocks(Node[] statementNodes)
    • newFatBlock

      private static Block.FatBlock newFatBlock(int startNodeIndex, int endNodeIndex)
    • toString

      private static String toString(Block[] blockList, Node[] statementNodes)
    • reachingDefDataFlow

      private static void reachingDefDataFlow(OptFunctionNode fn, Node[] statementNodes, Block[] theBlocks, int[] varTypes)
    • typeFlow

      private static void typeFlow(OptFunctionNode fn, Node[] statementNodes, Block[] theBlocks, int[] varTypes)
    • assignType

      private static boolean assignType(int[] varTypes, int index, int type)
    • markAnyTypeVariables

      private void markAnyTypeVariables(int[] varTypes)
    • lookForVariableAccess

      private void lookForVariableAccess(OptFunctionNode fn, Node n)
    • initLiveOnEntrySets

      private void initLiveOnEntrySets(OptFunctionNode fn, Node[] statementNodes)
    • doReachedUseDataFlow

      private boolean doReachedUseDataFlow()
    • updateEntrySet

      private static boolean updateEntrySet(BitSet entrySet, BitSet exitSet, BitSet useBeforeDef, BitSet notDef)
    • findExpressionType

      private static int findExpressionType(OptFunctionNode fn, Node n, int[] varTypes)
    • findDefPoints

      private static boolean findDefPoints(OptFunctionNode fn, Node n, int[] varTypes)
    • doTypeFlow

      private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes)
    • printLiveOnEntrySet

      private void printLiveOnEntrySet(OptFunctionNode fn)