src/hotspot/share/opto/superword.cpp
changeset 57582 a79a819a8218
parent 54750 1851a532ddfe
child 58393 0df9370fee29
--- a/src/hotspot/share/opto/superword.cpp	Sat Jul 27 10:02:35 2019 +0800
+++ b/src/hotspot/share/opto/superword.cpp	Mon Jul 29 13:57:54 2019 +0200
@@ -3296,7 +3296,14 @@
     Node* n = p->at(i);
     assert(n->is_Load(), "only meaningful for loads");
     if (!n->depends_only_on_test()) {
-      dep = LoadNode::Pinned;
+      if (n->as_Load()->has_unknown_control_dependency() &&
+          dep != LoadNode::Pinned) {
+        // Upgrade to unknown control...
+        dep = LoadNode::UnknownControl;
+      } else {
+        // Otherwise, we must pin it.
+        dep = LoadNode::Pinned;
+      }
     }
   }
   return dep;