# HG changeset patch # User Thomas Wuerthinger # Date 1361805317 -3600 # Node ID 674a8b9e62f845c75319da97bc3c2421f15657bc # Parent c052cfe3cae3f10698b0b79c11a4cfa57839aea7 Remove unused fields in TargetDescription. Use Unsafe.pageSize(). diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TargetDescription.java --- 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; } diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/BasicPTXTest.java --- 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); diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java --- 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; } diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java --- 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); diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotGraalRuntime.java --- 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 diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64SafepointOp.java --- 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); diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java --- 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; } diff -r c052cfe3cae3 -r 674a8b9e62f8 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java --- 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 diff -r c052cfe3cae3 -r 674a8b9e62f8 src/share/vm/graal/graalCompilerToVM.cpp --- 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());