Class ControlFlowGraphLoopReducer
java.lang.Object
org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphLoopReducer
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final ControlFlowGraphLoopReducer.LoopComparator
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic BitSet[]
private static int
checkMaxOffset
(BasicBlock basicBlock) private static int
checkSynchronizedBlockOffset
(BasicBlock basicBlock) private static int
checkThrowBlockOffset
(BasicBlock basicBlock) identifyNaturalLoops
(ControlFlowGraph cfg, BitSet[] arrayOfDominatorIndexes) protected static boolean
inSearchZone
(BasicBlock basicBlock, BitSet searchZoneIndexes) protected static Loop
makeLoop
(List<BasicBlock> list, BasicBlock start, BitSet searchZoneIndexes, BitSet memberIndexes) protected static BasicBlock
newJumpBasicBlock
(BasicBlock bb, BasicBlock target) protected static boolean
predecessorsInSearchZone
(BasicBlock basicBlock, BitSet searchZoneIndexes) protected static BasicBlock
recheckEndBlock
(Set<BasicBlock> members, BasicBlock end) protected static void
recursiveBackwardSearchLoopMemberIndexes
(BitSet visited, BasicBlock current, BasicBlock start) protected static boolean
recursiveForwardSearchLastLoopMemberIndexes
(HashSet<BasicBlock> members, BitSet searchZoneIndexes, HashSet<BasicBlock> set, BasicBlock current, BasicBlock end) protected static void
recursiveForwardSearchLoopMemberIndexes
(BitSet visited, BitSet searchZoneIndexes, BasicBlock current, int maxOffset) protected static void
recursiveForwardSearchLoopMemberIndexes
(BitSet visited, BitSet searchZoneIndexes, BasicBlock current, BasicBlock target) static void
reduce
(ControlFlowGraph cfg) protected static BasicBlock
reduceLoop
(Loop loop) private static BasicBlock
searchEndBasicBlock
(BitSet memberIndexes, int maxOffset, Set<BasicBlock> members) protected static BitSet
searchLoopMemberIndexes
(int length, BitSet memberIndexes, BasicBlock current, BasicBlock start)
-
Field Details
-
LOOP_COMPARATOR
-
-
Constructor Details
-
ControlFlowGraphLoopReducer
public ControlFlowGraphLoopReducer()
-
-
Method Details
-
buildDominatorIndexes
-
identifyNaturalLoops
public static List<Loop> identifyNaturalLoops(ControlFlowGraph cfg, BitSet[] arrayOfDominatorIndexes) -
searchLoopMemberIndexes
protected static BitSet searchLoopMemberIndexes(int length, BitSet memberIndexes, BasicBlock current, BasicBlock start) -
recursiveBackwardSearchLoopMemberIndexes
protected static void recursiveBackwardSearchLoopMemberIndexes(BitSet visited, BasicBlock current, BasicBlock start) -
makeLoop
protected static Loop makeLoop(List<BasicBlock> list, BasicBlock start, BitSet searchZoneIndexes, BitSet memberIndexes) -
searchEndBasicBlock
private static BasicBlock searchEndBasicBlock(BitSet memberIndexes, int maxOffset, Set<BasicBlock> members) -
checkMaxOffset
-
checkSynchronizedBlockOffset
-
checkThrowBlockOffset
-
recursiveForwardSearchLoopMemberIndexes
protected static void recursiveForwardSearchLoopMemberIndexes(BitSet visited, BitSet searchZoneIndexes, BasicBlock current, BasicBlock target) -
recursiveForwardSearchLoopMemberIndexes
protected static void recursiveForwardSearchLoopMemberIndexes(BitSet visited, BitSet searchZoneIndexes, BasicBlock current, int maxOffset) -
recursiveForwardSearchLastLoopMemberIndexes
protected static boolean recursiveForwardSearchLastLoopMemberIndexes(HashSet<BasicBlock> members, BitSet searchZoneIndexes, HashSet<BasicBlock> set, BasicBlock current, BasicBlock end) -
predecessorsInSearchZone
-
inSearchZone
-
recheckEndBlock
-
reduceLoop
-
newJumpBasicBlock
-
reduce
-