# HG changeset patch # User Doug Simon # Date 1370352163 -7200 # Node ID 538ac2cf3383d6149cd743e2c1845eda82c014da # Parent 719a290b8a23ba6c47680f2a6dc6d60dbf320ed5# Parent ed56953c514b4b375ba60edc87c76a593c085c15 Merge. diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Tue Jun 04 15:22:43 2013 +0200 @@ -56,6 +56,8 @@ // @formatter:off @Option(help = "") public static final OptionValue VerifyUsageWithEquals = new OptionValue<>(true); + @Option(help = "Enable inlining") + public static final OptionValue Inline = new OptionValue<>(true); // @formatter:on /** @@ -142,7 +144,7 @@ HighTierContext highTierContext = new HighTierContext(runtime, assumptions, replacements); - if (GraalOptions.Inline && !plan.isPhaseDisabled(InliningPhase.class)) { + if (Inline.getValue() && !plan.isPhaseDisabled(InliningPhase.class)) { if (GraalOptions.IterativeInlining) { new IterativeInliningPhase(replacements, cache, plan, optimisticOpts, GraalOptions.OptEarlyReadElimination).apply(graph, highTierContext); } else { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Tue Jun 04 15:22:43 2013 +0200 @@ -56,6 +56,16 @@ public static final OptionValue SummarizePerPhase = new OptionValue<>(false); @Option(help = "Send Graal IR to dump handlers on error") public static final OptionValue DumpOnError = new OptionValue<>(false); + @Option(help = "Enable expensive assertions") + public static final OptionValue DetailedAsserts = new OptionValue(false) { + @Override + protected Boolean initialValue() { + boolean enabled = value; + // turn detailed assertions on when the general assertions are on (misusing the assert keyword for this) + assert (enabled = true) == true; + return enabled; + } + }; // @formatter:on private final DebugFilter logFilter; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/Interval.java Tue Jun 04 15:22:43 2013 +0200 @@ -22,6 +22,10 @@ */ package com.oracle.graal.compiler.alloc; +import static com.oracle.graal.api.code.ValueUtil.*; +import static com.oracle.graal.compiler.GraalDebugConfig.*; +import static com.oracle.graal.lir.LIRValueUtil.*; + import java.util.*; import com.oracle.graal.api.code.*; @@ -29,12 +33,8 @@ import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.phases.*; import com.oracle.graal.phases.util.*; -import static com.oracle.graal.api.code.ValueUtil.*; -import static com.oracle.graal.lir.LIRValueUtil.*; - /** * Represents an interval in the {@linkplain LinearScan linear scan register allocator}. */ @@ -922,7 +922,7 @@ // do not add use positions for precolored intervals because they are never used if (registerPriority != RegisterPriority.None && isVariable(operand)) { - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { for (int i = 0; i < usePosList.size(); i++) { assert pos <= usePosList.usePos(i) : "already added a use-position with lower position"; if (i > 0) { @@ -1026,7 +1026,7 @@ // split list of use positions result.usePosList = usePosList.splitAt(splitPos); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { for (int i = 0; i < usePosList.size(); i++) { assert usePosList.usePos(i) < splitPos; } diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Tue Jun 04 15:22:43 2013 +0200 @@ -24,6 +24,7 @@ import static com.oracle.graal.api.code.CodeUtil.*; import static com.oracle.graal.api.code.ValueUtil.*; +import static com.oracle.graal.compiler.GraalDebugConfig.*; import static com.oracle.graal.lir.LIRValueUtil.*; import java.util.*; @@ -509,7 +510,7 @@ // the list is sorted by Interval.spillDefinitionPos Interval interval; interval = createUnhandledLists(mustStoreAtDefinition, null).first; - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { checkIntervals(interval); } @@ -658,7 +659,7 @@ assert index == numInstructions : "must match"; assert (index << 1) == opId : "must match: " + (index << 1); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { for (int i = 0; i < variables.size(); i++) { assert variables.get(i) != null && variables.get(i).index == i; } @@ -705,7 +706,7 @@ } } - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { verifyInput(block, liveKill, operand); } return operand; @@ -737,7 +738,7 @@ } } - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { // fixed intervals are never live at block boundaries, so // they need not be processed in live sets // process them only in debug mode so that this can be checked @@ -861,7 +862,7 @@ } } while (changeOccurred); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { verifyLiveness(); } @@ -869,7 +870,7 @@ Block startBlock = ir.cfg.getStartBlock(); BitSet liveInArgs = new BitSet(blockData.get(startBlock).liveIn.size()); if (!blockData.get(startBlock).liveIn.equals(liveInArgs)) { - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { reportFailure(numBlocks); } @@ -1087,7 +1088,7 @@ MoveOp move = (MoveOp) op; if (optimizeMethodArgument(move.getInput())) { StackSlot slot = asStackSlot(move.getInput()); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { assert op.id() > 0 : "invalid id"; assert blockForId(op.id()).getPredecessorCount() == 0 : "move from stack must be in first block"; assert isVariable(move.getResult()) : "result of move must be a variable"; @@ -1508,7 +1509,7 @@ TTY.println("inserting moves at beginning of toBlock B%d", toBlock.getId()); } - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { assert ir.lir(fromBlock).get(0) instanceof StandardOp.LabelOp : "block does not start with a label"; // because the number of predecessor edges matches the number of @@ -1614,7 +1615,7 @@ assert interval != null : "interval must exist"; if (opId != -1) { - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { Block block = blockForId(opId); if (block.getSuccessorCount() <= 1 && opId == getLastLirInstructionId(block)) { // check if spill moves could have been appended at the end of this block, but @@ -1839,14 +1840,14 @@ sortIntervalsAfterAllocation(); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { verify(); } eliminateSpillMoves(); assignLocations(); - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { verifyIntervals(); } } @@ -1986,7 +1987,7 @@ Value l1 = i1.location(); Value l2 = i2.location(); if (i1.intersects(i2) && (l1.equals(l2))) { - if (GraalOptions.DetailedAsserts) { + if (DetailedAsserts.getValue()) { TTY.println("Intervals %d and %d overlap and have the same register assigned", i1.operandNumber, i2.operandNumber); TTY.println(i1.logString(this)); TTY.println(i2.logString(this)); diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -30,7 +30,6 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallEpilogueOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallEpilogueOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallEpilogueOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,7 +27,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallPrologueOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallPrologueOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCRuntimeCallPrologueOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,11 +27,11 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; -@Opcode("CRUNTIME_CALL_PROLOGUE") +@Opcode final class AMD64HotSpotCRuntimeCallPrologueOp extends AMD64LIRInstruction { @Override diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotDeoptimizeCallerOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotDeoptimizeCallerOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotDeoptimizeCallerOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -29,7 +29,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotJumpToExceptionHandlerInCallerOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotJumpToExceptionHandlerInCallerOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotJumpToExceptionHandlerInCallerOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -31,7 +31,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.asm.amd64.AMD64Assembler.ConditionFlag; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotPatchReturnAddressOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotPatchReturnAddressOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotPatchReturnAddressOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -28,7 +28,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotReturnOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotReturnOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotReturnOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -26,7 +26,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotUnwindOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotUnwindOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotUnwindOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -31,7 +31,7 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.stubs.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectStaticCallOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectStaticCallOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectStaticCallOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,7 +27,6 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.amd64.AMD64Call.DirectCallOp; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectVirtualCallOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectVirtualCallOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotspotDirectVirtualCallOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -29,7 +29,6 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.amd64.AMD64Call.DirectCallOp; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64IndirectCallOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64IndirectCallOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64IndirectCallOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -31,7 +31,6 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.amd64.AMD64Call.IndirectCallOp; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 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 Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64SafepointOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -32,7 +32,6 @@ import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.bridge.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.nodes.spi.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64TailcallOp.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64TailcallOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64TailcallOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,7 +27,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Tue Jun 04 15:22:43 2013 +0200 @@ -35,6 +35,7 @@ import com.oracle.graal.hotspot.logging.*; import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.nodes.spi.*; +import com.oracle.graal.options.*; import com.oracle.graal.phases.*; /** @@ -84,9 +85,14 @@ runtime.compilerToVm = toVM; } + // @formatter:off + @Option(help = "The runtime configuration to use") + private static final OptionValue GraalRuntime = new OptionValue<>("basic"); + // @formatter:on + protected static HotSpotGraalRuntimeFactory findFactory(String architecture) { for (HotSpotGraalRuntimeFactory factory : ServiceLoader.loadInstalled(HotSpotGraalRuntimeFactory.class)) { - if (factory.getArchitecture().equals(architecture) && factory.getName().equals(GraalOptions.GraalRuntime)) { + if (factory.getArchitecture().equals(architecture) && factory.getName().equals(GraalRuntime.getValue())) { return factory; } } @@ -123,9 +129,9 @@ return unsafe.getInt(object, offset); } - protected/* final */CompilerToVM compilerToVm; + protected/* final */CompilerToVM compilerToVm; protected/* final */CompilerToGPU compilerToGpu; - protected/* final */VMToCompiler vmToCompiler; + protected/* final */VMToCompiler vmToCompiler; protected final HotSpotRuntime runtime; protected final TargetDescription target; @@ -138,13 +144,13 @@ private final HotSpotBackend backend; protected HotSpotGraalRuntime() { - CompilerToVM toVM = new CompilerToVMImpl(); + CompilerToVM toVM = new CompilerToVMImpl(); CompilerToGPU toGPU = new CompilerToGPUImpl(); // initialize VmToCompiler VMToCompiler toCompiler = new VMToCompilerImpl(this); - compilerToVm = toVM; + compilerToVm = toVM; compilerToGpu = toGPU; vmToCompiler = toCompiler; config = new HotSpotVMConfig(); diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotOptions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotOptions.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotOptions.java Tue Jun 04 15:22:43 2013 +0200 @@ -37,8 +37,10 @@ static { ServiceLoader sl = ServiceLoader.loadInstalled(OptionProvider.class); for (OptionProvider provider : sl) { - String name = provider.getName(); - options.put(name, provider); + if (provider.getClass().getName().startsWith("com.oracle.graal")) { + String name = provider.getName(); + options.put(name, provider); + } } } diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -25,6 +25,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; public class AMD64BitManipulationOp extends AMD64LIRInstruction { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BreakpointOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BreakpointOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BreakpointOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -26,7 +26,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ByteSwapOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ByteSwapOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ByteSwapOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -25,7 +25,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; @Opcode("BSWAP") diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Call.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Call.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Call.java Tue Jun 04 15:22:43 2013 +0200 @@ -29,7 +29,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.asm.*; import com.oracle.graal.nodes.spi.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java Tue Jun 04 15:22:43 2013 +0200 @@ -28,6 +28,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; // @formatter:off diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java Tue Jun 04 15:22:43 2013 +0200 @@ -35,7 +35,6 @@ import com.oracle.graal.asm.amd64.AMD64Assembler.ConditionFlag; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.StandardOp.FallThroughOp; import com.oracle.graal.lir.asm.*; import com.oracle.graal.nodes.calc.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MathIntrinsicOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MathIntrinsicOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MathIntrinsicOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,6 +27,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; // @formatter:off diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Tue Jun 04 15:22:43 2013 +0200 @@ -35,7 +35,6 @@ import com.oracle.graal.asm.amd64.*; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.StandardOp.MoveOp; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RestoreRegistersOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RestoreRegistersOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RestoreRegistersOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -26,7 +26,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.asm.amd64.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64SaveRegistersOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64SaveRegistersOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64SaveRegistersOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -29,7 +29,6 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ZapRegistersOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ZapRegistersOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ZapRegistersOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -30,7 +30,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXBitManipulationOp.java --- a/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXBitManipulationOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXBitManipulationOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -26,6 +26,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.ptx.*; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; public class PTXBitManipulationOp extends PTXLIRInstruction { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXCompare.java --- a/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXCompare.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXCompare.java Tue Jun 04 15:22:43 2013 +0200 @@ -29,6 +29,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.ptx.*; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.nodes.calc.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXMove.java --- a/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXMove.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXMove.java Tue Jun 04 15:22:43 2013 +0200 @@ -30,7 +30,6 @@ import com.oracle.graal.asm.ptx.*; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; import com.oracle.graal.lir.StandardOp.MoveOp; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Tue Jun 04 15:22:43 2013 +0200 @@ -56,7 +56,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.sparc.SPARCAssembler; import com.oracle.graal.graph.GraalInternalError; -import com.oracle.graal.lir.LIRFrameState; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.TargetMethodAssembler; //@formatter:off diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -30,6 +30,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.sparc.*; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.sparc.SPARC; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBreakpointOp.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBreakpointOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBreakpointOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -25,9 +25,9 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.asm.sparc.SPARCAssembler; +import com.oracle.graal.asm.sparc.*; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Trap; -import com.oracle.graal.lir.LIRInstruction.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; /** diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -24,7 +24,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.sparc.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; @Opcode("BSWAP") diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java Tue Jun 04 15:22:43 2013 +0200 @@ -30,6 +30,7 @@ import com.oracle.graal.asm.sparc.SPARCAssembler; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Cmp; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; //@formatter:off diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Tue Jun 04 15:22:43 2013 +0200 @@ -25,22 +25,21 @@ import static com.oracle.graal.api.code.ValueUtil.*; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.*; +import com.oracle.graal.api.code.CompilationResult.JumpTable; import com.oracle.graal.api.code.*; -import com.oracle.graal.api.code.CompilationResult.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.*; import com.oracle.graal.asm.sparc.*; +import com.oracle.graal.asm.sparc.SPARCAssembler.Bpe; import com.oracle.graal.asm.sparc.SPARCAssembler.CC; import com.oracle.graal.asm.sparc.SPARCAssembler.ConditionFlag; -import com.oracle.graal.asm.sparc.SPARCAssembler.Bpe; import com.oracle.graal.asm.sparc.SPARCAssembler.Subcc; import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.*; -import com.oracle.graal.lir.StandardOp.*; +import com.oracle.graal.lir.StandardOp.FallThroughOp; import com.oracle.graal.lir.asm.*; -import com.oracle.graal.nodes.calc.Condition; -import com.oracle.graal.sparc.SPARC; +import com.oracle.graal.nodes.calc.*; +import com.oracle.graal.sparc.*; public class SPARCControlFlow { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMathIntrinsicOp.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMathIntrinsicOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMathIntrinsicOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -28,6 +28,7 @@ import com.oracle.graal.asm.sparc.SPARCAssembler; import com.oracle.graal.asm.sparc.SPARCAssembler.Fsqrtd; import com.oracle.graal.graph.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; public class SPARCMathIntrinsicOp extends SPARCLIRInstruction { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Tue Jun 04 15:22:43 2013 +0200 @@ -27,8 +27,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.asm.sparc.SPARCAddress; -import com.oracle.graal.asm.sparc.SPARCAssembler; +import com.oracle.graal.asm.sparc.*; import com.oracle.graal.asm.sparc.SPARCAssembler.Lddf; import com.oracle.graal.asm.sparc.SPARCAssembler.Ldf; import com.oracle.graal.asm.sparc.SPARCAssembler.Ldsb; @@ -37,20 +36,19 @@ import com.oracle.graal.asm.sparc.SPARCAssembler.Lduw; import com.oracle.graal.asm.sparc.SPARCAssembler.Ldx; import com.oracle.graal.asm.sparc.SPARCAssembler.Membar; +import com.oracle.graal.asm.sparc.SPARCAssembler.NullCheck; import com.oracle.graal.asm.sparc.SPARCAssembler.Or; import com.oracle.graal.asm.sparc.SPARCAssembler.Stb; import com.oracle.graal.asm.sparc.SPARCAssembler.Sth; import com.oracle.graal.asm.sparc.SPARCAssembler.Stw; import com.oracle.graal.asm.sparc.SPARCAssembler.Stx; -import com.oracle.graal.asm.sparc.SPARCAssembler.NullCheck; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Setuw; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Setx; -import com.oracle.graal.graph.GraalInternalError; +import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.*; import com.oracle.graal.lir.StandardOp.MoveOp; -import com.oracle.graal.lir.asm.TargetMethodAssembler; -import com.oracle.graal.sparc.SPARC; +import com.oracle.graal.lir.asm.*; +import com.oracle.graal.sparc.*; public class SPARCMove { diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/InfopointOp.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/InfopointOp.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/InfopointOp.java Tue Jun 04 15:22:43 2013 +0200 @@ -22,8 +22,6 @@ */ package com.oracle.graal.lir; -import static com.oracle.graal.lir.LIRInstruction.Opcode; - import com.oracle.graal.api.code.*; import com.oracle.graal.lir.asm.*; diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Tue Jun 04 15:22:43 2013 +0200 @@ -144,13 +144,6 @@ public static @interface State { } - @Retention(RetentionPolicy.RUNTIME) - @Target({ElementType.TYPE, ElementType.FIELD}) - public static @interface Opcode { - - String value() default ""; - } - /** * Flags for an operand. */ diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java Tue Jun 04 15:22:43 2013 +0200 @@ -174,8 +174,8 @@ @Override protected void scan(Class clazz) { - if (clazz.getAnnotation(LIRInstruction.Opcode.class) != null) { - opcodeConstant = clazz.getAnnotation(LIRInstruction.Opcode.class).value(); + if (clazz.getAnnotation(Opcode.class) != null) { + opcodeConstant = clazz.getAnnotation(Opcode.class).value(); } opcodeOffset = -1; @@ -199,7 +199,7 @@ super.scanField(field, type, offset); } - if (field.getAnnotation(LIRInstruction.Opcode.class) != null) { + if (field.getAnnotation(Opcode.class) != null) { assert opcodeConstant == null && opcodeOffset == -1 : "Can have only one Opcode definition: " + field.getType(); opcodeOffset = offset; } diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/Opcode.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/Opcode.java Tue Jun 04 15:22:43 2013 +0200 @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.lir; + +import java.lang.annotation.*; + +/** + * Denotes an opcode name for an annotated {@link LIRInstruction}. + *

