changeset 9455:2cb85c37fb07

Little C2 write barrier fix: only make memory dependency when write barrier is actually new.
author rkennke
date Thu, 20 Aug 2015 17:57:41 +0200
parents 1538d2529fb8
children cb4719896b2f
files src/share/vm/opto/graphKit.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/opto/graphKit.cpp	Thu Aug 20 17:52:14 2015 +0200
+++ b/src/share/vm/opto/graphKit.cpp	Thu Aug 20 17:57:41 2015 +0200
@@ -4458,9 +4458,11 @@
     }
     const TypePtr* adr_type = obj_type->is_ptr()->add_offset(-8);
     ShenandoahWriteBarrierNode* wb = new ShenandoahWriteBarrierNode(NULL, memory(adr_type), obj);
-    Node* proj = _gvn.transform(new ShenandoahWBMemProjNode(wb));
-    set_memory(proj, adr_type);
     Node* n = _gvn.transform(wb);
+    if (wb == n) {
+      Node* proj = _gvn.transform(new ShenandoahWBMemProjNode(wb));
+      set_memory(proj, adr_type);
+    }
     record_for_igvn(n);
     return n;