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 classMisc.GetBackJumpstatic classMisc.GraphVisitorBlockReachableprivate static classMisc.GraphVisitorReachableInThesestatic classMisc.HasBackJumpstatic classMisc.IsBackJumpTostatic classMisc.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 booleanfindHiddenIter(Statement statement, LValue lValue, Expression rValue, java.util.Set<Expression> poison)(package private) static BlockIdentifierfindOuterBlock(BlockIdentifier b1, BlockIdentifier b2, java.util.List<Op03SimpleStatement> statements)(package private) static Op03SimpleStatementfindSingleBackSource(Op03SimpleStatement start)static voidflattenCompoundStatements(java.util.List<Op03SimpleStatement> statements)(package private) static Op03SimpleStatementfollowNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)(package private) static java.util.Set<Op03SimpleStatement>followNopGotoBackwards(Op03SimpleStatement eventualtarget)static Op03SimpleStatementfollowNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)static Op03SimpleStatementfollowNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)(package private) static intgetFarthestReachableInRange(java.util.List<Op03SimpleStatement> statements, int start, int afterEnd)static Op03SimpleStatementgetLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)static booleanjustReachableFrom(Op03SimpleStatement target, Op03SimpleStatement maybeSource, int checkDepth)(package private) static voidmarkWholeBlock(java.util.List<Op03SimpleStatement> statements, BlockIdentifier blockIdentifier)(package private) static voidreplaceHiddenIter(Statement statement, LValue lValue, Expression rValue)static Op03SimpleStatementskipComments(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)
-
justReachableFrom
public static boolean justReachableFrom(Op03SimpleStatement target, Op03SimpleStatement maybeSource, int checkDepth)
-
-