Class ControlFlowGraphReducer
java.lang.Object
org.jd.core.v1.service.converter.classfiletojavasyntax.util.ControlFlowGraphReducer
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static booleanaggregateConditionalBranches(BasicBlock basicBlock) protected static voidchangeEndLoopToJump(BitSet visited, BasicBlock target, BasicBlock basicBlock) protected static booleancheckEclipseFinallyPattern(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset) protected static booleancheckJdk118TernaryOperatorPattern(BasicBlock next, BasicBlock nextNext, int ifByteCode) protected static BasicBlockclone(BasicBlock bb, BasicBlock next) protected static booleancontainsFinally(BasicBlock basicBlock) protected static voidconvertConditionalBranchToGotoInTernaryOperator(BasicBlock basicBlock, BasicBlock next, BasicBlock nextNext) protected static voidconvertGotoInTernaryOperatorToCondition(BasicBlock basicBlock, BasicBlock next) protected static voidcreateIf(BasicBlock basicBlock, BasicBlock sub, BasicBlock last, BasicBlock next) protected static voidcreateIfElse(int type, BasicBlock basicBlock, BasicBlock sub1, BasicBlock last1, BasicBlock sub2, BasicBlock last2, BasicBlock next) protected static BasicBlockcreateLeftCondition(BasicBlock basicBlock) protected static BasicBlockcreateLeftInverseCondition(BasicBlock basicBlock) protected static BasicBlockgetLastConditionalBranch(BitSet visited, BasicBlock basicBlock) protected static BasicBlocknewJumpBasicBlock(BasicBlock bb, BasicBlock target) static booleanreduce(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) static booleanreduce(ControlFlowGraph cfg) protected static booleanreduceConditionalBranch(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static booleanreduceConditionalBranch(BasicBlock basicBlock) protected static booleanreduceJsr(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static booleanreduceLoop(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static booleanreduceSwitchDeclaration(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static booleanreduceTryDeclaration(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) protected static voidremoveJsrAndMergeSubTry(BasicBlock basicBlock) protected static voidremovePredecessors(BasicBlock basicBlock) protected static voidreplaceLoopStartWithSwitchBreak(BitSet visited, BasicBlock basicBlock) protected static BasicBlocksearchEndBlock(BasicBlock basicBlock, int maxOffset) protected static BasicBlocksearchJsrTarget(BasicBlock basicBlock, BitSet jsrTargets) protected static booleansearchLoopStart(BasicBlock basicBlock, int maxOffset) protected static BasicBlocksearchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock) protected static BasicBlocksearchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock) protected static BasicBlocksplitSequence(BasicBlock basicBlock, int maxOffset) protected static BasicBlockupdateBlock(BasicBlock basicBlock, BasicBlock end, int maxOffset) protected static voidupdateConditionalBranches(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock) protected static voidupdateConditionTernaryOperator(BasicBlock basicBlock, BasicBlock nextNext) protected static voidupdateConditionTernaryOperator2(BasicBlock basicBlock) protected static voidvisit(BitSet visited, BasicBlock basicBlock, int maxOffset, HashSet<BasicBlock> ends)
-
Constructor Details
-
ControlFlowGraphReducer
public ControlFlowGraphReducer()
-
-
Method Details
-
reduce
-
reduce
-
reduceConditionalBranch
protected static boolean reduceConditionalBranch(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
reduceConditionalBranch
-
createIf
protected static void createIf(BasicBlock basicBlock, BasicBlock sub, BasicBlock last, BasicBlock next) -
createIfElse
protected static void createIfElse(int type, BasicBlock basicBlock, BasicBlock sub1, BasicBlock last1, BasicBlock sub2, BasicBlock last2, BasicBlock next) -
aggregateConditionalBranches
-
createLeftCondition
-
createLeftInverseCondition
-
updateConditionalBranches
protected static void updateConditionalBranches(BasicBlock basicBlock, BasicBlock leftBasicBlock, int operator, BasicBlock subBasicBlock) -
updateConditionTernaryOperator
-
updateConditionTernaryOperator2
-
convertGotoInTernaryOperatorToCondition
protected static void convertGotoInTernaryOperatorToCondition(BasicBlock basicBlock, BasicBlock next) -
convertConditionalBranchToGotoInTernaryOperator
protected static void convertConditionalBranchToGotoInTernaryOperator(BasicBlock basicBlock, BasicBlock next, BasicBlock nextNext) -
checkJdk118TernaryOperatorPattern
protected static boolean checkJdk118TernaryOperatorPattern(BasicBlock next, BasicBlock nextNext, int ifByteCode) -
reduceSwitchDeclaration
protected static boolean reduceSwitchDeclaration(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
searchLoopStart
-
reduceTryDeclaration
protected static boolean reduceTryDeclaration(BitSet visited, BasicBlock basicBlock, BitSet jsrTargets) -
containsFinally
-
checkEclipseFinallyPattern
protected static boolean checkEclipseFinallyPattern(BasicBlock basicBlock, BasicBlock finallyBB, int maxOffset) -
searchJsrTarget
-
searchEndBlock
-
splitSequence
-
updateBlock
-
removeJsrAndMergeSubTry
-
reduceJsr
-
reduceLoop
-
getLastConditionalBranch
-
visit
protected static void visit(BitSet visited, BasicBlock basicBlock, int maxOffset, HashSet<BasicBlock> ends) -
replaceLoopStartWithSwitchBreak
-
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock) -
searchUpdateBlockAndCreateContinueLoop
protected static BasicBlock searchUpdateBlockAndCreateContinueLoop(BitSet visited, BasicBlock basicBlock, BasicBlock subBasicBlock) -
removePredecessors
-
changeEndLoopToJump
-
newJumpBasicBlock
-
clone
-