Mercurial > hg > truffle
comparison src/share/vm/oops/instanceRefKlass.cpp @ 3377:2aa9ddbb9e60
7041789: 30% perf regression with c2/arm following 7017732
Summary: Implement a more accurate is_scavengable()
Reviewed-by: stefank, jcoomes, ysr
author | jmasa |
---|---|
date | Tue, 03 May 2011 10:30:34 -0700 |
parents | e5383553fd4e |
children | eca1193ca245 |
comparison
equal
deleted
inserted
replaced
3373:688202ef6306 | 3377:2aa9ddbb9e60 |
---|---|
395 if (Universe::heap()->kind() == CollectedHeap::GenCollectedHeap) | 395 if (Universe::heap()->kind() == CollectedHeap::GenCollectedHeap) |
396 gch = GenCollectedHeap::heap(); | 396 gch = GenCollectedHeap::heap(); |
397 | 397 |
398 if (referent != NULL) { | 398 if (referent != NULL) { |
399 guarantee(referent->is_oop(), "referent field heap failed"); | 399 guarantee(referent->is_oop(), "referent field heap failed"); |
400 if (gch != NULL && !gch->is_in_youngest(obj)) { | 400 if (gch != NULL && !gch->is_in_young(obj)) { |
401 // We do a specific remembered set check here since the referent | 401 // We do a specific remembered set check here since the referent |
402 // field is not part of the oop mask and therefore skipped by the | 402 // field is not part of the oop mask and therefore skipped by the |
403 // regular verify code. | 403 // regular verify code. |
404 if (UseCompressedOops) { | 404 if (UseCompressedOops) { |
405 narrowOop* referent_addr = (narrowOop*)java_lang_ref_Reference::referent_addr(obj); | 405 narrowOop* referent_addr = (narrowOop*)java_lang_ref_Reference::referent_addr(obj); |
413 // Verify next field | 413 // Verify next field |
414 oop next = java_lang_ref_Reference::next(obj); | 414 oop next = java_lang_ref_Reference::next(obj); |
415 if (next != NULL) { | 415 if (next != NULL) { |
416 guarantee(next->is_oop(), "next field verify failed"); | 416 guarantee(next->is_oop(), "next field verify failed"); |
417 guarantee(next->is_instanceRef(), "next field verify failed"); | 417 guarantee(next->is_instanceRef(), "next field verify failed"); |
418 if (gch != NULL && !gch->is_in_youngest(obj)) { | 418 if (gch != NULL && !gch->is_in_young(obj)) { |
419 // We do a specific remembered set check here since the next field is | 419 // We do a specific remembered set check here since the next field is |
420 // not part of the oop mask and therefore skipped by the regular | 420 // not part of the oop mask and therefore skipped by the regular |
421 // verify code. | 421 // verify code. |
422 if (UseCompressedOops) { | 422 if (UseCompressedOops) { |
423 narrowOop* next_addr = (narrowOop*)java_lang_ref_Reference::next_addr(obj); | 423 narrowOop* next_addr = (narrowOop*)java_lang_ref_Reference::next_addr(obj); |