diff src/share/vm/opto/idealKit.cpp @ 6615:09aad8452938

7190310: Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops Summary: In C2 add software membar after load from Reference.referent field to prevent commoning of loads across safepoint since GC can change its value. In C1 always generate Reference.get() intrinsic. Reviewed-by: roland, twisti, dholmes, johnc
author kvn
date Mon, 20 Aug 2012 09:58:58 -0700
parents 6c97c830fb6f
children e626685e9f6c
line wrap: on
line diff
--- a/src/share/vm/opto/idealKit.cpp	Mon Aug 20 09:07:21 2012 -0700
+++ b/src/share/vm/opto/idealKit.cpp	Mon Aug 20 09:58:58 2012 -0700
@@ -295,7 +295,11 @@
   if (_delay_all_transforms) {
     return delay_transform(n);
   } else {
-    return gvn().transform(n);
+    n = gvn().transform(n);
+    if (!gvn().is_IterGVN()) {
+      C->record_for_igvn(n);
+    }
+    return n;
   }
 }