Mercurial > hg > graal-compiler
changeset 5058:26f8371c229c
Merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Thu, 08 Mar 2012 15:09:11 +0100 |
parents | 3d7e78f17df5 (diff) 90c150a0a22b (current diff) |
children | ed559a528128 |
files | graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/bridge/VMToCompilerImpl.java |
diffstat | 51 files changed, 64 insertions(+), 88 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/X86InstructionDecoder.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/X86InstructionDecoder.java Thu Mar 08 15:09:11 2012 +0100 @@ -430,7 +430,7 @@ } } - assert hasDisp32 : "(tw) not sure if this holds: instruction has no disp32 field"; + assert hasDisp32 : "(thomaswue) not sure if this holds: instruction has no disp32 field"; // parse the output of emitOperand int op2 = 0xFF & code[ip++];
--- a/graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiAssumptions.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiAssumptions.java Thu Mar 08 15:09:11 2012 +0100 @@ -204,7 +204,7 @@ */ @SuppressWarnings("static-method") public boolean recordNoFinalizableSubclassAssumption(RiResolvedType receiverType) { - // TODO(tw): Record that assumption correctly. + // TODO (thomaswue): Record that assumption correctly. return false; }
--- a/graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiUtil.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiUtil.java Thu Mar 08 15:09:11 2012 +0100 @@ -413,7 +413,7 @@ * Gets a stack trace element for a given method and bytecode index. */ public static StackTraceElement toStackTraceElement(RiMethod method, @SuppressWarnings("unused") int bci) { - // TODO(tw): Look if we can use bci to get the line number. + // TODO (thomaswue): Look if we can use bci to get the line number. return new StackTraceElement(CiUtil.toJavaName(method.holder()), method.name(), null, -1); }
--- a/graal/com.oracle.max.graal.alloc/src/com/oracle/max/graal/alloc/util/MoveResolver.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.alloc/src/com/oracle/max/graal/alloc/util/MoveResolver.java Thu Mar 08 15:09:11 2012 +0100 @@ -264,7 +264,7 @@ private void insertExchange(Location from, Location to) { Debug.log("mr XCHG %s, %s", from, to); - // TODO create XCHG instruction and use it here + // TODO (cwimmer) create XCHG instruction and use it here insertionBuffer.append(insertPos, null); throw GraalInternalError.unimplemented(); }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Thu Mar 08 15:09:11 2012 +0100 @@ -26,7 +26,7 @@ * This class encapsulates options that control the behavior of the Graal compiler. * The help message for each option is specified by a {@linkplain #helpMap help map}. * - * (tw) WARNING: Fields of this class are treated as final by Graal. + * (thomaswue) WARNING: Fields of this class are treated as final by Graal. */ public final class GraalOptions {
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Thu Mar 08 15:09:11 2012 +0100 @@ -666,7 +666,7 @@ @SuppressWarnings("unused") protected void preGCWriteBarrier(CiValue addrOpr, boolean patch, LIRDebugInfo info) { - // TODO(tw): Implement this. + // TODO (thomaswue): Implement this. } @@ -924,7 +924,7 @@ CiValue destinationAddress = null; if (!target().invokeSnippetAfterArguments) { - // TODO This is the version currently necessary for Maxine: since the invokeinterface-snippet uses a division, it + // This is the version currently necessary for Maxine: since the invokeinterface-snippet uses a division, it // destroys rdx, which is also used to pass a parameter. Therefore, the snippet must be before the parameters are assigned to their locations. LIRDebugInfo addrInfo = stateFor(stateBeforeCallWithArguments(x.stateAfter(), callTarget, x.bci())); destinationAddress = emitXir(snippet, x.node(), addrInfo, false); @@ -938,7 +938,7 @@ List<CiValue> argList = visitInvokeArguments(cc, callTarget.arguments()); if (target().invokeSnippetAfterArguments) { - // TODO This is the version currently active for HotSpot. + // This is the version currently active for HotSpot. LIRDebugInfo addrInfo = stateFor(stateBeforeCallWithArguments(x.stateAfter(), callTarget, x.bci()), null, null); destinationAddress = emitXir(snippet, x.node(), addrInfo, false); } @@ -1035,9 +1035,8 @@ LIRDebugInfo info = null; FrameState stateAfter = x.stateAfter(); if (stateAfter != null) { - // TODO change back to stateBeforeReturn() when RuntimeCallNode uses a CallTargetNode - // (cwi) I made the code that modifies the operand stack conditional. My scenario: runtime calls to, e.g., - // CreateNullPointerException have no equivalent in the bytecodes, so there is in invoke bytecode. + // (cwimmer) I made the code that modifies the operand stack conditional. My scenario: runtime calls to, e.g., + // CreateNullPointerException have no equivalent in the bytecodes, so there is no invoke bytecode. // Therefore, the result of the runtime call was never pushed to the stack, and we cannot pop it here. FrameState stateBeforeReturn = stateAfter; if ((stateAfter.stackSize() > 0 && stateAfter.stackAt(stateAfter.stackSize() - 1) == x) ||
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/BoxingEliminationPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/BoxingEliminationPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -114,8 +114,6 @@ return; } - // TODO(ls) this seems weird: there might still be references to boxNode, yet it is deleted... - FrameState stateAfter = boxNode.stateAfter(); boxNode.setStateAfter(null); stateAfter.safeDelete();
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/EscapeAnalysisPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/EscapeAnalysisPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -301,7 +301,7 @@ @SuppressWarnings("unused") private static void completeAnalysis(StructuredGraph graph) { - // TODO(ls): debugging code + // TODO (lstadler): debugging code TTY.println("================================================================"); for (Node node : graph.getNodes()) {
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -372,7 +372,7 @@ } final double normalSize; - // TODO(ls) get rid of this magic, it's here to emulate the old behavior for the time being + // TODO (lstadler) get rid of this magic, it's here to emulate the old behavior for the time being if (ratio < 0.01) { ratio = 0.01; }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/IntrinsificationPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/IntrinsificationPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -69,7 +69,7 @@ private static StructuredGraph getIntrinsicGraph(Invoke invoke, RiResolvedMethod target, GraalRuntime runtime) { StructuredGraph intrinsicGraph = (StructuredGraph) target.compilerStorage().get(Graph.class); if (intrinsicGraph == null) { - // TODO (ph) remove once all intrinsics are available via RiMethod + // TODO remove once all intrinsics are available via compilerStorage intrinsicGraph = runtime.intrinsicGraph(invoke.stateAfter().method(), invoke.bci(), target, invoke.callTarget().arguments()); } return intrinsicGraph;
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/LoweringPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/LoweringPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -60,7 +60,7 @@ @Override public Node createGuard(Node condition) { - // TODO(tw): Explain why this must not be called on floating nodes. + // TODO (thomaswue): Docuemnt why this must not be called on floating nodes. throw new UnsupportedOperationException(); } };
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/SchedulePhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/SchedulePhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -286,15 +286,11 @@ } } if (canNotMove) { - // (cwi) this was the assertion commented out below. However, it is failing frequently when the - // scheduler is used for debug printing in early compiler phases. This was annoying during debugging - // when an exception breakpoint is set for assertion errors, so I changed it to a bailout. if (b.getEndNode() instanceof ControlSplitNode) { throw new GraalInternalError("Schedule is not possible : needs to move a node after the last node of the block which can not be move"). addContext(lastSorted). addContext(b.getEndNode()); } - //assert !(b.lastNode() instanceof ControlSplitNode); //b.setLastNode(lastSorted); } else { @@ -310,11 +306,6 @@ return; } - if (i instanceof WriteNode) { - // TODO(tw): Make sure every ReadNode that is connected to the same memory state is executed before every write node. - // WriteNode wn = (WriteNode) i; - } - FrameState state = null; WriteNode writeNode = null; for (Node input : i.inputs()) {
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64DeoptimizationStub.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64DeoptimizationStub.java Thu Mar 08 15:09:11 2012 +0100 @@ -51,7 +51,7 @@ @Override public void emitCode(TargetMethodAssembler tasm, AMD64MacroAssembler masm) { - // TODO(cwi): we want to get rid of a generally reserved scratch register. + // TODO (cwimmer): we want to get rid of a generally reserved scratch register. CiRegister scratch = tasm.frameMap.registerConfig.getScratchRegister(); masm.bind(label); @@ -59,7 +59,7 @@ masm.nop(); keepAlive.add(deoptInfo.toString()); AMD64Move.move(tasm, masm, scratch.asValue(), CiConstant.forObject(deoptInfo)); - // TODO Why use scratch register here? Is it an implicit calling convention that the runtime function reads this register? + // TODO Make this an explicit calling convention instead of using a scratch register AMD64Call.directCall(tasm, masm, CiRuntimeCall.SetDeoptInfo, info); } int code; @@ -83,7 +83,7 @@ throw GraalInternalError.shouldNotReachHere(); } masm.movq(scratch, code); - // TODO Why use scratch register here? Is it an implicit calling convention that the runtime function reads this register? + // TODO Make this an explicit calling convention instead of using a scratch register AMD64Call.directCall(tasm, masm, CiRuntimeCall.Deoptimize, info); AMD64Call.shouldNotReachHere(tasm, masm); }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64LIRGenerator.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/target/amd64/AMD64LIRGenerator.java Thu Mar 08 15:09:11 2012 +0100 @@ -91,7 +91,7 @@ @Override public LIRInstruction createExchange(CiValue input1, CiValue input2) { - // TODO implement XCHG operation for LIR + // TODO (cwimmer) implement XCHG operation for LIR return null; } } @@ -562,7 +562,7 @@ append(new NullCheckOp(value, info)); } - // TODO The CompareAndSwapNode in its current form needs to be lowered to several Nodes before code generation to separate three parts: + // TODO (cwimmer) The CompareAndSwapNode in its current form needs to be lowered to several Nodes before code generation to separate three parts: // * The write barriers (and possibly read barriers) when accessing an object field // * The distinction of returning a boolean value (semantic similar to a BooleanNode to be used as a condition?) or the old value being read // * The actual compare-and-swap
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/InliningUtil.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/InliningUtil.java Thu Mar 08 15:09:11 2012 +0100 @@ -574,12 +574,12 @@ if (callTarget.receiver().declaredType() != null) { RiResolvedType declared = callTarget.receiver().declaredType(); // the invoke target might be more specific than the holder (happens after inlining: locals lose their declared type...) - // TODO (ls) fix this + // TODO (lstadler) fix this if (declared != null && declared.isSubtypeOf(holder)) { holder = declared; } } - // TODO (tw) fix this + // TODO (thomaswue) fix this if (assumptions != null) { RiResolvedMethod concrete = holder.uniqueConcreteMethod(targetMethod); if (concrete != null) { @@ -619,13 +619,13 @@ } else { invoke.setMegamorph(true); if (GraalOptions.InlinePolymorphicCalls && notRecordedTypeProbability == 0 || GraalOptions.InlineMegamorphicCalls && notRecordedTypeProbability > 0) { - // TODO (ch) inlining of multiple methods should work differently + // TODO (chaeubl) inlining of multiple methods should work differently // 1. check which methods can be inlined // 2. for those methods, use weight and probability to compute which of them should be inlined // 3. do the inlining // a) all seen methods can be inlined -> do so and guard with deopt // b) some methods can be inlined -> inline them and fall back to invocation if violated - // TODO (ch) sort types by probability + // TODO (chaeubl) sort types by probability // determine concrete methods and map type to specific method ArrayList<RiResolvedMethod> concreteMethods = new ArrayList<>();
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Thu Mar 08 15:09:11 2012 +0100 @@ -224,7 +224,7 @@ return nodeClass; } - // TODO(tw): Do not allow to replace with null. + // TODO (thomaswue): Do not allow to replace with null. private boolean checkReplaceWith(Node other) { assert assertFalse(other == this, "cannot replace a node with itself"); assert assertFalse(isDeleted(), "cannot replace deleted node");
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeClass.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeClass.java Thu Mar 08 15:09:11 2012 +0100 @@ -131,7 +131,7 @@ this.shortName = newShortName; if (Node.IterableNodeType.class.isAssignableFrom(clazz)) { this.iterableId = nextIterableId++; - // TODO(ls) add type hierarchy - based node iteration + // TODO (lstadler) add type hierarchy - based node iteration // for (NodeClass nodeClass : nodeClasses.values()) { // if (clazz.isAssignableFrom(nodeClass.clazz)) { // throw new UnsupportedOperationException("iterable non-final Node classes not supported: " + clazz);
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/CompilerImpl.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/CompilerImpl.java Thu Mar 08 15:09:11 2012 +0100 @@ -224,7 +224,7 @@ // observer = new IdealGraphPrinterObserver(GraalOptions.PrintIdealGraphAddress, GraalOptions.PrintIdealGraphPort); // } // context.addCompilationObserver(observer); - // TODO(tw): Install observer. + // TODO (thomaswue): Install observer. // } runtime = new HotSpotRuntime(config, this); }
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/bridge/VMToCompilerImpl.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/bridge/VMToCompilerImpl.java Thu Mar 08 15:09:11 2012 +0100 @@ -198,8 +198,8 @@ } public void shutdownCompiler() throws Throwable { -// compiler.getCompiler().context.print(); - // TODO(tw): Print context results. + // compiler.getCompiler().context.print(); + // TODO (thomaswue): Print context results. compileQueue.shutdown(); if (Debug.isEnabled()) {
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotField.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotField.java Thu Mar 08 15:09:11 2012 +0100 @@ -79,7 +79,7 @@ return constant; } else { assert !Modifier.isStatic(accessFlags); - // TODO (ch) HotSpot does not trust final non-static fields (see ciField.cpp) + // TODO (chaeubl) HotSpot does not trust final non-static fields (see ciField.cpp) if (Modifier.isFinal(accessFlags())) { return this.kind(false).readUnsafeConstant(receiver.asObject(), offset); }
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java Thu Mar 08 15:09:11 2012 +0100 @@ -43,7 +43,7 @@ config = CompilerImpl.getInstance().getConfig(); } - // TODO (ch) use same logic as in NodeClass? + // TODO (chaeubl) use same logic as in NodeClass? private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final HotSpotMethodDataAccessor NO_DATA_NO_EXCEPTION_ACCESSOR = new NoMethodData(RiExceptionSeen.FALSE); private static final HotSpotMethodDataAccessor NO_DATA_EXCEPTION_POSSIBLY_NOT_RECORDED_ACCESSOR = new NoMethodData(RiExceptionSeen.NOT_SUPPORTED);
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotRuntime.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotRuntime.java Thu Mar 08 15:09:11 2012 +0100 @@ -361,7 +361,7 @@ LocalNode receiver = graph.unique(new LocalNode(CiKind.Object, 0)); SafeReadNode klassOop = safeRead(graph, CiKind.Object, receiver, config.klassOopOffset); graph.start().setNext(klassOop); - // TODO(tw): Care about primitive classes! Crashes for primitive classes at the moment (klassOop == null) + // TODO (thomaswue): Care about primitive classes! Crashes for primitive classes at the moment (klassOop == null) ReadNode result = graph.add(new ReadNode(CiKind.Int, klassOop, LocationNode.create(LocationNode.FINAL_LOCATION, CiKind.Int, config.klassModifierFlagsOffset, graph))); ReturnNode ret = graph.add(new ReturnNode(result)); klassOop.setNext(ret);
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotTypeResolvedImpl.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotTypeResolvedImpl.java Thu Mar 08 15:09:11 2012 +0100 @@ -222,7 +222,7 @@ long id = offset + ((long) flags << 32); - // (tw) Must cache the fields, because the local load elimination only works if the objects from two field lookups are equal. + // (thomaswue) Must cache the fields, because the local load elimination only works if the objects from two field lookups are equal. if (fieldCache == null) { fieldCache = new HashMap<>(8); } else {
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotXirGenerator.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotXirGenerator.java Thu Mar 08 15:09:11 2012 +0100 @@ -361,7 +361,7 @@ } - // (tw) It is important to use for this runtime call the debug info AFTER the monitor enter. Otherwise the monitor object + // (thomaswue) It is important to use for this runtime call the debug info AFTER the monitor enter. Otherwise the monitor object // is not correctly garbage collected. final boolean useInfoAfter = true;
--- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/snippets/IntrinsifyArrayCopyPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/snippets/IntrinsifyArrayCopyPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -80,9 +80,7 @@ if (targetMethod == arrayCopy) { ValueNode src = methodCallTarget.arguments().get(0); ValueNode dest = methodCallTarget.arguments().get(2); - if (src == null || dest == null) { //TODO (gd) this should never be null : check - return; - } + assert src != null && dest != null; RiResolvedType srcDeclaredType = src.declaredType(); RiResolvedType destDeclaredType = dest.declaredType(); if (srcDeclaredType != null
--- a/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java Thu Mar 08 15:09:11 2012 +0100 @@ -292,7 +292,7 @@ } } - // TODO(tw): Merge BeginNode with ExceptionObject node to get a correct and uniform FrameState. + // TODO (thomaswue): Merge BeginNode with ExceptionObject node to get a correct and uniform FrameState. BeginNode p = currentGraph.add(new BeginNode()); p.setStateAfter(frameState.duplicateWithoutStack(bci)); @@ -1376,7 +1376,7 @@ ValueNode x = returnKind == CiKind.Void ? null : frameState.pop(returnKind); assert frameState.stackSize() == 0; - // TODO (gd) remove this when FloatingRead is fixed + // TODO (gdub) remove this when FloatingRead can handle this case if (Modifier.isSynchronized(method.accessFlags())) { append(currentGraph.add(new ValueAnchorNode(x))); assert !frameState.rethrowException();
--- a/graal/com.oracle.max.graal.jtt/src/com/oracle/max/graal/jtt/threads/Thread_isInterrupted04.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.jtt/src/com/oracle/max/graal/jtt/threads/Thread_isInterrupted04.java Thu Mar 08 15:09:11 2012 +0100 @@ -28,8 +28,8 @@ */ // Interrupted while running, do nothing, just set the flag and continue -// (tw) This test will exercise deoptimization on HotSpot, because a volatile unloaded field is accessed. -// (tw) The temporary result variable is needed, because in order to query the isInterrupted flag, the thread must be alive. +// (thomaswue) This test will exercise deoptimization on HotSpot, because a volatile unloaded field is accessed. +// (thomaswue) The temporary result variable is needed, because in order to query the isInterrupted flag, the thread must be alive. public class Thread_isInterrupted04 { public static boolean test() throws InterruptedException {
--- a/graal/com.oracle.max.graal.lir.amd64/src/com/oracle/max/graal/lir/amd64/AMD64Call.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.lir.amd64/src/com/oracle/max/graal/lir/amd64/AMD64Call.java Thu Mar 08 15:09:11 2012 +0100 @@ -124,7 +124,7 @@ // offset might not fit a 32-bit immediate, generate an // indirect call with a 64-bit immediate CiRegister scratch = tasm.frameMap.registerConfig.getScratchRegister(); - // TODO(cwi): we want to get rid of a generally reserved scratch register. + // TODO (cwimmer): we want to get rid of a generally reserved scratch register. masm.movq(scratch, 0L); masm.call(scratch); } else {
--- a/graal/com.oracle.max.graal.lir/src/com/oracle/max/graal/lir/LIRInstruction.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.lir/src/com/oracle/max/graal/lir/LIRInstruction.java Thu Mar 08 15:09:11 2012 +0100 @@ -362,7 +362,7 @@ * @param index The index of the operand. * @return The flags for the operand. */ - // TODO this method will go away when we have named operands, the flags will be specified as annotations instead. + // TODO (cwimmer) this method will go away when we have named operands, the flags will be specified as annotations instead. protected abstract EnumSet<OperandFlag> flagsFor(OperandMode mode, int index); protected void verify() {
--- a/graal/com.oracle.max.graal.lir/src/com/oracle/max/graal/lir/StandardOp.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.lir/src/com/oracle/max/graal/lir/StandardOp.java Thu Mar 08 15:09:11 2012 +0100 @@ -105,7 +105,7 @@ * When the LIR is constructed, the last operation of every block must implement this interface. After * register allocation, unnecessary jumps can be deleted. * - * TODO Currently, a block can also end with an XIR operation. + * TODO (cwimmer) Currently, a block can also end with an XIR operation. */ public static class JumpOp extends LIRInstruction { private final LabelRef destination;
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/AnchorNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/AnchorNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -51,7 +51,6 @@ @Override public void generate(LIRGeneratorTool gen) { - // TODO is it necessary to do something for the "guards" list here? // Currently, there is nothing to emit since anchors are only a structural element with no execution semantics. } }
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/CompareNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/CompareNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -28,7 +28,7 @@ import com.oracle.max.graal.nodes.spi.*; import com.oracle.max.graal.nodes.type.*; -/* TODO(tw/gd) For high-level optimization purpose the compare node should be a boolean *value* (it is currently only a helper node) +/* TODO (thomaswue/gdub) For high-level optimization purpose the compare node should be a boolean *value* (it is currently only a helper node) * But in the back-end the comparison should not always be materialized (for example in x86 the comparison result will not be in a register but in a flag) * * Compare should probably be made a value (so that it can be canonicalized for example) and in later stages some Compare usage should be transformed
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/IntegerArithmeticNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/IntegerArithmeticNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -37,7 +37,6 @@ public static IntegerAddNode add(ValueNode v1, ValueNode v2) { assert v1.kind() == v2.kind() && v1.graph() == v2.graph(); Graph graph = v1.graph(); - //TODO (gd) handle conversions here instead of strong assert ? switch(v1.kind()) { case Int: return graph.unique(new IntegerAddNode(CiKind.Int, v1, v2)); @@ -51,7 +50,6 @@ public static IntegerMulNode mul(ValueNode v1, ValueNode v2) { assert v1.kind() == v2.kind() && v1.graph() == v2.graph(); Graph graph = v1.graph(); - //TODO (gd) handle conversions here instead of strong assert ? switch(v1.kind()) { case Int: return graph.unique(new IntegerMulNode(CiKind.Int, v1, v2));
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/ShiftNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/calc/ShiftNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -37,7 +37,7 @@ */ public ShiftNode(CiKind kind, ValueNode x, ValueNode s) { super(kind, x, s); - // TODO(cwi) Why check for null here - what is a shift with no left operand? + // TODO (cwimmer) Why check for null here - what is a shift with no left operand? assert x == null || x.kind() == kind; } }
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/extended/ReadHubNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/extended/ReadHubNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -28,7 +28,7 @@ import com.oracle.max.graal.nodes.spi.*; import com.oracle.max.graal.nodes.type.*; -// TODO (ch) this should be a FloatingNode but Lowering crashes in that case +// TODO (chaeubl) this should be a FloatingNode but Lowering is not possible in that case public final class ReadHubNode extends FixedWithNextNode implements Lowerable { @Input private ValueNode object;
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/CheckCastNode.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/CheckCastNode.java Thu Mar 08 15:09:11 2012 +0100 @@ -104,7 +104,7 @@ return this; } - // TODO(tw): Find a better way to handle anchors. + // TODO (thomaswue): Find a better way to handle anchors. private void freeAnchor() { ValueAnchorNode anchorUsage = usages().filter(ValueAnchorNode.class).first(); if (anchorUsage != null) {
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/spi/EscapeOp.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/spi/EscapeOp.java Thu Mar 08 15:09:11 2012 +0100 @@ -55,7 +55,7 @@ } else if (usage instanceof StoreFieldNode) { StoreFieldNode x = (StoreFieldNode) usage; // self-references do escape - return x.value() == node; // TODO(tw) Check if we can add this condition? && x.object() != node; + return x.value() == node; // TODO (thomaswue) Check if we can add this condition? && x.object() != node; } else if (usage instanceof LoadIndexedNode) { LoadIndexedNode x = (LoadIndexedNode) usage; if (x.index() == node) {
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/type/StampFactory.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/type/StampFactory.java Thu Mar 08 15:09:11 2012 +0100 @@ -129,7 +129,7 @@ } public static Stamp exactNonNull(final RiResolvedType type) { - // (cwi) type can be null for certain Maxine-internal objects such as the static hub. Is this a problem here? + // (cwimmer) type can be null for certain Maxine-internal objects such as the static hub. Is this a problem here? assert type == null || type.kind(false) == CiKind.Object; return new BasicValueStamp(CiKind.Object, true, type, type); }
--- a/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/DoubleSnippets.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/DoubleSnippets.java Thu Mar 08 15:09:11 2012 +0100 @@ -44,9 +44,7 @@ if (value != value) { return NAN_RAW_LONG_BITS; } else { - @JavacBug(id = 6995200) - Long result = ConvertNode.convert(ConvertNode.Op.MOV_D2L, value); - return result; + return doubleToRawLongBits(value); } }
--- a/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/FloatSnippets.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/FloatSnippets.java Thu Mar 08 15:09:11 2012 +0100 @@ -44,9 +44,7 @@ if (value != value) { return NAN_RAW_INT_BITS; } else { - @JavacBug(id = 6995200) - Integer result = ConvertNode.convert(ConvertNode.Op.MOV_F2I, value); - return result; + return floatToRawIntBits(value); } }
--- a/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/Snippets.java Thu Mar 08 12:46:19 2012 +0100 +++ b/graal/com.oracle.max.graal.snippets/src/com/oracle/max/graal/snippets/Snippets.java Thu Mar 08 15:09:11 2012 +0100 @@ -126,7 +126,7 @@ new CanonicalizerPhase(target, runtime, null).apply(graph); } - // TODO (gd) remove when we have safepoint polling elimination + // TODO (gdub) remove when we have good safepoint polling elimination for (LoopEndNode end : graph.getNodes(LoopEndNode.class)) { end.setSafepointPolling(false); }
--- a/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -291,7 +291,7 @@ } #ifndef GRAAL - // TODO(tw): Check how we can access the flag without a ciEnv object. + // TODO(thomaswue): Check how we can access the flag without a ciEnv object. if (CURRENT_ENV->dtrace_alloc_probes()) { assert(obj == rax, "must be"); call(RuntimeAddress(Runtime1::entry_for(Runtime1::dtrace_object_alloc_id))); @@ -328,7 +328,7 @@ #ifndef GRAAL - // TODO(tw): Check how we can access the flag without a ciEnv object. + // TODO(thomaswue): Check how we can access the flag without a ciEnv object. if (CURRENT_ENV->dtrace_alloc_probes()) { assert(obj == rax, "must be"); call(RuntimeAddress(Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)));
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -97,7 +97,7 @@ if (oop_result2->is_valid()) { movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD); } - // (tw) Deoptimize in case of an exception. + // (thomaswue) Deoptimize in case of an exception. restore_live_registers(this, false); movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD); leave();
--- a/src/share/vm/code/codeBlob.hpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/code/codeBlob.hpp Thu Mar 08 15:09:11 2012 +0100 @@ -405,7 +405,7 @@ int _unpack_with_exception_in_tls; - // (tw) Offset when graal calls uncommon_trap. + // (thomaswue) Offset when graal calls uncommon_trap. int _uncommon_trap_offset; int _jmp_uncommon_trap_offset; @@ -463,7 +463,7 @@ } address unpack_with_exception_in_tls() const { return code_begin() + _unpack_with_exception_in_tls; } - // (tw) Offset when graal calls uncommon_trap. + // (thomaswue) Offset when graal calls uncommon_trap. void set_uncommon_trap_offset(int offset) { _uncommon_trap_offset = offset; assert(contains(code_begin() + _uncommon_trap_offset), "must be PC inside codeblob");
--- a/src/share/vm/code/compiledIC.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/code/compiledIC.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -528,7 +528,7 @@ NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); assert(method_holder->data() == 0 || method_holder->data() == (intptr_t)callee(), "a) MT-unsafe modification of inline cache"); -// TODO(tw): Check what is the correct assert for Graal. +// TODO(thomaswue): Check what is the correct assert for Graal. #ifndef GRAAL assert(jump->jump_destination() == (address)-1 || jump->jump_destination() == entry, "b) MT-unsafe modification of inline cache"); #endif
--- a/src/share/vm/code/nmethod.hpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/code/nmethod.hpp Thu Mar 08 15:09:11 2012 +0100 @@ -594,8 +594,8 @@ // Return true is the PC is one would expect if the frame is being deopted. bool is_deopt_pc (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); } - // (tw) When using graal, the address might be off by 5 (because this is the size of the call instruction. - // (tw) TODO: Replace this by a more general mechanism. + // (thomaswue) When using graal, the address might be off by 5 (because this is the size of the call instruction. + // (thomaswue) TODO: Replace this by a more general mechanism. bool is_deopt_entry (address pc) { return pc == deopt_handler_begin() IS_GRAAL( || pc == deopt_handler_begin() + 5); } bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); } // Accessor/mutator for the original pc of a frame before a frame was deopted.
--- a/src/share/vm/graal/graalCompiler.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/graal/graalCompiler.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -262,7 +262,7 @@ assert(obj() != NULL, "must succeed in allocating instance"); HotSpotMethodResolved::set_compiler(obj, VMToCompiler::compilerInstance()()); - // (tw) Cannot use reflection here, because the compiler thread could dead lock with the running application. + // (thomaswue) Cannot use reflection here, because the compiler thread could dead lock with the running application. // oop reflected = getReflectedMethod(method(), CHECK_NULL); HotSpotMethodResolved::set_javaMirror(obj, method()); HotSpotMethodResolved::set_name(obj, name());
--- a/src/share/vm/graal/graalEnv.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/graal/graalEnv.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -412,7 +412,7 @@ // were inserted. Any violated dependences in this case are dumped to // the tty. - // TODO (tw): Always check dependency for now. + // TODO (thomaswue): Always check dependency for now. //bool counter_changed = system_dictionary_modification_counter_changed(); //bool test_deps = counter_changed; //DEBUG_ONLY(test_deps = true);
--- a/src/share/vm/oops/methodDataOop.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/oops/methodDataOop.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -865,7 +865,7 @@ _nof_decompiles += 1; if (decompile_count() > (uint)PerMethodRecompilationCutoff) { #ifdef GRAAL - // TODO (ch) enable this in the fastdebug build only once we are more stable + // TODO (chaeubl) enable this in the fastdebug build only once we are more stable ResourceMark m; tty->print_cr("WARN: endless recompilation of %s. Method was set to not compilable.", method()->name_and_sig_as_C_string()); //ShouldNotReachHere();
--- a/src/share/vm/runtime/thread.cpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/runtime/thread.cpp Thu Mar 08 15:09:11 2012 +0100 @@ -2040,7 +2040,7 @@ // Do not throw asynchronous exceptions against the compiler thread // (the compiler thread should not be a Java thread -- fix in 1.4.2) - // (tw) May we do this? + // (thomaswue) May we do this? //if (is_Compiler_thread()) return; { @@ -3054,10 +3054,7 @@ static void compiler_thread_entry(JavaThread* thread, TRAPS) { assert(thread->is_Compiler_thread(), "must be compiler thread"); -// XXX (gd) currently we still start c1 compiler threads even with Graal, they just die immediately, more compileBroker cleanup is needed to eliminate that -#ifndef GRAAL CompileBroker::compiler_thread_loop(); -#endif } // Create a CompilerThread
--- a/src/share/vm/runtime/thread.hpp Thu Mar 08 12:46:19 2012 +0100 +++ b/src/share/vm/runtime/thread.hpp Thu Mar 08 15:09:11 2012 +0100 @@ -734,7 +734,7 @@ JavaThread* _next; // The next thread in the Threads list oop _threadObj; // The Java level thread object - // (tw) Necessary for holding a compilation buffer and ci environment. Moved from CompilerThread to JavaThread in order to enable code installation from Java application code. + // (thomaswue) Necessary for holding a compilation buffer and ci environment. Moved from CompilerThread to JavaThread in order to enable code installation from Java application code. BufferBlob* _buffer_blob; ciEnv* _env; bool _is_compiling; @@ -1774,7 +1774,7 @@ bool is_Compiler_thread() const { return true; } // Hide this compiler thread from external view. - // (tw) For Graal, the compiler thread should be visible. + // (thomaswue) For Graal, the compiler thread should be visible. bool is_hidden_from_external_view() const { #ifdef GRAAL return !DebugGraal;