public class Misc
extends java.lang.Object
Modifier and Type | Class and 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 and Description |
---|
Misc() |
Modifier and Type | Method and 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) |
public static void flattenCompoundStatements(java.util.List<Op03SimpleStatement> statements)
public static Op03SimpleStatement getLastInRangeByIndex(java.util.Set<Op03SimpleStatement> stms)
public static Op03SimpleStatement skipComments(Op03SimpleStatement stm)
static int getFarthestReachableInRange(java.util.List<Op03SimpleStatement> statements, int start, int afterEnd)
static java.util.Set<Op03SimpleStatement> followNopGotoBackwards(Op03SimpleStatement eventualtarget)
static Op03SimpleStatement followNopGoto(Op03SimpleStatement in, boolean requireJustOneSource, boolean aggressive)
public static Op03SimpleStatement followNopGotoChain(Op03SimpleStatement in, boolean requireJustOneSource, boolean skipLabels)
public static Op03SimpleStatement followNopGotoChainUntil(Op03SimpleStatement in, Op03SimpleStatement until, boolean requireJustOneSource, boolean skipLabels)
static void markWholeBlock(java.util.List<Op03SimpleStatement> statements, BlockIdentifier blockIdentifier)
static boolean findHiddenIter(Statement statement, LValue lValue, Expression rValue, java.util.Set<Expression> poison)
static void replaceHiddenIter(Statement statement, LValue lValue, Expression rValue)
static Op03SimpleStatement findSingleBackSource(Op03SimpleStatement start)
static BlockIdentifier findOuterBlock(BlockIdentifier b1, BlockIdentifier b2, java.util.List<Op03SimpleStatement> statements)
static java.util.Set<Op03SimpleStatement> collectAllSources(java.util.Collection<Op03SimpleStatement> statements)