JDK-8200735 : Move CMS specific code from binaryTreeDictionary and freeList to CMS files
Type:Enhancement
Component:hotspot
Sub-Component:gc
Priority:P4
Status:Resolved
Resolution:Fixed
Submitted:2018-04-04
Updated:2018-04-24
Resolved:2018-04-06
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
The BinaryTreeDictionary and FreeList used to be classes only used by CMS, and therefore contained CMS specific code. These classes were later used by the Metaspace and moved to the memory/ directory. The CMS specific code was then guarded with numerous INCLUDE_ALL_GCS. This patch moves the CMS code to compactibleFreeListSpace.*pp, where it's used.
To make it possible for the code in compactibleFreeListSpace.cpp file to use the code in binaryTreeDictionary.cpp and freeList.cpp I removed the explicit template instantiation and changed these two files into two .inline.hpp files.
This patch helps minimizing the number of places we use INCLUDE_ALL_GCS in non-GC code, and is a prerequisite for:
https://bugs.openjdk.java.net/browse/JDK-8200729 - Conditional compilation of GCs