soot.shimple.toolkits.scalar
Class SEvaluator

java.lang.Object
  |
  +--soot.shimple.toolkits.scalar.SEvaluator

public class SEvaluator
extends java.lang.Object

"Extension" of soot.jimple.toolkits.scalar.Evaluator to handle Phi expressions. Also provides a couple of convenience functions.

See Also:
Evaluator

Constructor Summary
SEvaluator()
           
 
Method Summary
static Value getConstantValueOf(Value op)
          Returns the constant value of op if it is easy to find the constant value; else returns null.
static Constant getFirstConstantInPhi(PhiExpr op)
          Gets the first constant argument in a PhiExpr, returns null if not found.
static boolean isPhiFuzzyConstantValued(PhiExpr op)
          Convenience function...
static boolean isValueConstantValued(Value op)
          Returns true if given value is determined to be constant valued, false otherwise
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SEvaluator

public SEvaluator()
Method Detail

isValueConstantValued

public static boolean isValueConstantValued(Value op)
Returns true if given value is determined to be constant valued, false otherwise

getConstantValueOf

public static Value getConstantValueOf(Value op)
Returns the constant value of op if it is easy to find the constant value; else returns null.

isPhiFuzzyConstantValued

public static boolean isPhiFuzzyConstantValued(PhiExpr op)
Convenience function... Checks if all constant args in a PhiExpr are the same (local args are ignored) if present.

getFirstConstantInPhi

public static Constant getFirstConstantInPhi(PhiExpr op)
Gets the first constant argument in a PhiExpr, returns null if not found. Convenience function can be used in conjunction with isPhiFuzzyConstantValued()
See Also:
isPhiFuzzyConstantValued(PhiExpr)