1505 1506 1507 // NOTE: set_use_compressed_klass_ptrs() must be called after calling 1508 // set_use_compressed_oops(). 1509 void Arguments::set_use_compressed_klass_ptrs() { 1510 #ifndef ZERO 1511 #ifdef _LP64 1512 // UseCompressedOops must be on for UseCompressedClassPointers to be on. 1513 if (!UseCompressedOops) { 1514 if (UseCompressedClassPointers) { 1515 warning("UseCompressedClassPointers requires UseCompressedOops"); 1516 } 1517 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1518 } else { 1519 // Turn on UseCompressedClassPointers too 1520 if (FLAG_IS_DEFAULT(UseCompressedClassPointers)) { 1521 FLAG_SET_ERGO(bool, UseCompressedClassPointers, true); 1522 } 1523 // Check the CompressedClassSpaceSize to make sure we use compressed klass ptrs. 1524 if (UseCompressedClassPointers) { 1525 if (CompressedClassSpaceSize > KlassEncodingMetaspaceMax) { 1526 warning("CompressedClassSpaceSize is too large for UseCompressedClassPointers"); 1527 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1528 } 1529 } 1530 } 1531 #endif // _LP64 1532 #endif // !ZERO 1533 } 1534 1535 void Arguments::set_conservative_max_heap_alignment() { 1536 // The conservative maximum required alignment for the heap is the maximum of 1537 // the alignments imposed by several sources: any requirements from the heap 1538 // itself, the collector policy and the maximum page size we may run the VM 1539 // with. 1540 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1541 #if INCLUDE_ALL_GCS 1542 if (UseParallelGC) { 1543 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1544 } else if (UseG1GC) { | 1505 1506 1507 // NOTE: set_use_compressed_klass_ptrs() must be called after calling 1508 // set_use_compressed_oops(). 1509 void Arguments::set_use_compressed_klass_ptrs() { 1510 #ifndef ZERO 1511 #ifdef _LP64 1512 // UseCompressedOops must be on for UseCompressedClassPointers to be on. 1513 if (!UseCompressedOops) { 1514 if (UseCompressedClassPointers) { 1515 warning("UseCompressedClassPointers requires UseCompressedOops"); 1516 } 1517 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1518 } else { 1519 // Turn on UseCompressedClassPointers too 1520 if (FLAG_IS_DEFAULT(UseCompressedClassPointers)) { 1521 FLAG_SET_ERGO(bool, UseCompressedClassPointers, true); 1522 } 1523 // Check the CompressedClassSpaceSize to make sure we use compressed klass ptrs. 1524 if (UseCompressedClassPointers) { 1525 if ((InitialBootClassLoaderMetaspaceSize + CompressedClassSpaceSize) 1526 >= MaxMetaspaceSize) { 1527 if (InitialBootClassLoaderMetaspaceSize >= MaxMetaspaceSize) { 1528 vm_exit_during_initialization( 1529 "InitialBootClassLoaderMetaspaceSize should be " 1530 "less than MaxMetaspaceSize."); 1531 } else { 1532 FLAG_SET_ERGO(size_t, CompressedClassSpaceSize, 1533 MaxMetaspaceSize - InitialBootClassLoaderMetaspaceSize); 1534 } 1535 } 1536 1537 if (CompressedClassSpaceSize > KlassEncodingMetaspaceMax) { 1538 warning("CompressedClassSpaceSize is too large for UseCompressedClassPointers"); 1539 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1540 } 1541 } 1542 } 1543 #endif // _LP64 1544 #endif // !ZERO 1545 } 1546 1547 void Arguments::set_conservative_max_heap_alignment() { 1548 // The conservative maximum required alignment for the heap is the maximum of 1549 // the alignments imposed by several sources: any requirements from the heap 1550 // itself, the collector policy and the maximum page size we may run the VM 1551 // with. 1552 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1553 #if INCLUDE_ALL_GCS 1554 if (UseParallelGC) { 1555 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1556 } else if (UseG1GC) { |