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 class
ControlFlowGraphLoopReducer.LoopComparator
-
Field Summary
Fields Modifier and Type Field Description protected static ControlFlowGraphLoopReducer.LoopComparator
LOOP_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 int
checkMaxOffset(BasicBlock basicBlock)
private static int
checkSynchronizedBlockOffset(BasicBlock basicBlock)
private static int
checkThrowBlockOffset(BasicBlock basicBlock)
static java.util.List<Loop>
identifyNaturalLoops(ControlFlowGraph cfg, java.util.BitSet[] arrayOfDominatorIndexes)
protected static boolean
inSearchZone(BasicBlock basicBlock, java.util.BitSet searchZoneIndexes)
protected static Loop
makeLoop(java.util.List<BasicBlock> list, BasicBlock start, java.util.BitSet searchZoneIndexes, java.util.BitSet memberIndexes)
protected static BasicBlock
newJumpBasicBlock(BasicBlock bb, BasicBlock target)
protected static boolean
predecessorsInSearchZone(BasicBlock basicBlock, java.util.BitSet searchZoneIndexes)
protected static BasicBlock
recheckEndBlock(java.util.Set<BasicBlock> members, BasicBlock end)
protected static void
recursiveBackwardSearchLoopMemberIndexes(java.util.BitSet visited, BasicBlock current, BasicBlock start)
protected static boolean
recursiveForwardSearchLastLoopMemberIndexes(java.util.HashSet<BasicBlock> members, java.util.BitSet searchZoneIndexes, java.util.HashSet<BasicBlock> set, BasicBlock current, BasicBlock end)
protected static void
recursiveForwardSearchLoopMemberIndexes(java.util.BitSet visited, java.util.BitSet searchZoneIndexes, BasicBlock current, int maxOffset)
protected static void
recursiveForwardSearchLoopMemberIndexes(java.util.BitSet visited, java.util.BitSet searchZoneIndexes, BasicBlock current, BasicBlock target)
static void
reduce(ControlFlowGraph cfg)
protected static BasicBlock
reduceLoop(Loop loop)
private static BasicBlock
searchEndBasicBlock(java.util.BitSet memberIndexes, int maxOffset, java.util.Set<BasicBlock> members)
protected static java.util.BitSet
searchLoopMemberIndexes(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)
-
-