Mercurial > hg > truffle
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 |