diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java @ 10945:a03d31fa01d9

Writes with always null stamps omit only post barriers
author Christos Kotselidis <christos.kotselidis@oracle.com>
date Fri, 02 Aug 2013 14:26:54 +0200
parents de55425d3cf5
children 0d6d064cd80c
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java	Fri Aug 02 14:10:04 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java	Fri Aug 02 14:26:54 2013 +0200
@@ -885,7 +885,7 @@
 
     private static BarrierType getFieldStoreBarrierType(StoreFieldNode storeField) {
         BarrierType barrierType = BarrierType.NONE;
-        if (storeField.field().getKind() == Kind.Object && !storeField.value().objectStamp().alwaysNull()) {
+        if (storeField.field().getKind() == Kind.Object) {
             barrierType = BarrierType.IMPRECISE;
         }
         return barrierType;
@@ -893,7 +893,7 @@
 
     private static BarrierType getArrayStoreBarrierType(StoreIndexedNode store) {
         BarrierType barrierType = BarrierType.NONE;
-        if (store.elementKind() == Kind.Object && !store.value().objectStamp().alwaysNull()) {
+        if (store.elementKind() == Kind.Object) {
             barrierType = BarrierType.PRECISE;
         }
         return barrierType;
@@ -901,7 +901,7 @@
 
     private static BarrierType getUnsafeStoreBarrierType(UnsafeStoreNode store) {
         BarrierType barrierType = BarrierType.NONE;
-        if (store.value().kind() == Kind.Object && !store.value().objectStamp().alwaysNull()) {
+        if (store.value().kind() == Kind.Object) {
             ResolvedJavaType type = store.object().objectStamp().type();
             if (type != null && type.isArray()) {
                 barrierType = BarrierType.PRECISE;
@@ -914,7 +914,7 @@
 
     private static BarrierType getCompareAndSwapBarrier(CompareAndSwapNode cas) {
         BarrierType barrierType = BarrierType.NONE;
-        if (cas.expected().kind() == Kind.Object && !cas.newValue().objectStamp().alwaysNull()) {
+        if (cas.expected().kind() == Kind.Object) {
             ResolvedJavaType type = cas.object().objectStamp().type();
             if (type != null && type.isArray()) {
                 barrierType = BarrierType.PRECISE;