changeset 7841:674a8b9e62f8

Remove unused fields in TargetDescription. Use Unsafe.pageSize().
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 25 Feb 2013 16:15:17 +0100
parents c052cfe3cae3
children d6086afdc642 45bce3579308
files graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/BasicPTXTest.java graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotGraalRuntime.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64SafepointOp.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java src/share/vm/graal/graalCompilerToVM.cpp
diffstat 9 files changed, 15 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java	Mon Feb 25 16:15:17 2013 +0100
@@ -33,11 +33,6 @@
     public final Architecture arch;
 
     /**
-     * The OS page size.
-     */
-    public final int pageSize;
-
-    /**
      * Specifies if this is a multi-processor system.
      */
     public final boolean isMP;
@@ -72,31 +67,18 @@
     public final int stackAlignment;
 
     /**
-     * @see "http://docs.oracle.com/cd/E19455-01/806-0477/overview-4/index.html"
-     */
-    public final int stackBias;
-
-    /**
-     * The cache alignment.
-     */
-    public final int cacheAlignment;
-
-    /**
      * Maximum constant displacement at which a memory access can no longer be an implicit null
      * check.
      */
     public final int implicitNullCheckLimit;
 
-    public TargetDescription(Architecture arch, boolean isMP, int stackAlignment, int stackBias, int implicitNullCheckLimit, int pageSize, int cacheAlignment, boolean inlineObjects) {
+    public TargetDescription(Architecture arch, boolean isMP, int stackAlignment, int implicitNullCheckLimit, boolean inlineObjects) {
         this.arch = arch;
-        this.pageSize = pageSize;
         this.isMP = isMP;
         this.wordSize = arch.getWordSize();
         this.wordKind = Kind.fromWordSize(wordSize);
         this.stackAlignment = stackAlignment;
-        this.stackBias = stackBias;
         this.implicitNullCheckLimit = implicitNullCheckLimit;
-        this.cacheAlignment = cacheAlignment;
         this.inlineObjects = inlineObjects;
     }
 
--- a/graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/BasicPTXTest.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/BasicPTXTest.java	Mon Feb 25 16:15:17 2013 +0100
@@ -54,7 +54,7 @@
     private void test(String snippet) {
         StructuredGraph graph = parse(snippet);
         Debug.dump(graph, "Graph");
-        TargetDescription target = new TargetDescription(new PTX(), true, 1, 0, 0, 0, 0, true);
+        TargetDescription target = new TargetDescription(new PTX(), true, 1, 0, true);
         PTXBackend ptxBackend = new PTXBackend(Graal.getRequiredCapability(CodeCacheProvider.class), target);
         PhasePlan phasePlan = new PhasePlan();
         GraphBuilderPhase graphBuilderPhase = new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getDefault(), OptimisticOptimizations.NONE);
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java	Mon Feb 25 16:15:17 2013 +0100
@@ -353,7 +353,6 @@
                         if (nextInstr instanceof Access) {
                             Access access = (Access) nextInstr;
                             if (isNullNode.object() == access.object() && canBeNullCheck(access.location())) {
-                                // TTY.println("implicit null check");
                                 access.setNullCheck(true);
                                 continue;
                             }
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java	Mon Feb 25 16:15:17 2013 +0100
@@ -29,6 +29,8 @@
 
 import java.lang.reflect.*;
 
+import sun.misc.*;
+
 import com.oracle.graal.amd64.*;
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.code.RuntimeCallTarget.*;
@@ -56,6 +58,7 @@
  */
 public class AMD64HotSpotBackend extends HotSpotBackend {
 
+    private static final Unsafe unsafe = Unsafe.getUnsafe();
     public static final Descriptor EXCEPTION_HANDLER = new Descriptor("exceptionHandler", true, void.class);
     public static final Descriptor DEOPT_HANDLER = new Descriptor("deoptHandler", true, void.class);
     public static final Descriptor IC_MISS_HANDLER = new Descriptor("icMissHandler", true, void.class);
@@ -179,10 +182,10 @@
             AMD64MacroAssembler asm = (AMD64MacroAssembler) tasm.asm;
             int frameSize = tasm.frameMap.frameSize();
             if (frameSize > 0) {
-                int lastFramePage = frameSize / tasm.target.pageSize;
+                int lastFramePage = frameSize / unsafe.pageSize();
                 // emit multiple stack bangs for methods with frames larger than a page
                 for (int i = 0; i <= lastFramePage; i++) {
-                    int disp = (i + GraalOptions.StackShadowPages) * tasm.target.pageSize;
+                    int disp = (i + GraalOptions.StackShadowPages) * unsafe.pageSize();
                     if (afterFrameInit) {
                         disp -= frameSize;
                     }
@@ -244,7 +247,7 @@
                 // detects this case - see the definition of frame::should_be_deoptimized()
 
                 Register scratch = regConfig.getScratchRegister();
-                int offset = SafepointPollOffset % target.pageSize;
+                int offset = SafepointPollOffset % unsafe.pageSize();
                 if (config.isPollingPageFar) {
                     asm.movq(scratch, config.safepointPollingAddress + offset);
                     tasm.recordMark(Marks.MARK_POLL_RETURN_FAR);
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotGraalRuntime.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotGraalRuntime.java	Mon Feb 25 16:15:17 2013 +0100
@@ -47,11 +47,9 @@
 
     @Override
     protected TargetDescription createTarget() {
-        final int wordSize = 8;
         final int stackFrameAlignment = 16;
-        final int stackBias = 0;
         final int implicitNullCheckLimit = 4096;
-        return new TargetDescription(new AMD64(), true, stackFrameAlignment, stackBias, implicitNullCheckLimit, config.vmPageSize, wordSize, true);
+        return new TargetDescription(new AMD64(), true, stackFrameAlignment, implicitNullCheckLimit, true);
     }
 
     @Override
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64SafepointOp.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64SafepointOp.java	Mon Feb 25 16:15:17 2013 +0100
@@ -24,6 +24,7 @@
 
 import static com.oracle.graal.amd64.AMD64.*;
 import static com.oracle.graal.phases.GraalOptions.*;
+import sun.misc.*;
 
 import com.oracle.graal.amd64.*;
 import com.oracle.graal.api.code.*;
@@ -41,6 +42,8 @@
 @Opcode("SAFEPOINT")
 public class AMD64SafepointOp extends AMD64LIRInstruction {
 
+    private static final Unsafe unsafe = Unsafe.getUnsafe();
+
     @State protected LIRFrameState state;
 
     private final HotSpotVMConfig config;
@@ -54,7 +57,7 @@
     public void emitCode(TargetMethodAssembler tasm, AMD64MacroAssembler asm) {
         Register scratch = tasm.frameMap.registerConfig.getScratchRegister();
         int pos = asm.codeBuffer.position();
-        int offset = SafepointPollOffset % tasm.target.pageSize;
+        int offset = SafepointPollOffset % unsafe.pageSize();
         if (config.isPollingPageFar) {
             asm.movq(scratch, config.safepointPollingAddress + offset);
             tasm.recordMark(Marks.MARK_POLL_FAR);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java	Mon Feb 25 16:15:17 2013 +0100
@@ -44,7 +44,6 @@
     public boolean useAESIntrinsics;
 
     // offsets, ...
-    public int vmPageSize;
     public int stackShadowPages;
 
     /**
@@ -362,7 +361,6 @@
     public int deoptActionMakeNotCompilable;
 
     public void check() {
-        assert vmPageSize >= 16;
         assert codeEntryAlignment > 0;
         assert stackShadowPages > 0;
     }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java	Mon Feb 25 10:49:47 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java	Mon Feb 25 16:15:17 2013 +0100
@@ -23,6 +23,7 @@
 package com.oracle.graal.hotspot.snippets;
 
 import static com.oracle.graal.snippets.nodes.BranchProbabilityNode.*;
+import sun.misc.*;
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
@@ -98,7 +99,7 @@
 
     @Fold
     public static int pageSize() {
-        return HotSpotGraalRuntime.getInstance().getTarget().pageSize;
+        return Unsafe.getUnsafe().pageSize();
     }
 
     @Fold
--- a/src/share/vm/graal/graalCompilerToVM.cpp	Mon Feb 25 10:49:47 2013 +0100
+++ b/src/share/vm/graal/graalCompilerToVM.cpp	Mon Feb 25 16:15:17 2013 +0100
@@ -615,7 +615,6 @@
   set_boolean("useAESIntrinsics", UseAESIntrinsics);
   set_boolean("useTLAB", UseTLAB);
   set_int("codeEntryAlignment", CodeEntryAlignment);
-  set_int("vmPageSize", os::vm_page_size());
   set_int("stackShadowPages", StackShadowPages);
   set_int("hubOffset", oopDesc::klass_offset_in_bytes());
   set_int("markOffset", oopDesc::mark_offset_in_bytes());