Class ControlFlowGraphLoopReducer


  • public class ControlFlowGraphLoopReducer
    extends java.lang.Object
    • Constructor Detail

      • ControlFlowGraphLoopReducer

        public ControlFlowGraphLoopReducer()
    • Method Detail

      • buildDominatorIndexes

        public static java.util.BitSet[] buildDominatorIndexes​(ControlFlowGraph cfg)
      • identifyNaturalLoops

        public static java.util.List<Loop> identifyNaturalLoops​(ControlFlowGraph cfg,
                                                                java.util.BitSet[] arrayOfDominatorIndexes)
      • searchLoopMemberIndexes

        protected static java.util.BitSet searchLoopMemberIndexes​(int length,
                                                                  java.util.BitSet memberIndexes,
                                                                  BasicBlock current,
                                                                  BasicBlock start)
      • recursiveBackwardSearchLoopMemberIndexes

        protected static void recursiveBackwardSearchLoopMemberIndexes​(java.util.BitSet visited,
                                                                       BasicBlock current,
                                                                       BasicBlock start)
      • makeLoop

        protected static Loop makeLoop​(java.util.List<BasicBlock> list,
                                       BasicBlock start,
                                       java.util.BitSet searchZoneIndexes,
                                       java.util.BitSet memberIndexes)
      • searchEndBasicBlock

        private static BasicBlock searchEndBasicBlock​(java.util.BitSet memberIndexes,
                                                      int maxOffset,
                                                      java.util.Set<BasicBlock> members)
      • checkMaxOffset

        private static int checkMaxOffset​(BasicBlock basicBlock)
      • checkSynchronizedBlockOffset

        private static int checkSynchronizedBlockOffset​(BasicBlock basicBlock)
      • checkThrowBlockOffset

        private static int checkThrowBlockOffset​(BasicBlock basicBlock)
      • recursiveForwardSearchLoopMemberIndexes

        protected static void recursiveForwardSearchLoopMemberIndexes​(java.util.BitSet visited,
                                                                      java.util.BitSet searchZoneIndexes,
                                                                      BasicBlock current,
                                                                      BasicBlock target)
      • recursiveForwardSearchLoopMemberIndexes

        protected static void recursiveForwardSearchLoopMemberIndexes​(java.util.BitSet visited,
                                                                      java.util.BitSet searchZoneIndexes,
                                                                      BasicBlock current,
                                                                      int maxOffset)
      • recursiveForwardSearchLastLoopMemberIndexes

        protected static boolean recursiveForwardSearchLastLoopMemberIndexes​(java.util.HashSet<BasicBlock> members,
                                                                             java.util.BitSet searchZoneIndexes,
                                                                             java.util.HashSet<BasicBlock> set,
                                                                             BasicBlock current,
                                                                             BasicBlock end)
      • predecessorsInSearchZone

        protected static boolean predecessorsInSearchZone​(BasicBlock basicBlock,
                                                          java.util.BitSet searchZoneIndexes)
      • inSearchZone

        protected static boolean inSearchZone​(BasicBlock basicBlock,
                                              java.util.BitSet searchZoneIndexes)