Class Misc
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.Misc
-
public class Misc extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Misc.GetBackJump
static class
Misc.GraphVisitorBlockReachable
private static class
Misc.GraphVisitorReachableInThese
static class
Misc.HasBackJump
static class
Misc.IsBackJumpTo
static class
Misc.IsForwardJumpTo
-
Constructor Summary
Constructors Constructor Description Misc()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static java.util.Set<Op03SimpleStatement>
collectAllSources(java.util.Collection<Op03SimpleStatement> statements)
(package private) static boolean
findHiddenIter(Statement statement, LValue lValue, Expression rValue, java.util.Set<Expression> poison)
(package private) static BlockIdentifier
findOuterBlock(BlockIdentifier b1, BlockIdentifier b2, java.util.List<Op03SimpleStatement> statements)
(package private) static Op03SimpleStatement
findSingleBackSource(Op03SimpleStatement start)
static void
flattenCompoundStatements(java.util.List<Op03SimpleStatement> statements)
(package private) static Op03SimpleStatement
followNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)
(package private) static java.util.Set<Op03SimpleStatement>
followNopGotoBackwards(Op03SimpleStatement eventualtarget)
static Op03SimpleStatement
followNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)
static Op03SimpleStatement
followNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)
(package private) static int
getFarthestReachableInRange(java.util.List<Op03SimpleStatement> statements, int start, int afterEnd)
static Op03SimpleStatement
getLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)
(package private) static void
markWholeBlock(java.util.List<Op03SimpleStatement> statements, BlockIdentifier blockIdentifier)
(package private) static void
replaceHiddenIter(Statement statement, LValue lValue, Expression rValue)
static Op03SimpleStatement
skipComments(Op03SimpleStatement stm)
-
-
-
Method Detail
-
flattenCompoundStatements
public static void flattenCompoundStatements(java.util.List<Op03SimpleStatement> statements)
-
getLastInRangeByIndex
public static Op03SimpleStatement getLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)
-
skipComments
public static Op03SimpleStatement skipComments(Op03SimpleStatement stm)
-
getFarthestReachableInRange
static int getFarthestReachableInRange(java.util.List<Op03SimpleStatement> statements, int start, int afterEnd)
-
followNopGotoBackwards
static java.util.Set<Op03SimpleStatement> followNopGotoBackwards(Op03SimpleStatement eventualtarget)
-
followNopGoto
static Op03SimpleStatement followNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)
-
followNopGotoChain
public static Op03SimpleStatement followNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)
-
followNopGotoChainUntil
public static Op03SimpleStatement followNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)
-
markWholeBlock
static void markWholeBlock(java.util.List<Op03SimpleStatement> statements, BlockIdentifier blockIdentifier)
-
findHiddenIter
static boolean findHiddenIter(Statement statement, LValue lValue, Expression rValue, java.util.Set<Expression> poison)
-
replaceHiddenIter
static void replaceHiddenIter(Statement statement, LValue lValue, Expression rValue)
-
findSingleBackSource
static Op03SimpleStatement findSingleBackSource(Op03SimpleStatement start)
-
findOuterBlock
static BlockIdentifier findOuterBlock(BlockIdentifier b1, BlockIdentifier b2, java.util.List<Op03SimpleStatement> statements)
-
collectAllSources
static java.util.Set<Op03SimpleStatement> collectAllSources(java.util.Collection<Op03SimpleStatement> statements)
-
-