< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java
Print this page
*** 581,600 ****
private void lowerStoreHubNode(StoreHubNode storeHub, StructuredGraph graph) {
WriteNode hub = createWriteHub(graph, storeHub.getObject(), storeHub.getValue());
graph.replaceFixed(storeHub, hub);
}
- @Override
- public BarrierType fieldInitializationBarrier(JavaKind entryKind) {
- return (entryKind == JavaKind.Object && !runtime.getVMConfig().useDeferredInitBarriers) ? BarrierType.IMPRECISE : BarrierType.NONE;
- }
-
- @Override
- public BarrierType arrayInitializationBarrier(JavaKind entryKind) {
- return (entryKind == JavaKind.Object && !runtime.getVMConfig().useDeferredInitBarriers) ? BarrierType.PRECISE : BarrierType.NONE;
- }
-
private void lowerOSRStartNode(OSRStartNode osrStart) {
StructuredGraph graph = osrStart.graph();
if (graph.getGuardsStage() == StructuredGraph.GuardsStage.FIXED_DEOPTS) {
StartNode newStart = graph.add(new StartNode());
ParameterNode buffer = graph.addWithoutUnique(new ParameterNode(0, StampPair.createSingle(StampFactory.forKind(runtime.getTarget().wordJavaKind))));
--- 581,590 ----
*** 781,796 ****
}
@Override
protected BarrierType fieldLoadBarrierType(ResolvedJavaField f) {
HotSpotResolvedJavaField loadField = (HotSpotResolvedJavaField) f;
! BarrierType barrierType = BarrierType.NONE;
! if (runtime.getVMConfig().useG1GC && loadField.getJavaKind() == JavaKind.Object && metaAccess.lookupJavaType(Reference.class).equals(loadField.getDeclaringClass()) &&
loadField.getName().equals("referent")) {
! barrierType = BarrierType.PRECISE;
}
! return barrierType;
}
@Override
public int fieldOffset(ResolvedJavaField f) {
return f.getOffset();
--- 771,785 ----
}
@Override
protected BarrierType fieldLoadBarrierType(ResolvedJavaField f) {
HotSpotResolvedJavaField loadField = (HotSpotResolvedJavaField) f;
! if (loadField.getJavaKind() == JavaKind.Object && metaAccess.lookupJavaType(Reference.class).equals(loadField.getDeclaringClass()) &&
loadField.getName().equals("referent")) {
! return BarrierType.WEAK_FIELD;
}
! return super.fieldLoadBarrierType(f);
}
@Override
public int fieldOffset(ResolvedJavaField f) {
return f.getOffset();
< prev index next >