Mercurial > hg > truffle
comparison src/share/vm/ci/bcEscapeAnalyzer.cpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | 7f813940ac35 |
children | bb33c6fdcf0d |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
1300 // does not returns an object (_return_allocated is set in initialize()). | 1300 // does not returns an object (_return_allocated is set in initialize()). |
1301 if (_arg_local.Size() == 0 && !_return_allocated) { | 1301 if (_arg_local.Size() == 0 && !_return_allocated) { |
1302 // Clear all info since method's bytecode was not analysed and | 1302 // Clear all info since method's bytecode was not analysed and |
1303 // set pessimistic escape information. | 1303 // set pessimistic escape information. |
1304 clear_escape_info(); | 1304 clear_escape_info(); |
1305 methodData()->set_eflag(methodDataOopDesc::allocated_escapes); | 1305 methodData()->set_eflag(MethodData::allocated_escapes); |
1306 methodData()->set_eflag(methodDataOopDesc::unknown_modified); | 1306 methodData()->set_eflag(MethodData::unknown_modified); |
1307 methodData()->set_eflag(methodDataOopDesc::estimated); | 1307 methodData()->set_eflag(MethodData::estimated); |
1308 return; | 1308 return; |
1309 } | 1309 } |
1310 | 1310 |
1311 if (iid != vmIntrinsics::_none) | 1311 if (iid != vmIntrinsics::_none) |
1312 success = compute_escape_for_intrinsic(iid); | 1312 success = compute_escape_for_intrinsic(iid); |
1330 methodData()->set_arg_returned(i); | 1330 methodData()->set_arg_returned(i); |
1331 } | 1331 } |
1332 methodData()->set_arg_modified(i, _arg_modified[i]); | 1332 methodData()->set_arg_modified(i, _arg_modified[i]); |
1333 } | 1333 } |
1334 if (_return_local) { | 1334 if (_return_local) { |
1335 methodData()->set_eflag(methodDataOopDesc::return_local); | 1335 methodData()->set_eflag(MethodData::return_local); |
1336 } | 1336 } |
1337 if (_return_allocated) { | 1337 if (_return_allocated) { |
1338 methodData()->set_eflag(methodDataOopDesc::return_allocated); | 1338 methodData()->set_eflag(MethodData::return_allocated); |
1339 } | 1339 } |
1340 if (_allocated_escapes) { | 1340 if (_allocated_escapes) { |
1341 methodData()->set_eflag(methodDataOopDesc::allocated_escapes); | 1341 methodData()->set_eflag(MethodData::allocated_escapes); |
1342 } | 1342 } |
1343 if (_unknown_modified) { | 1343 if (_unknown_modified) { |
1344 methodData()->set_eflag(methodDataOopDesc::unknown_modified); | 1344 methodData()->set_eflag(MethodData::unknown_modified); |
1345 } | 1345 } |
1346 methodData()->set_eflag(methodDataOopDesc::estimated); | 1346 methodData()->set_eflag(MethodData::estimated); |
1347 } | 1347 } |
1348 } | 1348 } |
1349 | 1349 |
1350 void BCEscapeAnalyzer::read_escape_info() { | 1350 void BCEscapeAnalyzer::read_escape_info() { |
1351 assert(methodData()->has_escape_info(), "no escape info available"); | 1351 assert(methodData()->has_escape_info(), "no escape info available"); |
1358 _arg_stack.set(i); | 1358 _arg_stack.set(i); |
1359 if (methodData()->is_arg_returned(i)) | 1359 if (methodData()->is_arg_returned(i)) |
1360 _arg_returned.set(i); | 1360 _arg_returned.set(i); |
1361 _arg_modified[i] = methodData()->arg_modified(i); | 1361 _arg_modified[i] = methodData()->arg_modified(i); |
1362 } | 1362 } |
1363 _return_local = methodData()->eflag_set(methodDataOopDesc::return_local); | 1363 _return_local = methodData()->eflag_set(MethodData::return_local); |
1364 _return_allocated = methodData()->eflag_set(methodDataOopDesc::return_allocated); | 1364 _return_allocated = methodData()->eflag_set(MethodData::return_allocated); |
1365 _allocated_escapes = methodData()->eflag_set(methodDataOopDesc::allocated_escapes); | 1365 _allocated_escapes = methodData()->eflag_set(MethodData::allocated_escapes); |
1366 _unknown_modified = methodData()->eflag_set(methodDataOopDesc::unknown_modified); | 1366 _unknown_modified = methodData()->eflag_set(MethodData::unknown_modified); |
1367 | 1367 |
1368 } | 1368 } |
1369 | 1369 |
1370 #ifndef PRODUCT | 1370 #ifndef PRODUCT |
1371 void BCEscapeAnalyzer::dump() { | 1371 void BCEscapeAnalyzer::dump() { |