6420645: Create a vm that uses compressed oops for up to 32gb heapsizes

Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv

Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
This commit is contained in:
Coleen Phillimore 2008-04-13 17:43:42 -04:00
parent 680ecf1611
commit 4a831d45f0
273 changed files with 6585 additions and 2993 deletions

View file

@ -34,15 +34,17 @@ class PSScavengeRootsClosure: public OopClosure {
private:
PSPromotionManager* _promotion_manager;
public:
PSScavengeRootsClosure(PSPromotionManager* pm) : _promotion_manager(pm) { }
virtual void do_oop(oop* p) {
if (PSScavenge::should_scavenge(*p)) {
protected:
template <class T> void do_oop_work(T *p) {
if (PSScavenge::should_scavenge(p)) {
// We never card mark roots, maybe call a func without test?
PSScavenge::copy_and_push_safe_barrier(_promotion_manager, p);
}
}
public:
PSScavengeRootsClosure(PSPromotionManager* pm) : _promotion_manager(pm) { }
void do_oop(oop* p) { PSScavengeRootsClosure::do_oop_work(p); }
void do_oop(narrowOop* p) { PSScavengeRootsClosure::do_oop_work(p); }
};
void ScavengeRootsTask::do_it(GCTaskManager* manager, uint which) {
@ -135,7 +137,7 @@ void StealTask::do_it(GCTaskManager* manager, uint which) {
int random_seed = 17;
if (pm->depth_first()) {
while(true) {
oop* p;
StarTask p;
if (PSPromotionManager::steal_depth(which, &random_seed, p)) {
#if PS_PM_STATS
pm->increment_steals(p);
@ -164,8 +166,7 @@ void StealTask::do_it(GCTaskManager* manager, uint which) {
}
}
}
guarantee(pm->stacks_empty(),
"stacks should be empty at this point");
guarantee(pm->stacks_empty(), "stacks should be empty at this point");
}
//