1.1 --- a/src/share/vm/opto/phaseX.cpp Wed Oct 23 10:00:39 2013 +0200 1.2 +++ b/src/share/vm/opto/phaseX.cpp Wed Oct 23 12:40:23 2013 +0200 1.3 @@ -1385,6 +1385,20 @@ 1.4 } 1.5 } 1.6 1.7 +/** 1.8 + * Remove the speculative part of all types that we know of 1.9 + */ 1.10 +void PhaseIterGVN::remove_speculative_types() { 1.11 + assert(UseTypeSpeculation, "speculation is off"); 1.12 + for (uint i = 0; i < _types.Size(); i++) { 1.13 + const Type* t = _types.fast_lookup(i); 1.14 + if (t != NULL && t->isa_oopptr()) { 1.15 + const TypeOopPtr* to = t->is_oopptr(); 1.16 + _types.map(i, to->remove_speculative()); 1.17 + } 1.18 + } 1.19 +} 1.20 + 1.21 //============================================================================= 1.22 #ifndef PRODUCT 1.23 uint PhaseCCP::_total_invokes = 0;