# HG changeset patch # User Doug Simon # Date 1412342191 -7200 # Node ID 106f7821995530b28ca212e9200351451cabc9d4 # Parent 1e7e354e407f17dcf46750b6fc40994edc0d2938# Parent 0b8483cd42c0fcb23fdc8cf5bb9bf9f7f03328b0 Merge. diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/Fields.java --- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/Fields.java Fri Oct 03 14:34:09 2014 +0200 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/Fields.java Fri Oct 03 15:16:31 2014 +0200 @@ -78,6 +78,43 @@ } /** + * Copies fields from {@code from} to {@code to}. The objects must be of the exact same type. + * + * @param from the object from which the fields should be copied. + * @param to the object to which the fields should be copied. + */ + public void copy(Object from, Object to) { + assert from.getClass() == to.getClass(); + for (int index = 0; index < offsets.length; index++) { + long offset = offsets[index]; + Class type = types[index]; + if (type.isPrimitive()) { + if (type == Integer.TYPE) { + unsafe.putInt(to, offset, unsafe.getInt(from, offset)); + } else if (type == Long.TYPE) { + unsafe.putLong(to, offset, unsafe.getLong(from, offset)); + } else if (type == Boolean.TYPE) { + unsafe.putBoolean(to, offset, unsafe.getBoolean(from, offset)); + } else if (type == Float.TYPE) { + unsafe.putFloat(to, offset, unsafe.getFloat(from, offset)); + } else if (type == Double.TYPE) { + unsafe.putDouble(to, offset, unsafe.getDouble(from, offset)); + } else if (type == Short.TYPE) { + unsafe.putShort(to, offset, unsafe.getShort(from, offset)); + } else if (type == Character.TYPE) { + unsafe.putChar(to, offset, unsafe.getChar(from, offset)); + } else if (type == Byte.TYPE) { + unsafe.putByte(to, offset, unsafe.getByte(from, offset)); + } else { + assert false : "unhandled property type: " + type; + } + } else { + unsafe.putObject(to, offset, unsafe.getObject(from, offset)); + } + } + } + + /** * Gets the value of a field for a given object. * * @param object the object whose field is to be read diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MonitorGraphTest.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/TypedNodeIteratorTest.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/TypedNodeIteratorTest2.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Edges.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Edges.java Fri Oct 03 14:34:09 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Edges.java Fri Oct 03 15:16:31 2014 +0200 @@ -135,6 +135,24 @@ } /** + * Initializes the list edges in a given node based on the size of the list edges in a prototype + * node. + * + * @param node the node whose list edges are to be initialized + * @param prototype the node whose list edge sizes are used when creating new edge lists + */ + public void initializeLists(Node node, Node prototype) { + int index = getDirectCount(); + while (index < getCount()) { + NodeList list = getNodeList(prototype, index); + int size = list.initialSize; + NodeList newList = type == Edges.Type.Inputs ? new NodeInputList<>(node, size) : new NodeSuccessorList<>(node, size); + initializeList(node, index, newList); + index++; + } + } + + /** * Copies edges from {@code fromNode} to {@code toNode}. The nodes are expected to be of the * exact same type. * @@ -150,7 +168,13 @@ } while (index < getCount()) { NodeList list = getNodeList(toNode, index); - list.copy(getNodeList(fromNode, index)); + if (list == null) { + NodeList fromList = getNodeList(fromNode, index); + list = type == Edges.Type.Inputs ? new NodeInputList<>(toNode, fromList) : new NodeSuccessorList<>(toNode, fromList); + initializeList(toNode, index, list); + } else { + list.copy(getNodeList(fromNode, index)); + } index++; } } diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Fri Oct 03 14:34:09 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Fri Oct 03 15:16:31 2014 +0200 @@ -58,6 +58,7 @@ public abstract class Node implements Cloneable, Formattable { public final static boolean USE_GENERATED_NODES = Boolean.parseBoolean(System.getProperty("graal.useGeneratedNodes", "true")); + public final static boolean USE_UNSAFE_CLONE = Boolean.parseBoolean(System.getProperty("graal.useUnsafeClone", "true")); static final int DELETED_ID_START = -1000000000; static final int INITIAL_ID = -1; @@ -756,24 +757,36 @@ Node newNode = null; try { - newNode = (Node) this.clone(); - } catch (CloneNotSupportedException e) { + if (USE_UNSAFE_CLONE) { + newNode = (Node) UnsafeAccess.unsafe.allocateInstance(getClass()); + nodeClass.getData().copy(this, newNode); + if (clearInputsAndSuccessors) { + nodeClass.getEdges(Inputs).initializeLists(newNode, this); + nodeClass.getEdges(Successors).initializeLists(newNode, this); + } else { + nodeClass.getEdges(Inputs).copy(this, newNode); + nodeClass.getEdges(Successors).copy(this, newNode); + } + } else { + newNode = (Node) this.clone(); + if (clearInputsAndSuccessors) { + nodeClass.getEdges(Inputs).clear(newNode); + nodeClass.getEdges(Successors).clear(newNode); + } + newNode.typeCacheNext = null; + newNode.usage0 = null; + newNode.usage1 = null; + newNode.predecessor = null; + } + } catch (Exception e) { throw new GraalGraphInternalError(e).addContext(this); } - if (clearInputsAndSuccessors) { - nodeClass.getEdges(Inputs).clear(newNode); - nodeClass.getEdges(Successors).clear(newNode); - } newNode.graph = into; - newNode.typeCacheNext = null; newNode.id = INITIAL_ID; if (into != null) { into.register(newNode); } - newNode.usage0 = null; - newNode.usage1 = null; newNode.extraUsages = NO_NODES; - newNode.predecessor = null; if (into != null && nodeClass.valueNumberable() && nodeClass.isLeafNode()) { into.putNodeIntoCache(newNode); diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeSuccessorList.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeSuccessorList.java Fri Oct 03 14:34:09 2014 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeSuccessorList.java Fri Oct 03 15:16:31 2014 +0200 @@ -24,6 +24,8 @@ import static com.oracle.graal.graph.Edges.Type.*; +import java.util.*; + import com.oracle.graal.graph.Edges.*; public final class NodeSuccessorList extends NodeList { @@ -41,6 +43,11 @@ assert self.usages().isEmpty(); } + public NodeSuccessorList(Node self, List elements) { + super(self, elements); + assert self.usages().isEmpty(); + } + @Override protected void update(T oldNode, T newNode) { self.updatePredecessor(oldNode, newNode); diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugInfoBuilder.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/AllocaNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizationFetchUnrollInfoCallNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizeCallerNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DirectCompareAndSwapNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1PostWriteBarrier.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1PreWriteBarrier.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ReferentFieldReadBarrier.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SerialWriteBarrier.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubForeignCallNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/StubStartNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/UncommonTrapCallNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/VMErrorNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrier.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractFixedGuardNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractLocalNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardedValueNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InfopointNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LogicConstantNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoweredCallTargetNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryMapNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/BinaryArithmeticNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatLessThanNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerConvertNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnaryArithmeticNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AbstractWriteNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BytecodeExceptionNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/JavaReadNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/JavaWriteNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadMethodNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MembarNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeAccessNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewObjectNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndAddNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndWriteNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/SelfReplacingMethodCallTargetNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualArrayNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualBoxingNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements.hsail/src/com/oracle/graal/replacements/hsail/HSAILMathIntrinsicsNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ObjectAccessTest.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/AssertionNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectReadNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectStoreNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroStateSplitNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathIntrinsicNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ReadRegisterNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/WriteRegisterNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadFinalNode.java diff -r 0b8483cd42c0 -r 106f78219955 graal/com.oracle.graal.word/src/com/oracle/graal/word/nodes/SnippetLocationNode.java