< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/HeapAccess.java

Print this page




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.nodes.memory;
  26 
  27 /**
  28  * Encapsulates properties of a node describing how it accesses the heap.
  29  */
  30 public interface HeapAccess {
  31 
  32     /**
  33      * The types of (write/read) barriers attached to stores.
  34      */
  35     enum BarrierType {
  36         /**
  37          * Primitive stores which do not necessitate barriers.
  38          */
  39         NONE,
  40         /**
  41          * Array object stores which necessitate precise barriers.
  42          */
  43         PRECISE,
  44         /**
  45          * Field object stores which necessitate imprecise barriers.
  46          */
  47         IMPRECISE








  48     }
  49 
  50     /**
  51      * Gets the write barrier type for that particular access.
  52      */
  53     BarrierType getBarrierType();
  54 }


  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.nodes.memory;
  26 
  27 /**
  28  * Encapsulates properties of a node describing how it accesses the heap.
  29  */
  30 public interface HeapAccess {
  31 
  32     /**
  33      * The types of (write/read) barriers attached to stores.
  34      */
  35     enum BarrierType {
  36         /**
  37          * Primitive access which do not necessitate barriers.
  38          */
  39         NONE,
  40         /**
  41          * Array object access.
  42          */
  43         ARRAY,
  44         /**
  45          * Field object access.
  46          */
  47         FIELD,
  48         /**
  49          * Unknown (aka field or array) object access.
  50          */
  51         UNKNOWN,
  52         /**
  53          * Weak field access (e.g. Hotspot's Reference.referent field).
  54          */
  55         WEAK_FIELD
  56     }
  57 
  58     /**
  59      * Gets the write barrier type for that particular access.
  60      */
  61     BarrierType getBarrierType();
  62 }
< prev index next >