Class ControlFlowGraphLoopReducer
- java.lang.Object
-
- org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphLoopReducer
-
public class ControlFlowGraphLoopReducer extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classControlFlowGraphLoopReducer.LoopComparator
-
Field Summary
Fields Modifier and Type Field Description protected static ControlFlowGraphLoopReducer.LoopComparatorLOOP_COMPARATOR
-
Constructor Summary
Constructors Constructor Description ControlFlowGraphLoopReducer()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.BitSet[]buildDominatorIndexes(ControlFlowGraph cfg)private static intcheckMaxOffset(BasicBlock basicBlock)private static intcheckSynchronizedBlockOffset(BasicBlock basicBlock)private static intcheckThrowBlockOffset(BasicBlock basicBlock)static java.util.List<Loop>identifyNaturalLoops(ControlFlowGraph cfg, java.util.BitSet[] arrayOfDominatorIndexes)protected static booleaninSearchZone(BasicBlock basicBlock, java.util.BitSet searchZoneIndexes)protected static LoopmakeLoop(java.util.List<BasicBlock> list, BasicBlock start, java.util.BitSet searchZoneIndexes, java.util.BitSet memberIndexes)protected static BasicBlocknewJumpBasicBlock(BasicBlock bb, BasicBlock target)protected static booleanpredecessorsInSearchZone(BasicBlock basicBlock, java.util.BitSet searchZoneIndexes)protected static BasicBlockrecheckEndBlock(java.util.Set<BasicBlock> members, BasicBlock end)protected static voidrecursiveBackwardSearchLoopMemberIndexes(java.util.BitSet visited, BasicBlock current, BasicBlock start)protected static booleanrecursiveForwardSearchLastLoopMemberIndexes(java.util.HashSet<BasicBlock> members, java.util.BitSet searchZoneIndexes, java.util.HashSet<BasicBlock> set, BasicBlock current, BasicBlock end)protected static voidrecursiveForwardSearchLoopMemberIndexes(java.util.BitSet visited, java.util.BitSet searchZoneIndexes, BasicBlock current, int maxOffset)protected static voidrecursiveForwardSearchLoopMemberIndexes(java.util.BitSet visited, java.util.BitSet searchZoneIndexes, BasicBlock current, BasicBlock target)static voidreduce(ControlFlowGraph cfg)protected static BasicBlockreduceLoop(Loop loop)private static BasicBlocksearchEndBasicBlock(java.util.BitSet memberIndexes, int maxOffset, java.util.Set<BasicBlock> members)protected static java.util.BitSetsearchLoopMemberIndexes(int length, java.util.BitSet memberIndexes, BasicBlock current, BasicBlock start)
-
-
-
Field Detail
-
LOOP_COMPARATOR
protected static final ControlFlowGraphLoopReducer.LoopComparator LOOP_COMPARATOR
-
-
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)
-
recheckEndBlock
protected static BasicBlock recheckEndBlock(java.util.Set<BasicBlock> members, BasicBlock end)
-
reduceLoop
protected static BasicBlock reduceLoop(Loop loop)
-
newJumpBasicBlock
protected static BasicBlock newJumpBasicBlock(BasicBlock bb, BasicBlock target)
-
reduce
public static void reduce(ControlFlowGraph cfg)
-
-