Mercurial > hg > truffle
diff src/share/vm/oops/methodDataKlass.cpp @ 4439:f7251c729b31
profiling info first try
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Thu, 19 Jan 2012 16:29:35 -0800 |
parents | e5383553fd4e |
children | 59d3d0b80975 |
line wrap: on
line diff
--- a/src/share/vm/oops/methodDataKlass.cpp Tue Jan 17 20:35:49 2012 +0100 +++ b/src/share/vm/oops/methodDataKlass.cpp Thu Jan 19 16:29:35 2012 -0800 @@ -84,6 +84,7 @@ obj->follow_header(); MarkSweep::mark_and_push(m->adr_method()); + MarkSweep::mark_and_push(m->adr_graal_mirror()); ResourceMark rm; for (ProfileData* data = m->first_data(); m->is_valid(data); @@ -100,6 +101,7 @@ obj->follow_header(cm); PSParallelCompact::mark_and_push(cm, m->adr_method()); + PSParallelCompact::mark_and_push(cm, m->adr_graal_mirror()); ResourceMark rm; for (ProfileData* data = m->first_data(); m->is_valid(data); @@ -119,6 +121,7 @@ obj->oop_iterate_header(blk); blk->do_oop(m->adr_method()); + blk->do_oop(m->adr_graal_mirror()); ResourceMark rm; for (ProfileData* data = m->first_data(); m->is_valid(data); @@ -140,6 +143,11 @@ if (mr.contains(adr)) { blk->do_oop(m->adr_method()); } + adr = m->adr_graal_mirror(); + if(mr.contains(adr)) { + blk->do_oop(m->adr_graal_mirror()); + } + ResourceMark rm; for (ProfileData* data = m->first_data(); m->is_valid(data); @@ -158,6 +166,7 @@ obj->adjust_header(); MarkSweep::adjust_pointer(m->adr_method()); + MarkSweep::adjust_pointer(m->adr_graal_mirror()); ResourceMark rm; ProfileData* data; for (data = m->first_data(); m->is_valid(data); data = m->next_data(data)) { @@ -173,6 +182,11 @@ methodDataOop m = methodDataOop(obj); // This should never point into the young gen. assert(!PSScavenge::should_scavenge(m->adr_method()), "Sanity"); + + oop* adr = m->adr_graal_mirror(); + if(PSScavenge::should_scavenge(adr)) { + pm->claim_or_forward_depth(adr); + } } int methodDataKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { @@ -180,6 +194,7 @@ methodDataOop m = methodDataOop(obj); PSParallelCompact::adjust_pointer(m->adr_method()); + PSParallelCompact::adjust_pointer(m->adr_graal_mirror()); ResourceMark rm; ProfileData* data;