hotspot/src/share/vm/opto/phaseX.cpp
changeset 21099 46e6bbecd9e5
parent 19717 7819ffdaf0ff
child 22234 da823d78ad65
--- a/hotspot/src/share/vm/opto/phaseX.cpp	Wed Oct 23 10:00:39 2013 +0200
+++ b/hotspot/src/share/vm/opto/phaseX.cpp	Wed Oct 23 12:40:23 2013 +0200
@@ -1385,6 +1385,20 @@
   }
 }
 
+/**
+ * Remove the speculative part of all types that we know of
+ */
+void PhaseIterGVN::remove_speculative_types()  {
+  assert(UseTypeSpeculation, "speculation is off");
+  for (uint i = 0; i < _types.Size(); i++)  {
+    const Type* t = _types.fast_lookup(i);
+    if (t != NULL && t->isa_oopptr()) {
+      const TypeOopPtr* to = t->is_oopptr();
+      _types.map(i, to->remove_speculative());
+    }
+  }
+}
+
 //=============================================================================
 #ifndef PRODUCT
 uint PhaseCCP::_total_invokes   = 0;