+ * Note: Unlike the other LIR related annotations declared as inner classes of + * {@link LIRInstruction}, this annotation is in a top level file to work around a bug in Eclipse causing spurious + * warnings about unused imports. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.FIELD}) +public @interface Opcode { + + String value() default ""; +} diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java Tue Jun 04 15:22:43 2013 +0200 @@ -33,6 +33,7 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; import com.oracle.graal.nodes.util.*; +import com.oracle.graal.options.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.PhasePlan.PhasePosition; import com.oracle.graal.phases.common.CanonicalizerPhase.CustomCanonicalizer; @@ -43,6 +44,11 @@ public class InliningPhase extends Phase { + // @formatter:off + @Option(help = "Unconditionally inline intrinsics") + public static final OptionValue AlwaysInlineIntrinsics = new OptionValue<>(false); + // @formatter:on + private final PhasePlan plan; private final MetaAccessProvider runtime; private final Assumptions compilationAssumptions; @@ -340,7 +346,7 @@ } protected boolean isIntrinsic(InlineInfo info) { - if (GraalOptions.AlwaysInlineIntrinsics) { + if (AlwaysInlineIntrinsics.getValue()) { return onlyIntrinsics(info); } else { return onlyForcedIntrinsics(info); diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Tue Jun 04 15:22:43 2013 +0200 @@ -34,12 +34,7 @@ private static final boolean ____ = false; // Checkstyle: resume - public static String CompilerConfiguration = "basic"; - public static String GraalRuntime = "basic"; - // inlining settings - public static boolean Inline = true; - public static boolean AlwaysInlineIntrinsics = ____; public static boolean Intrinsify = true; static boolean InlineMonomorphicCalls = true; static boolean InlinePolymorphicCalls = true; @@ -163,8 +158,6 @@ public static int RangeTestsSwitchDensity = 5; public static double MinTableSwitchDensity = 0.5; - public static boolean DetailedAsserts = ____; - // Runtime settings public static int StackShadowPages = 2; @@ -228,9 +221,4 @@ * @see #CheckcastMaxHints */ public static int InstanceOfMaxHints = 2; - - static { - // turn detailed assertions on when the general assertions are on (misusing the assert keyword for this) - assert (DetailedAsserts = true) == true; - } } diff -r ed56953c514b -r 538ac2cf3383 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Tue Jun 04 11:06:30 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Tue Jun 04 15:22:43 2013 +0200 @@ -25,10 +25,16 @@ import java.util.*; import com.oracle.graal.graph.*; +import com.oracle.graal.options.*; import com.oracle.graal.phases.*; public final class Suites { + // @formatter:off + @Option(help = "The compiler configuration to use") + private static final OptionValue CompilerConfiguration = new OptionValue<>("basic"); + // @formatter:on + public static final Suites DEFAULT; private final PhaseSuite highTier; @@ -69,7 +75,7 @@ } public static Suites createDefaultSuites() { - return createSuites(GraalOptions.CompilerConfiguration); + return createSuites(CompilerConfiguration.getValue()); } public static Suites createSuites(String name) { diff -r ed56953c514b -r 538ac2cf3383 make/build-graal.xml --- a/make/build-graal.xml Tue Jun 04 11:06:30 2013 +0200 +++ b/make/build-graal.xml Tue Jun 04 15:22:43 2013 +0200 @@ -39,10 +39,10 @@ + - @@ -82,8 +82,10 @@ + + @@ -94,6 +96,7 @@ + @@ -102,6 +105,8 @@ + + diff -r ed56953c514b -r 538ac2cf3383 mx/projects --- a/mx/projects Tue Jun 04 11:06:30 2013 +0200 +++ b/mx/projects Tue Jun 04 15:22:43 2013 +0200 @@ -100,7 +100,7 @@ project@com.oracle.graal.hotspot@sourceDirs=src project@com.oracle.graal.hotspot@dependencies=com.oracle.graal.replacements,com.oracle.graal.printer project@com.oracle.graal.hotspot@checkstyle=com.oracle.graal.graph -project@com.oracle.graal.hotspot@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor,com.oracle.graal.options +project@com.oracle.graal.hotspot@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor project@com.oracle.graal.hotspot@javaCompliance=1.7 # graal.hotspot.amd64 @@ -143,6 +143,7 @@ project@com.oracle.graal.options@sourceDirs=src project@com.oracle.graal.options@checkstyle=com.oracle.graal.graph project@com.oracle.graal.options@javaCompliance=1.7 +project@com.oracle.graal.options@annotationProcessorForDependents=true # graal.graph project@com.oracle.graal.graph@subDir=graal @@ -251,7 +252,7 @@ # graal.phases project@com.oracle.graal.phases@subDir=graal project@com.oracle.graal.phases@sourceDirs=src -project@com.oracle.graal.phases@dependencies=com.oracle.graal.nodes +project@com.oracle.graal.phases@dependencies=com.oracle.graal.nodes,com.oracle.graal.options project@com.oracle.graal.phases@checkstyle=com.oracle.graal.graph project@com.oracle.graal.phases@javaCompliance=1.7 @@ -279,10 +280,10 @@ # graal.compiler project@com.oracle.graal.compiler@subDir=graal project@com.oracle.graal.compiler@sourceDirs=src -project@com.oracle.graal.compiler@dependencies=com.oracle.graal.api.runtime,com.oracle.graal.virtual,com.oracle.graal.options,com.oracle.graal.loop,com.oracle.graal.alloc,com.oracle.graal.lir +project@com.oracle.graal.compiler@dependencies=com.oracle.graal.api.runtime,com.oracle.graal.virtual,com.oracle.graal.loop,com.oracle.graal.alloc,com.oracle.graal.lir project@com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph project@com.oracle.graal.compiler@javaCompliance=1.7 -project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor,com.oracle.graal.options +project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor # graal.compiler.amd64 project@com.oracle.graal.compiler.amd64@subDir=graal diff -r ed56953c514b -r 538ac2cf3383 mxtool/mx.py --- a/mxtool/mx.py Tue Jun 04 11:06:30 2013 +0200 +++ b/mxtool/mx.py Tue Jun 04 15:22:43 2013 +0200 @@ -146,6 +146,7 @@ _libs = dict() _dists = dict() _suites = dict() +_annotationProcessors = None _mainSuite = None _opts = None _java = None @@ -219,8 +220,8 @@ libraries if 'includeLibs' is true, to the 'deps' list. """ childDeps = list(self.deps) - if includeAnnotationProcessors and hasattr(self, 'annotationProcessors') and len(self.annotationProcessors) > 0: - childDeps = self.annotationProcessors + childDeps + if includeAnnotationProcessors and len(self.annotation_processors()) > 0: + childDeps = self.annotation_processors() + childDeps if self in deps: return deps for name in childDeps: @@ -408,6 +409,19 @@ self._init_packages_and_imports() return self._imported_java_packages + def annotation_processors(self): + if not hasattr(self, '_annotationProcessors'): + ap = set() + if hasattr(self, '_declaredAnnotationProcessors'): + ap = set(self._declaredAnnotationProcessors) + + # find dependencies that auto-inject themselves as annotation processors to all dependents + allDeps = self.all_deps([], includeLibs=False, includeSelf=False, includeAnnotationProcessors=False) + for p in allDeps: + if hasattr(p, 'annotationProcessorForDependents') and p.annotationProcessorForDependents.lower() == 'true': + ap.add(p.name) + self._annotationProcessors = list(ap) + return self._annotationProcessors class Library(Dependency): def __init__(self, suite, name, path, mustExist, urls, sourcePath, sourceUrls): @@ -527,7 +541,7 @@ if not p.native and p.javaCompliance is None: abort('javaCompliance property required for non-native project ' + name) if len(ap) > 0: - p.annotationProcessors = ap + p._declaredAnnotationProcessors = ap p.__dict__.update(attrs) self.projects.append(p) @@ -731,6 +745,18 @@ """ return _projects.values() +def annotation_processors(): + """ + Get the list of all loaded projects that define an annotation processor. + """ + global _annotationProcessors + if _annotationProcessors is None: + ap = set() + for p in projects(): + ap.update(p.annotation_processors()) + _annotationProcessors = list(ap) + return _annotationProcessors + def distribution(name, fatalIfMissing=True): """ Get the distribution for a given name. This will abort if the named distribution does @@ -1515,8 +1541,9 @@ if java().debug_port is not None: javacArgs += ['-J-Xdebug', '-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=' + str(java().debug_port)] - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: - processorPath = classpath(p.annotationProcessors, resolve=True) + ap = p.annotation_processors() + if len(ap) > 0: + processorPath = classpath(ap, resolve=True) genDir = p.source_gen_dir(); if exists(genDir): shutil.rmtree(genDir) @@ -1672,16 +1699,16 @@ return 0 def processorjars(): - projects = set() + projs = set() for p in sorted_deps(): if _isAnnotationProcessorDependency(p): - projects.add(p) + projs.add(p) - if len(projects) <= 0: + if len(projs) < 0: return - pnames = [p.name for p in projects] + pnames = [p.name for p in projs] build(['--projects', ",".join(pnames)]) archive(pnames) @@ -2172,7 +2199,7 @@ os.mkdir(srcDir) out.element('classpathentry', {'kind' : 'src', 'path' : src}) - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: + if len(p.annotation_processors()) > 0: genDir = p.source_gen_dir(); if not exists(genDir): os.mkdir(genDir) @@ -2296,22 +2323,22 @@ eclipseSettingsDir = join(suite.dir, 'mx', 'eclipse-settings') if exists(eclipseSettingsDir): for name in os.listdir(eclipseSettingsDir): - if name == "org.eclipse.jdt.apt.core.prefs" and not (hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0): + if name == "org.eclipse.jdt.apt.core.prefs" and not len(p.annotation_processors()) > 0: continue path = join(eclipseSettingsDir, name) if isfile(path): with open(join(eclipseSettingsDir, name)) as f: content = f.read() content = content.replace('${javaCompliance}', str(p.javaCompliance)) - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: + if len(p.annotation_processors()) > 0: content = content.replace('org.eclipse.jdt.core.compiler.processAnnotations=disabled', 'org.eclipse.jdt.core.compiler.processAnnotations=enabled') update_file(join(settingsDir, name), content) - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: + if len(p.annotation_processors()) > 0: out = XMLDoc() out.open('factorypath') out.element('factorypathentry', {'kind' : 'PLUGIN', 'id' : 'org.eclipse.jst.ws.annotations.core', 'enabled' : 'true', 'runInBatchMode' : 'false'}) - for ap in p.annotationProcessors: + for ap in p.annotation_processors(): apProject = project(ap) for dep in apProject.all_deps([], True): if dep.isLibrary(): @@ -2336,22 +2363,7 @@ """ Determines if a given project is part of an annotation processor. """ - processors = set() - - for otherProject in projects(): - if hasattr(otherProject, 'annotationProcessors') and len(otherProject.annotationProcessors) > 0: - for processorName in otherProject.annotationProcessors: - processors.add(project(processorName, fatalIfMissing=True)) - - if p in processors: - return True - - for otherProject in processors: - deps = otherProject.all_deps([], True) - if p in deps: - return True - - return False + return p in sorted_deps(annotation_processors()) def _genEclipseBuilder(dotProjectDoc, p, name, mxCommand, refresh=True, async=False, logToConsole=False, xmlIndent='\t', xmlStandalone=None): launchOut = XMLDoc(); @@ -2446,7 +2458,7 @@ out.element('explicit-platform', {'explicit-source-supported' : 'true'}) out.open('source-roots') out.element('root', {'id' : 'src.dir'}) - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: + if len(p.annotation_processors()) > 0: out.element('root', {'id' : 'src.ap-source-output.dir'}) out.close('source-roots') out.open('test-roots') @@ -2486,7 +2498,7 @@ annotationProcessorEnabled = "false" annotationProcessorReferences = "" annotationProcessorSrcFolder = "" - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: + if len(p.annotation_processors()) > 0: annotationProcessorEnabled = "true" annotationProcessorSrcFolder = "src.ap-source-output.dir=${build.generated.sources.dir}/ap-source-output" @@ -2578,8 +2590,8 @@ deps = p.all_deps([], True) annotationProcessorOnlyDeps = [] - if hasattr(p, 'annotationProcessors') and len(p.annotationProcessors) > 0: - for ap in p.annotationProcessors: + if len(p.annotation_processors()) > 0: + for ap in p.annotation_processors(): apProject = project(ap) if not apProject in deps: deps.append(apProject)