< prev index next >
src/hotspot/share/gc/g1/g1Allocator.hpp
Print this page
rev 57551 : imported patch 8214277-merge-open-closed-archive-map
*** 1,7 ****
/*
! * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 201,216 ****
uint node_index);
void undo_allocation(G1HeapRegionAttr dest, HeapWord* obj, size_t word_sz, uint node_index);
};
! // G1ArchiveRegionMap is a boolean array used to mark G1 regions as
// archive regions. This allows a quick check for whether an object
// should not be marked because it is in an archive region.
! class G1ArchiveRegionMap : public G1BiasedMappedArray<bool> {
protected:
! bool default_value() const { return false; }
};
// G1ArchiveAllocator is used to allocate memory in archive
// regions. Such regions are not scavenged nor compacted by GC.
// There are two types of archive regions, which are
--- 201,221 ----
uint node_index);
void undo_allocation(G1HeapRegionAttr dest, HeapWord* obj, size_t word_sz, uint node_index);
};
! // G1ArchiveRegionMap is an array used to mark G1 regions as
// archive regions. This allows a quick check for whether an object
// should not be marked because it is in an archive region.
! class G1ArchiveRegionMap : public G1BiasedMappedArray<uint8_t> {
! public:
! static const uint8_t NoArchive = 0;
! static const uint8_t OpenArchive = 1;
! static const uint8_t ClosedArchive = 2;
!
protected:
! uint8_t default_value() const { return NoArchive; }
};
// G1ArchiveAllocator is used to allocate memory in archive
// regions. Such regions are not scavenged nor compacted by GC.
// There are two types of archive regions, which are
*** 299,309 ****
// Check if the object is either in closed archive or open archive
static inline bool is_archived_object(oop object);
private:
static bool _archive_check_enabled;
! static G1ArchiveRegionMap _closed_archive_region_map;
static G1ArchiveRegionMap _open_archive_region_map;
// Check if an object is in a closed archive region using the _closed_archive_region_map.
static inline bool in_closed_archive_range(oop object);
// Check if an object is in open archive region using the _open_archive_region_map.
--- 304,314 ----
// Check if the object is either in closed archive or open archive
static inline bool is_archived_object(oop object);
private:
static bool _archive_check_enabled;
! static G1ArchiveRegionMap _archive_region_map;
static G1ArchiveRegionMap _open_archive_region_map;
// Check if an object is in a closed archive region using the _closed_archive_region_map.
static inline bool in_closed_archive_range(oop object);
// Check if an object is in open archive region using the _open_archive_region_map.
< prev index next >