Class PersistentCheckElimination


  • public class PersistentCheckElimination
    extends java.lang.Object
    Attempts to remove residency checks an update checks from a control flow graph.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static boolean DEBUG  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void transform​(FlowGraph cfg)
      Examines each residency check (RCExpr) and update check (UCExpr) and determines whether or it is redundent.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEBUG

        public static boolean DEBUG
    • Constructor Detail

      • PersistentCheckElimination

        public PersistentCheckElimination()
    • Method Detail

      • transform

        public void transform​(FlowGraph cfg)
        Examines each residency check (RCExpr) and update check (UCExpr) and determines whether or it is redundent. If a residency check checks something that we know is resident (i.e. the this pointer or the result of an object creation), then the check is redundent. Once an update check has been performed on a value, all subsequent checks are redundent. Redundent checks are removed from the control flow graph.
        See Also:
        RCExpr, UCExpr