< 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 >