src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/WriteBarrierAdditionPhase.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/WriteBarrierAdditionPhase.java	Mon Mar 20 17:38:50 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/WriteBarrierAdditionPhase.java	Mon Mar 20 17:38:50 2017

*** 33,44 **** --- 33,44 ---- import org.graalvm.compiler.hotspot.nodes.SerialArrayRangeWriteBarrier; import org.graalvm.compiler.hotspot.nodes.SerialWriteBarrier; import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.nodes.ValueNode; import org.graalvm.compiler.nodes.extended.ArrayRangeWriteNode; + import org.graalvm.compiler.nodes.java.AbstractCompareAndSwapNode; import org.graalvm.compiler.nodes.java.LoweredAtomicReadAndWriteNode; import org.graalvm.compiler.nodes.java.LoweredCompareAndSwapNode; import org.graalvm.compiler.nodes.memory.FixedAccessNode; import org.graalvm.compiler.nodes.memory.HeapAccess.BarrierType; import org.graalvm.compiler.nodes.memory.ReadNode; import org.graalvm.compiler.nodes.memory.WriteNode; import org.graalvm.compiler.nodes.memory.address.AddressNode;
*** 61,72 **** --- 61,72 ---- } else if (n instanceof WriteNode) { addWriteNodeBarriers((WriteNode) n, graph); } else if (n instanceof LoweredAtomicReadAndWriteNode) { LoweredAtomicReadAndWriteNode loweredAtomicReadAndWriteNode = (LoweredAtomicReadAndWriteNode) n; addAtomicReadWriteNodeBarriers(loweredAtomicReadAndWriteNode, graph); ! } else if (n instanceof LoweredCompareAndSwapNode) { ! addCASBarriers((LoweredCompareAndSwapNode) n, graph); ! } else if (n instanceof AbstractCompareAndSwapNode) { ! addCASBarriers((AbstractCompareAndSwapNode) n, graph); } else if (n instanceof ArrayRangeWriteNode) { ArrayRangeWriteNode node = (ArrayRangeWriteNode) n; if (node.isObjectArray()) { addArrayRangeBarriers(node, graph); }
*** 114,124 **** --- 114,124 ---- break; case IMPRECISE: case PRECISE: boolean precise = barrierType == BarrierType.PRECISE; if (config.useG1GC) { ! if (!node.isInitialization()) { ! if (!node.getLocationIdentity().isInit()) { addG1PreWriteBarrier(node, node.getAddress(), null, true, node.getNullCheck(), graph); } addG1PostWriteBarrier(node, node.getAddress(), node.value(), precise, graph); } else { addSerialPostWriteBarrier(node, node.getAddress(), node.value(), precise, graph);
*** 148,158 **** --- 148,158 ---- default: throw new GraalError("unexpected barrier type: " + barrierType); } } ! private void addCASBarriers(LoweredCompareAndSwapNode node, StructuredGraph graph) { ! private void addCASBarriers(AbstractCompareAndSwapNode node, StructuredGraph graph) { BarrierType barrierType = node.getBarrierType(); switch (barrierType) { case NONE: // nothing to do break;

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/WriteBarrierAdditionPhase.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File