comparison src/share/vm/opto/phaseX.cpp @ 12966:b2ee5dc63353

8024070: C2 needs some form of type speculation Summary: record unused type profile information with type system, propagate and use it. Reviewed-by: kvn, twisti
author roland
date Wed, 23 Oct 2013 12:40:23 +0200
parents 650868c062a9
children de6a9e811145
comparison
equal deleted inserted replaced
12965:8b4bbba322d3 12966:b2ee5dc63353
1383 if (imem != NULL) add_users_to_worklist0(imem); 1383 if (imem != NULL) add_users_to_worklist0(imem);
1384 } 1384 }
1385 } 1385 }
1386 } 1386 }
1387 1387
1388 /**
1389 * Remove the speculative part of all types that we know of
1390 */
1391 void PhaseIterGVN::remove_speculative_types() {
1392 assert(UseTypeSpeculation, "speculation is off");
1393 for (uint i = 0; i < _types.Size(); i++) {
1394 const Type* t = _types.fast_lookup(i);
1395 if (t != NULL && t->isa_oopptr()) {
1396 const TypeOopPtr* to = t->is_oopptr();
1397 _types.map(i, to->remove_speculative());
1398 }
1399 }
1400 }
1401
1388 //============================================================================= 1402 //=============================================================================
1389 #ifndef PRODUCT 1403 #ifndef PRODUCT
1390 uint PhaseCCP::_total_invokes = 0; 1404 uint PhaseCCP::_total_invokes = 0;
1391 uint PhaseCCP::_total_constants = 0; 1405 uint PhaseCCP::_total_constants = 0;
1392 #endif 1406 #endif