changeset 8570:1c181c2cfb68

Reverse ArrayCopy WB Intrisification
author Christos Kotselidis <christos.kotselidis@oracle.com>
date Thu, 28 Mar 2013 23:57:27 +0100
parents 59eb5a38df56
children 0bacc5564d18
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java
diffstat 2 files changed, 0 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java	Thu Mar 28 23:41:37 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java	Thu Mar 28 23:57:27 2013 +0100
@@ -22,12 +22,9 @@
  */
 package com.oracle.graal.hotspot.nodes;
 
-<<<<<<< local
-=======
 import static com.oracle.graal.hotspot.replacements.HotSpotSnippetUtils.*;
 
 import com.oracle.graal.api.meta.*;
->>>>>>> other
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.spi.*;
@@ -73,17 +70,8 @@
         this.value = value;
         this.location = location;
         this.precise = precise;
-<<<<<<< local
     }
 
-    public void lower(LoweringTool generator) {
-        generator.getRuntime().lower(this, generator);
-=======
->>>>>>> other
-    }
-<<<<<<< local
-=======
-
     @Override
     public void lower(LoweringTool generator) {
         StructuredGraph graph = (StructuredGraph) this.graph();
@@ -106,5 +94,4 @@
 
     @NodeIntrinsic
     public static native void arrayCopyWriteBarrier(Object array, Object value, long index);
->>>>>>> other
 }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java	Thu Mar 28 23:41:37 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopySnippets.java	Thu Mar 28 23:57:27 2013 +0100
@@ -247,29 +247,15 @@
         int header = arrayBaseOffset(Kind.Object);
         if (src == dest && srcPos < destPos) { // bad aliased case
             long start = (long) (length - 1) * scale;
-<<<<<<< local
-=======
-            long j = (long) (length) - 1;
->>>>>>> other
             for (long i = start; i >= 0; i -= scale) {
                 Object a = UnsafeLoadNode.load(src, header, i + (long) srcPos * scale, Kind.Object);
                 DirectObjectStoreNode.storeObject(dest, header, i + (long) destPos * scale, a);
-<<<<<<< local
-=======
-                WriteBarrierPost.arrayCopyWriteBarrier(dest, a, j);
-                j--;
->>>>>>> other
             }
         } else {
             long end = (long) length * scale;
-<<<<<<< local
-=======
-            long j = srcPos;
->>>>>>> other
             for (long i = 0; i < end; i += scale) {
                 Object a = UnsafeLoadNode.load(src, header, i + (long) srcPos * scale, Kind.Object);
                 DirectObjectStoreNode.storeObject(dest, header, i + (long) destPos * scale, a);
-<<<<<<< local
             }
         }
         if (length > 0) {
@@ -281,10 +267,6 @@
             long count = end - start + 1;
             while (count-- > 0) {
                 DirectStoreNode.store((start + cardStart) + count, false, Kind.Boolean);
-=======
-                WriteBarrierPost.arrayCopyWriteBarrier(dest, a, j);
-                j++;
->>>>>>> other
             }
         }
     }