Class Block


  • class Block
    extends java.lang.Object
    • Field Detail

      • itsSuccessors

        private Block[] itsSuccessors
      • itsPredecessors

        private Block[] itsPredecessors
      • itsStartNodeIndex

        private int itsStartNodeIndex
      • itsEndNodeIndex

        private int itsEndNodeIndex
      • itsBlockID

        private int itsBlockID
      • itsLiveOnEntrySet

        private java.util.BitSet itsLiveOnEntrySet
      • itsLiveOnExitSet

        private java.util.BitSet itsLiveOnExitSet
      • itsUseBeforeDefSet

        private java.util.BitSet itsUseBeforeDefSet
      • itsNotDefSet

        private java.util.BitSet itsNotDefSet
      • debug_blockCount

        private static int debug_blockCount
    • Constructor Detail

      • Block

        Block​(int startNodeIndex,
              int endNodeIndex)
    • Method Detail

      • 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 java.lang.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)
      • initLiveOnEntrySets

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

        private boolean doReachedUseDataFlow()
      • updateEntrySet

        private static boolean updateEntrySet​(java.util.BitSet entrySet,
                                              java.util.BitSet exitSet,
                                              java.util.BitSet useBeforeDef,
                                              java.util.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)