mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
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:
parent
680ecf1611
commit
4a831d45f0
273 changed files with 6585 additions and 2993 deletions
|
@ -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");
|
||||
}
|
||||
|
||||
//
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue