8236625: Remove writeable macro from JVM flags declaration

Reviewed-by: coleenp, hseigel, gziemski
This commit is contained in:
Ioi Lam 2020-01-07 18:56:18 -08:00
parent 7d8519fffe
commit 584db9818a
35 changed files with 122 additions and 549 deletions

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019, Red Hat Inc. All rights reserved. * Copyright (c) 2015, 2019, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -81,8 +81,7 @@ define_pd_global(intx, InlineSmallCode, 1000);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, NearCpool, true, \ product(bool, NearCpool, true, \
"constant pool is close to instructions") \ "constant pool is close to instructions") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -76,6 +76,5 @@ define_pd_global(intx, InitArrayShortSize, 8*BytesPerLong);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)
writeable)
#endif // CPU_ARM_GLOBALS_ARM_HPP #endif // CPU_ARM_GLOBALS_ARM_HPP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2018 SAP SE. All rights reserved. * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -81,8 +81,7 @@ define_pd_global(intx, InitArrayShortSize, 9*BytesPerLong);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(uintx, PowerArchitecturePPC64, 0, \ product(uintx, PowerArchitecturePPC64, 0, \
"CPU Version: x for PowerX. Currently recognizes Power5 to " \ "CPU Version: x for PowerX. Currently recognizes Power5 to " \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2018 SAP SE. All rights reserved. * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -82,8 +82,7 @@ define_pd_global(intx, InitArrayShortSize, 1*BytesPerLong);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
/* Reoptimize code-sequences of calls at runtime, e.g. replace an */ \ /* Reoptimize code-sequences of calls at runtime, e.g. replace an */ \
/* indirect call by a direct call. */ \ /* indirect call by a direct call. */ \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -86,8 +86,7 @@ define_pd_global(intx, InitArrayShortSize, 8*BytesPerLong);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(intx, UseVIS, 99, \ product(intx, UseVIS, 99, \
"Highest supported VIS instructions set on SPARC") \ "Highest supported VIS instructions set on SPARC") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -95,8 +95,7 @@ define_pd_global(intx, InitArrayShortSize, 8*BytesPerLong);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
develop(bool, IEEEPrecision, true, \ develop(bool, IEEEPrecision, true, \
"Enables IEEE precision (for INTEL only)") \ "Enables IEEE precision (for INTEL only)") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -79,8 +79,7 @@ define_pd_global(bool, CompactStrings, false);
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, UseFastEmptyMethods, true, \ product(bool, UseFastEmptyMethods, true, \
"Use fast method entry code for empty methods") \ "Use fast method entry code for empty methods") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2018 SAP SE. All rights reserved. * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -38,8 +38,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
/* Whether to allow the VM to run if EXTSHM=ON. EXTSHM is an environment */ \ /* Whether to allow the VM to run if EXTSHM=ON. EXTSHM is an environment */ \
/* variable used on AIX to activate certain hacks which allow more shm segments */\ /* variable used on AIX to activate certain hacks which allow more shm segments */\

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +36,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, UseOprofile, false, \ product(bool, UseOprofile, false, \
"enable support for Oprofile profiler") \ "enable support for Oprofile profiler") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +36,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, UseOprofile, false, \ product(bool, UseOprofile, false, \
"enable support for Oprofile profiler") \ "enable support for Oprofile profiler") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +36,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, UseExtendedFileIO, true, \ product(bool, UseExtendedFileIO, true, \
"Enable workaround for limitations of stdio FILE structure") "Enable workaround for limitations of stdio FILE structure")

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +36,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)
writeable)
// //

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -42,8 +42,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
/* Printing */ \ /* Printing */ \
notproduct(bool, PrintC1Statistics, false, \ notproduct(bool, PrintC1Statistics, false, \

View file

@ -1,4 +1,5 @@
/* /*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved. * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -43,8 +44,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
experimental(size_t, EpsilonPrintHeapSteps, 20, \ experimental(size_t, EpsilonPrintHeapSteps, 20, \
"Print heap occupancy stats with this number of steps. " \ "Print heap occupancy stats with this number of steps. " \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -43,8 +43,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
product(bool, G1UseAdaptiveIHOP, true, \ product(bool, G1UseAdaptiveIHOP, true, \
"Adaptively adjust the initiating heap occupancy from the " \ "Adaptively adjust the initiating heap occupancy from the " \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -37,8 +37,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
product(uintx, HeapMaximumCompactionInterval, 20, \ product(uintx, HeapMaximumCompactionInterval, 20, \
"How often should we maximally compact the heap (not allowing " \ "How often should we maximally compact the heap (not allowing " \
"any dead space)") \ "any dead space)") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -37,7 +37,6 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)
writeable)
#endif // SHARE_GC_SERIAL_SERIAL_GLOBALS_HPP #endif // SHARE_GC_SERIAL_SERIAL_GLOBALS_HPP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -58,8 +58,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
EPSILONGC_ONLY(GC_EPSILON_FLAGS( \ EPSILONGC_ONLY(GC_EPSILON_FLAGS( \
develop, \ develop, \
@ -74,8 +73,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
G1GC_ONLY(GC_G1_FLAGS( \ G1GC_ONLY(GC_G1_FLAGS( \
develop, \ develop, \
@ -90,8 +88,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
PARALLELGC_ONLY(GC_PARALLEL_FLAGS( \ PARALLELGC_ONLY(GC_PARALLEL_FLAGS( \
develop, \ develop, \
@ -106,8 +103,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
SERIALGC_ONLY(GC_SERIAL_FLAGS( \ SERIALGC_ONLY(GC_SERIAL_FLAGS( \
develop, \ develop, \
@ -122,8 +118,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
SHENANDOAHGC_ONLY(GC_SHENANDOAH_FLAGS( \ SHENANDOAHGC_ONLY(GC_SHENANDOAH_FLAGS( \
develop, \ develop, \
@ -138,8 +133,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
ZGC_ONLY(GC_Z_FLAGS( \ ZGC_ONLY(GC_Z_FLAGS( \
develop, \ develop, \
@ -154,8 +148,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
/* gc */ \ /* gc */ \
\ \

View file

@ -1,4 +1,5 @@
/* /*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2016, 2019, Red Hat, Inc. All rights reserved. * Copyright (c) 2016, 2019, Red Hat, Inc. All rights reserved.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +37,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
experimental(size_t, ShenandoahHeapRegionSize, 0, \ experimental(size_t, ShenandoahHeapRegionSize, 0, \
"Size of the Shenandoah regions. Set to zero to detect " \ "Size of the Shenandoah regions. Set to zero to detect " \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -36,8 +36,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
experimental(ccstr, ZPath, NULL, \ experimental(ccstr, ZPath, NULL, \
"Filesystem path for Java heap backing storage " \ "Filesystem path for Java heap backing storage " \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -37,7 +37,7 @@ bool JVMCIGlobals::check_jvmci_flags_are_consistent() {
#ifndef PRODUCT #ifndef PRODUCT
#define APPLY_JVMCI_FLAGS(params3, params4) \ #define APPLY_JVMCI_FLAGS(params3, params4) \
JVMCI_FLAGS(params4, params3, params4, params3, params4, params3, params4, params4, IGNORE_RANGE, IGNORE_CONSTRAINT, IGNORE_WRITEABLE) JVMCI_FLAGS(params4, params3, params4, params3, params4, params3, params4, params4, IGNORE_RANGE, IGNORE_CONSTRAINT)
#define JVMCI_DECLARE_CHECK4(type, name, value, doc) bool name##checked = false; #define JVMCI_DECLARE_CHECK4(type, name, value, doc) bool name##checked = false;
#define JVMCI_DECLARE_CHECK3(type, name, doc) bool name##checked = false; #define JVMCI_DECLARE_CHECK3(type, name, doc) bool name##checked = false;
#define JVMCI_FLAG_CHECKED(name) name##checked = true; #define JVMCI_FLAG_CHECKED(name) name##checked = true;

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -42,8 +42,7 @@ class fileStream;
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
experimental(bool, EnableJVMCI, false, \ experimental(bool, EnableJVMCI, false, \
"Enable JVMCI") \ "Enable JVMCI") \

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -44,8 +44,7 @@
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
diagnostic(bool, StressLCM, false, \ diagnostic(bool, StressLCM, false, \
"Randomize instruction scheduling in LCM") \ "Randomize instruction scheduling in LCM") \

View file

@ -42,7 +42,6 @@
#include "runtime/arguments.hpp" #include "runtime/arguments.hpp"
#include "runtime/flags/jvmFlag.hpp" #include "runtime/flags/jvmFlag.hpp"
#include "runtime/flags/jvmFlagConstraintList.hpp" #include "runtime/flags/jvmFlagConstraintList.hpp"
#include "runtime/flags/jvmFlagWriteableList.hpp"
#include "runtime/flags/jvmFlagRangeList.hpp" #include "runtime/flags/jvmFlagRangeList.hpp"
#include "runtime/globals_extension.hpp" #include "runtime/globals_extension.hpp"
#include "runtime/java.hpp" #include "runtime/java.hpp"
@ -3816,10 +3815,9 @@ bool Arguments::handle_deprecated_print_gc_flags() {
jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) { jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
assert(verify_special_jvm_flags(), "deprecated and obsolete flag table inconsistent"); assert(verify_special_jvm_flags(), "deprecated and obsolete flag table inconsistent");
// Initialize ranges, constraints and writeables // Initialize ranges and constraints
JVMFlagRangeList::init(); JVMFlagRangeList::init();
JVMFlagConstraintList::init(); JVMFlagConstraintList::init();
JVMFlagWriteableList::init();
// If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed.
const char* hotspotrc = ".hotspotrc"; const char* hotspotrc = ".hotspotrc";

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -28,7 +28,6 @@
#include "runtime/arguments.hpp" #include "runtime/arguments.hpp"
#include "runtime/flags/jvmFlag.hpp" #include "runtime/flags/jvmFlag.hpp"
#include "runtime/flags/jvmFlagConstraintList.hpp" #include "runtime/flags/jvmFlagConstraintList.hpp"
#include "runtime/flags/jvmFlagWriteableList.hpp"
#include "runtime/flags/jvmFlagRangeList.hpp" #include "runtime/flags/jvmFlagRangeList.hpp"
#include "runtime/globals_extension.hpp" #include "runtime/globals_extension.hpp"
#include "utilities/defaultStream.hpp" #include "utilities/defaultStream.hpp"
@ -92,165 +91,38 @@ static bool is_product_build() {
#endif #endif
} }
JVMFlag::Error JVMFlag::check_writable(bool changed) {
if (is_constant_in_binary()) {
fatal("flag is constant: %s", _name);
}
JVMFlag::Error error = JVMFlag::SUCCESS;
if (changed) {
JVMFlagWriteable* writeable = JVMFlagWriteableList::find(_name);
if (writeable) {
if (writeable->is_writeable() == false) {
switch (writeable->type())
{
case JVMFlagWriteable::Once:
error = JVMFlag::SET_ONLY_ONCE;
jio_fprintf(defaultStream::error_stream(), "Error: %s may not be set more than once\n", _name);
break;
case JVMFlagWriteable::CommandLineOnly:
error = JVMFlag::COMMAND_LINE_ONLY;
jio_fprintf(defaultStream::error_stream(), "Error: %s may be modified only from commad line\n", _name);
break;
default:
ShouldNotReachHere();
break;
}
}
writeable->mark_once();
}
}
return error;
}
bool JVMFlag::is_bool() const { bool JVMFlag::is_bool() const {
return strcmp(_type, "bool") == 0; return strcmp(_type, "bool") == 0;
} }
bool JVMFlag::get_bool() const {
return *((bool*) _addr);
}
JVMFlag::Error JVMFlag::set_bool(bool value) {
JVMFlag::Error error = check_writable(value!=get_bool());
if (error == JVMFlag::SUCCESS) {
*((bool*) _addr) = value;
}
return error;
}
bool JVMFlag::is_int() const { bool JVMFlag::is_int() const {
return strcmp(_type, "int") == 0; return strcmp(_type, "int") == 0;
} }
int JVMFlag::get_int() const {
return *((int*) _addr);
}
JVMFlag::Error JVMFlag::set_int(int value) {
JVMFlag::Error error = check_writable(value!=get_int());
if (error == JVMFlag::SUCCESS) {
*((int*) _addr) = value;
}
return error;
}
bool JVMFlag::is_uint() const { bool JVMFlag::is_uint() const {
return strcmp(_type, "uint") == 0; return strcmp(_type, "uint") == 0;
} }
uint JVMFlag::get_uint() const {
return *((uint*) _addr);
}
JVMFlag::Error JVMFlag::set_uint(uint value) {
JVMFlag::Error error = check_writable(value!=get_uint());
if (error == JVMFlag::SUCCESS) {
*((uint*) _addr) = value;
}
return error;
}
bool JVMFlag::is_intx() const { bool JVMFlag::is_intx() const {
return strcmp(_type, "intx") == 0; return strcmp(_type, "intx") == 0;
} }
intx JVMFlag::get_intx() const {
return *((intx*) _addr);
}
JVMFlag::Error JVMFlag::set_intx(intx value) {
JVMFlag::Error error = check_writable(value!=get_intx());
if (error == JVMFlag::SUCCESS) {
*((intx*) _addr) = value;
}
return error;
}
bool JVMFlag::is_uintx() const { bool JVMFlag::is_uintx() const {
return strcmp(_type, "uintx") == 0; return strcmp(_type, "uintx") == 0;
} }
uintx JVMFlag::get_uintx() const {
return *((uintx*) _addr);
}
JVMFlag::Error JVMFlag::set_uintx(uintx value) {
JVMFlag::Error error = check_writable(value!=get_uintx());
if (error == JVMFlag::SUCCESS) {
*((uintx*) _addr) = value;
}
return error;
}
bool JVMFlag::is_uint64_t() const { bool JVMFlag::is_uint64_t() const {
return strcmp(_type, "uint64_t") == 0; return strcmp(_type, "uint64_t") == 0;
} }
uint64_t JVMFlag::get_uint64_t() const {
return *((uint64_t*) _addr);
}
JVMFlag::Error JVMFlag::set_uint64_t(uint64_t value) {
JVMFlag::Error error = check_writable(value!=get_uint64_t());
if (error == JVMFlag::SUCCESS) {
*((uint64_t*) _addr) = value;
}
return error;
}
bool JVMFlag::is_size_t() const { bool JVMFlag::is_size_t() const {
return strcmp(_type, "size_t") == 0; return strcmp(_type, "size_t") == 0;
} }
size_t JVMFlag::get_size_t() const {
return *((size_t*) _addr);
}
JVMFlag::Error JVMFlag::set_size_t(size_t value) {
JVMFlag::Error error = check_writable(value!=get_size_t());
if (error == JVMFlag::SUCCESS) {
*((size_t*) _addr) = value;
}
return error;
}
bool JVMFlag::is_double() const { bool JVMFlag::is_double() const {
return strcmp(_type, "double") == 0; return strcmp(_type, "double") == 0;
} }
double JVMFlag::get_double() const {
return *((double*) _addr);
}
JVMFlag::Error JVMFlag::set_double(double value) {
JVMFlag::Error error = check_writable(value!=get_double());
if (error == JVMFlag::SUCCESS) {
*((double*) _addr) = value;
}
return error;
}
bool JVMFlag::is_ccstr() const { bool JVMFlag::is_ccstr() const {
return strcmp(_type, "ccstr") == 0 || strcmp(_type, "ccstrlist") == 0; return strcmp(_type, "ccstr") == 0 || strcmp(_type, "ccstrlist") == 0;
} }
@ -259,19 +131,6 @@ bool JVMFlag::ccstr_accumulates() const {
return strcmp(_type, "ccstrlist") == 0; return strcmp(_type, "ccstrlist") == 0;
} }
ccstr JVMFlag::get_ccstr() const {
return *((ccstr*) _addr);
}
JVMFlag::Error JVMFlag::set_ccstr(ccstr value) {
JVMFlag::Error error = check_writable(value!=get_ccstr());
if (error == JVMFlag::SUCCESS) {
*((ccstr*) _addr) = value;
}
return error;
}
JVMFlag::Flags JVMFlag::get_origin() { JVMFlag::Flags JVMFlag::get_origin() {
return Flags(_flags & VALUE_ORIGIN_MASK); return Flags(_flags & VALUE_ORIGIN_MASK);
} }
@ -835,8 +694,7 @@ static JVMFlag flagTable[] = {
RUNTIME_PRODUCT_RW_FLAG_STRUCT, \ RUNTIME_PRODUCT_RW_FLAG_STRUCT, \
RUNTIME_LP64_PRODUCT_FLAG_STRUCT, \ RUNTIME_LP64_PRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \ RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, \
RUNTIME_PD_DEVELOP_FLAG_STRUCT, \ RUNTIME_PD_DEVELOP_FLAG_STRUCT, \
@ -846,8 +704,7 @@ static JVMFlag flagTable[] = {
RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \ RUNTIME_PD_DIAGNOSTIC_FLAG_STRUCT, \
RUNTIME_NOTPRODUCT_FLAG_STRUCT, \ RUNTIME_NOTPRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#if INCLUDE_JVMCI #if INCLUDE_JVMCI
JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_STRUCT, \ JVMCI_FLAGS(JVMCI_DEVELOP_FLAG_STRUCT, \
JVMCI_PD_DEVELOP_FLAG_STRUCT, \ JVMCI_PD_DEVELOP_FLAG_STRUCT, \
@ -858,8 +715,7 @@ static JVMFlag flagTable[] = {
JVMCI_EXPERIMENTAL_FLAG_STRUCT, \ JVMCI_EXPERIMENTAL_FLAG_STRUCT, \
JVMCI_NOTPRODUCT_FLAG_STRUCT, \ JVMCI_NOTPRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#endif // INCLUDE_JVMCI #endif // INCLUDE_JVMCI
#ifdef COMPILER1 #ifdef COMPILER1
C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \ C1_FLAGS(C1_DEVELOP_FLAG_STRUCT, \
@ -870,8 +726,7 @@ static JVMFlag flagTable[] = {
C1_PD_DIAGNOSTIC_FLAG_STRUCT, \ C1_PD_DIAGNOSTIC_FLAG_STRUCT, \
C1_NOTPRODUCT_FLAG_STRUCT, \ C1_NOTPRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#endif // COMPILER1 #endif // COMPILER1
#ifdef COMPILER2 #ifdef COMPILER2
C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \ C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, \
@ -883,8 +738,7 @@ static JVMFlag flagTable[] = {
C2_EXPERIMENTAL_FLAG_STRUCT, \ C2_EXPERIMENTAL_FLAG_STRUCT, \
C2_NOTPRODUCT_FLAG_STRUCT, \ C2_NOTPRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#endif // COMPILER2 #endif // COMPILER2
ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, \ ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, \
ARCH_PRODUCT_FLAG_STRUCT, \ ARCH_PRODUCT_FLAG_STRUCT, \
@ -892,8 +746,7 @@ static JVMFlag flagTable[] = {
ARCH_EXPERIMENTAL_FLAG_STRUCT, \ ARCH_EXPERIMENTAL_FLAG_STRUCT, \
ARCH_NOTPRODUCT_FLAG_STRUCT, \ ARCH_NOTPRODUCT_FLAG_STRUCT, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
{0, NULL, NULL} {0, NULL, NULL}
}; };
@ -1025,10 +878,10 @@ JVMFlag::Error JVMFlag::boolAtPut(JVMFlag* flag, bool* value, JVMFlag::Flags ori
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
bool old_value = flag->get_bool(); bool old_value = flag->get_bool();
trace_flag_changed<EventBooleanFlagChanged, bool>(flag, old_value, *value, origin); trace_flag_changed<EventBooleanFlagChanged, bool>(flag, old_value, *value, origin);
check = flag->set_bool(*value); flag->set_bool(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::boolAtPut(JVMFlagsEnum flag, bool value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::boolAtPut(JVMFlagsEnum flag, bool value, JVMFlag::Flags origin) {
@ -1066,10 +919,10 @@ JVMFlag::Error JVMFlag::intAtPut(JVMFlag* flag, int* value, JVMFlag::Flags origi
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
int old_value = flag->get_int(); int old_value = flag->get_int();
trace_flag_changed<EventIntFlagChanged, s4>(flag, old_value, *value, origin); trace_flag_changed<EventIntFlagChanged, s4>(flag, old_value, *value, origin);
check = flag->set_int(*value); flag->set_int(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::intAtPut(JVMFlagsEnum flag, int value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::intAtPut(JVMFlagsEnum flag, int value, JVMFlag::Flags origin) {
@ -1107,10 +960,10 @@ JVMFlag::Error JVMFlag::uintAtPut(JVMFlag* flag, uint* value, JVMFlag::Flags ori
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
uint old_value = flag->get_uint(); uint old_value = flag->get_uint();
trace_flag_changed<EventUnsignedIntFlagChanged, u4>(flag, old_value, *value, origin); trace_flag_changed<EventUnsignedIntFlagChanged, u4>(flag, old_value, *value, origin);
check = flag->set_uint(*value); flag->set_uint(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::uintAtPut(JVMFlagsEnum flag, uint value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::uintAtPut(JVMFlagsEnum flag, uint value, JVMFlag::Flags origin) {
@ -1148,10 +1001,10 @@ JVMFlag::Error JVMFlag::intxAtPut(JVMFlag* flag, intx* value, JVMFlag::Flags ori
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
intx old_value = flag->get_intx(); intx old_value = flag->get_intx();
trace_flag_changed<EventLongFlagChanged, intx>(flag, old_value, *value, origin); trace_flag_changed<EventLongFlagChanged, intx>(flag, old_value, *value, origin);
check = flag->set_intx(*value); flag->set_intx(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::intxAtPut(JVMFlagsEnum flag, intx value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::intxAtPut(JVMFlagsEnum flag, intx value, JVMFlag::Flags origin) {
@ -1189,10 +1042,10 @@ JVMFlag::Error JVMFlag::uintxAtPut(JVMFlag* flag, uintx* value, JVMFlag::Flags o
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
uintx old_value = flag->get_uintx(); uintx old_value = flag->get_uintx();
trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin); trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin);
check = flag->set_uintx(*value); flag->set_uintx(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::uintxAtPut(JVMFlagsEnum flag, uintx value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::uintxAtPut(JVMFlagsEnum flag, uintx value, JVMFlag::Flags origin) {
@ -1230,10 +1083,10 @@ JVMFlag::Error JVMFlag::uint64_tAtPut(JVMFlag* flag, uint64_t* value, JVMFlag::F
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
uint64_t old_value = flag->get_uint64_t(); uint64_t old_value = flag->get_uint64_t();
trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin); trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin);
check = flag->set_uint64_t(*value); flag->set_uint64_t(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::uint64_tAtPut(JVMFlagsEnum flag, uint64_t value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::uint64_tAtPut(JVMFlagsEnum flag, uint64_t value, JVMFlag::Flags origin) {
@ -1272,10 +1125,10 @@ JVMFlag::Error JVMFlag::size_tAtPut(JVMFlag* flag, size_t* value, JVMFlag::Flags
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
size_t old_value = flag->get_size_t(); size_t old_value = flag->get_size_t();
trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin); trace_flag_changed<EventUnsignedLongFlagChanged, u8>(flag, old_value, *value, origin);
check = flag->set_size_t(*value); flag->set_size_t(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::size_tAtPut(JVMFlagsEnum flag, size_t value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::size_tAtPut(JVMFlagsEnum flag, size_t value, JVMFlag::Flags origin) {
@ -1313,10 +1166,10 @@ JVMFlag::Error JVMFlag::doubleAtPut(JVMFlag* flag, double* value, JVMFlag::Flags
if (check != JVMFlag::SUCCESS) return check; if (check != JVMFlag::SUCCESS) return check;
double old_value = flag->get_double(); double old_value = flag->get_double();
trace_flag_changed<EventDoubleFlagChanged, double>(flag, old_value, *value, origin); trace_flag_changed<EventDoubleFlagChanged, double>(flag, old_value, *value, origin);
check = flag->set_double(*value); flag->set_double(*value);
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::doubleAtPut(JVMFlagsEnum flag, double value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::doubleAtPut(JVMFlagsEnum flag, double value, JVMFlag::Flags origin) {
@ -1341,14 +1194,14 @@ JVMFlag::Error JVMFlag::ccstrAtPut(JVMFlag* flag, ccstr* value, JVMFlag::Flags o
if (*value != NULL) { if (*value != NULL) {
new_value = os::strdup_check_oom(*value); new_value = os::strdup_check_oom(*value);
} }
JVMFlag::Error check = flag->set_ccstr(new_value); flag->set_ccstr(new_value);
if (flag->is_default() && old_value != NULL) { if (flag->is_default() && old_value != NULL) {
// Prior value is NOT heap allocated, but was a literal constant. // Prior value is NOT heap allocated, but was a literal constant.
old_value = os::strdup_check_oom(old_value); old_value = os::strdup_check_oom(old_value);
} }
*value = old_value; *value = old_value;
flag->set_origin(origin); flag->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
JVMFlag::Error JVMFlagEx::ccstrAtPut(JVMFlagsEnum flag, ccstr value, JVMFlag::Flags origin) { JVMFlag::Error JVMFlagEx::ccstrAtPut(JVMFlagsEnum flag, ccstr value, JVMFlag::Flags origin) {
@ -1357,13 +1210,13 @@ JVMFlag::Error JVMFlagEx::ccstrAtPut(JVMFlagsEnum flag, ccstr value, JVMFlag::Fl
ccstr old_value = faddr->get_ccstr(); ccstr old_value = faddr->get_ccstr();
trace_flag_changed<EventStringFlagChanged, const char*>(faddr, old_value, value, origin); trace_flag_changed<EventStringFlagChanged, const char*>(faddr, old_value, value, origin);
char* new_value = os::strdup_check_oom(value); char* new_value = os::strdup_check_oom(value);
JVMFlag::Error check = faddr->set_ccstr(new_value); faddr->set_ccstr(new_value);
if (!faddr->is_default() && old_value != NULL) { if (!faddr->is_default() && old_value != NULL) {
// Prior value is heap allocated so free it. // Prior value is heap allocated so free it.
FREE_C_HEAP_ARRAY(char, old_value); FREE_C_HEAP_ARRAY(char, old_value);
} }
faddr->set_origin(origin); faddr->set_origin(origin);
return check; return JVMFlag::SUCCESS;
} }
extern "C" { extern "C" {

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -143,44 +143,42 @@ public:
static const char* get_size_t_default_range_str(); static const char* get_size_t_default_range_str();
static const char* get_double_default_range_str(); static const char* get_double_default_range_str();
JVMFlag::Error check_writable(bool changed);
bool is_bool() const; bool is_bool() const;
bool get_bool() const; bool get_bool() const { return *((bool*) _addr); }
JVMFlag::Error set_bool(bool value); void set_bool(bool value) { *((bool*) _addr) = value; }
bool is_int() const; bool is_int() const;
int get_int() const; int get_int() const { return *((int*) _addr); }
JVMFlag::Error set_int(int value); void set_int(int value) { *((int*) _addr) = value; }
bool is_uint() const; bool is_uint() const;
uint get_uint() const; uint get_uint() const { return *((uint*) _addr); }
JVMFlag::Error set_uint(uint value); void set_uint(uint value) { *((uint*) _addr) = value; }
bool is_intx() const; bool is_intx() const;
intx get_intx() const; intx get_intx() const { return *((intx*) _addr); }
JVMFlag::Error set_intx(intx value); void set_intx(intx value) { *((intx*) _addr) = value; }
bool is_uintx() const; bool is_uintx() const;
uintx get_uintx() const; uintx get_uintx() const { return *((uintx*) _addr); }
JVMFlag::Error set_uintx(uintx value); void set_uintx(uintx value) { *((uintx*) _addr) = value; }
bool is_uint64_t() const; bool is_uint64_t() const;
uint64_t get_uint64_t() const; uint64_t get_uint64_t() const { return *((uint64_t*) _addr); }
JVMFlag::Error set_uint64_t(uint64_t value); void set_uint64_t(uint64_t value) { *((uint64_t*) _addr) = value; }
bool is_size_t() const; bool is_size_t() const;
size_t get_size_t() const; size_t get_size_t() const { return *((size_t*) _addr); }
JVMFlag::Error set_size_t(size_t value); void set_size_t(size_t value) { *((size_t*) _addr) = value; }
bool is_double() const; bool is_double() const;
double get_double() const; double get_double() const { return *((double*) _addr); }
JVMFlag::Error set_double(double value); void set_double(double value) { *((double*) _addr) = value; }
bool is_ccstr() const; bool is_ccstr() const;
bool ccstr_accumulates() const; bool ccstr_accumulates() const;
ccstr get_ccstr() const; ccstr get_ccstr() const { return *((ccstr*) _addr); }
JVMFlag::Error set_ccstr(ccstr value); void set_ccstr(ccstr value) { *((ccstr*) _addr) = value; }
Flags get_origin(); Flags get_origin();
void set_origin(Flags origin); void set_origin(Flags origin);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -266,8 +266,7 @@ void JVMFlagConstraintList::init(void) {
EMIT_CONSTRAINT_PRODUCT_RW_FLAG, EMIT_CONSTRAINT_PRODUCT_RW_FLAG,
EMIT_CONSTRAINT_LP64_PRODUCT_FLAG, EMIT_CONSTRAINT_LP64_PRODUCT_FLAG,
IGNORE_RANGE, IGNORE_RANGE,
EMIT_CONSTRAINT_CHECK, EMIT_CONSTRAINT_CHECK)
IGNORE_WRITEABLE)
EMIT_CONSTRAINT_END EMIT_CONSTRAINT_END
} }

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -331,8 +331,7 @@ void JVMFlagRangeList::init(void) {
EMIT_RANGE_PRODUCT_RW_FLAG, EMIT_RANGE_PRODUCT_RW_FLAG,
EMIT_RANGE_LP64_PRODUCT_FLAG, EMIT_RANGE_LP64_PRODUCT_FLAG,
EMIT_RANGE_CHECK, EMIT_RANGE_CHECK,
IGNORE_CONSTRAINT, IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
EMIT_RANGE_END EMIT_RANGE_END
} }

View file

@ -1,149 +0,0 @@
/*
* Copyright (c) 2015, 2018, 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.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#include "precompiled.hpp"
#include "runtime/flags/jvmFlagWriteableList.hpp"
#include "runtime/os.hpp"
bool JVMFlagWriteable::is_writeable(void) {
return _writeable;
}
void JVMFlagWriteable::mark_once(void) {
if (_type == Once) {
_writeable = false;
}
}
void JVMFlagWriteable::mark_startup(void) {
if (_type == JVMFlagWriteable::CommandLineOnly) {
_writeable = false;
}
}
// No control emitting
void emit_writeable_no(...) { /* NOP */ }
// No control emitting if type argument is NOT provided
void emit_writeable_bool(const char* /*name*/) { /* NOP */ }
void emit_writeable_ccstr(const char* /*name*/) { /* NOP */ }
void emit_writeable_ccstrlist(const char* /*name*/) { /* NOP */ }
void emit_writeable_int(const char* /*name*/) { /* NOP */ }
void emit_writeable_intx(const char* /*name*/) { /* NOP */ }
void emit_writeable_uint(const char* /*name*/) { /* NOP */ }
void emit_writeable_uintx(const char* /*name*/) { /* NOP */ }
void emit_writeable_uint64_t(const char* /*name*/) { /* NOP */ }
void emit_writeable_size_t(const char* /*name*/) { /* NOP */ }
void emit_writeable_double(const char* /*name*/) { /* NOP */ }
// JVMFlagWriteable emitting code functions if range arguments are provided
void emit_writeable_bool(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_int(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_intx(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_uint(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_uintx(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_uint64_t(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_size_t(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
void emit_writeable_double(const char* name, JVMFlagWriteable::WriteableType type) {
JVMFlagWriteableList::add(new JVMFlagWriteable(name, type));
}
// Generate code to call emit_writeable_xxx function
#define EMIT_WRITEABLE_START (void)(0
#define EMIT_WRITEABLE(type, name) ); emit_writeable_##type(#name
#define EMIT_WRITEABLE_PRODUCT_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_DIAGNOSTIC_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_EXPERIMENTAL_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_MANAGEABLE_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_PRODUCT_RW_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_PD_PRODUCT_FLAG(type, name, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_DEVELOPER_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_PD_DEVELOPER_FLAG(type, name, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_PD_DIAGNOSTIC_FLAG(type, name, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_NOTPRODUCT_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_LP64_PRODUCT_FLAG(type, name, value, doc) EMIT_WRITEABLE(type, name)
#define EMIT_WRITEABLE_END );
// Generate type argument to pass into emit_writeable_xxx functions
#define EMIT_WRITEABLE_CHECK(a) , JVMFlagWriteable::a
#define INITIAL_WRITEABLES_SIZE 2
GrowableArray<JVMFlagWriteable*>* JVMFlagWriteableList::_controls = NULL;
void JVMFlagWriteableList::init(void) {
_controls = new (ResourceObj::C_HEAP, mtArguments) GrowableArray<JVMFlagWriteable*>(INITIAL_WRITEABLES_SIZE, true);
EMIT_WRITEABLE_START
ALL_FLAGS(EMIT_WRITEABLE_DEVELOPER_FLAG,
EMIT_WRITEABLE_PD_DEVELOPER_FLAG,
EMIT_WRITEABLE_PRODUCT_FLAG,
EMIT_WRITEABLE_PD_PRODUCT_FLAG,
EMIT_WRITEABLE_DIAGNOSTIC_FLAG,
EMIT_WRITEABLE_PD_DIAGNOSTIC_FLAG,
EMIT_WRITEABLE_EXPERIMENTAL_FLAG,
EMIT_WRITEABLE_NOTPRODUCT_FLAG,
EMIT_WRITEABLE_MANAGEABLE_FLAG,
EMIT_WRITEABLE_PRODUCT_RW_FLAG,
EMIT_WRITEABLE_LP64_PRODUCT_FLAG,
IGNORE_RANGE,
IGNORE_CONSTRAINT,
EMIT_WRITEABLE_CHECK)
EMIT_WRITEABLE_END
}
JVMFlagWriteable* JVMFlagWriteableList::find(const char* name) {
JVMFlagWriteable* found = NULL;
for (int i=0; i<length(); i++) {
JVMFlagWriteable* writeable = at(i);
if (strcmp(writeable->name(), name) == 0) {
found = writeable;
break;
}
}
return found;
}
void JVMFlagWriteableList::mark_startup(void) {
for (int i=0; i<length(); i++) {
JVMFlagWriteable* writeable = at(i);
writeable->mark_startup();
}
}

View file

@ -1,67 +0,0 @@
/*
* Copyright (c) 2015, 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.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP
#define SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP
#include "utilities/growableArray.hpp"
class JVMFlagWriteable : public CHeapObj<mtArguments> {
public:
enum WriteableType {
// can be set without any limits
Always = 0,
// can only be set once, either via command lines or during runtime
Once = 1,
// can only be set on command line (multiple times allowed)
CommandLineOnly = 2
};
private:
const char* _name;
WriteableType _type;
bool _writeable;
bool _startup_done;
public:
// the "name" argument must be a string literal
JVMFlagWriteable(const char* name, WriteableType type) { _name=name; _type=type; _writeable=true; _startup_done=false; }
~JVMFlagWriteable() {}
const char* name() { return _name; }
const WriteableType type() { return _type; }
bool is_writeable(void);
void mark_once(void);
void mark_startup(void);
};
class JVMFlagWriteableList : public AllStatic {
static GrowableArray<JVMFlagWriteable*>* _controls;
public:
static void init();
static int length() { return (_controls != NULL) ? _controls->length() : 0; }
static JVMFlagWriteable* at(int i) { return (_controls != NULL) ? _controls->at(i) : NULL; }
static JVMFlagWriteable* find(const char* name);
static void add(JVMFlagWriteable* range) { _controls->append(range); }
static void mark_startup(void);
};
#endif // SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -32,7 +32,6 @@
#include "runtime/globals_extension.hpp" #include "runtime/globals_extension.hpp"
#include "runtime/globals_shared.hpp" #include "runtime/globals_shared.hpp"
#include "runtime/flags/jvmFlagConstraintList.hpp" #include "runtime/flags/jvmFlagConstraintList.hpp"
#include "runtime/flags/jvmFlagWriteableList.hpp"
#include "runtime/os.hpp" #include "runtime/os.hpp"
#include "runtime/sharedRuntime.hpp" #include "runtime/sharedRuntime.hpp"
#include "utilities/defaultStream.hpp" #include "utilities/defaultStream.hpp"
@ -76,5 +75,4 @@ ALL_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
MATERIALIZE_PRODUCT_RW_FLAG, \ MATERIALIZE_PRODUCT_RW_FLAG, \
MATERIALIZE_LP64_PRODUCT_FLAG, \ MATERIALIZE_LP64_PRODUCT_FLAG, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)

View file

@ -104,17 +104,6 @@
// //
// constraint is a macro that will expand to custom function call // constraint is a macro that will expand to custom function call
// for constraint checking if provided - see jvmFlagConstraintList.hpp // for constraint checking if provided - see jvmFlagConstraintList.hpp
//
// writeable is a macro that controls if and how the value can change during the runtime
//
// writeable(Always) is optional and allows the flag to have its value changed
// without any limitations at any time
//
// writeable(Once) flag value's can be only set once during the lifetime of VM
//
// writeable(CommandLineOnly) flag value's can be only set from command line
// (multiple times allowed)
//
// Default and minimum StringTable and SymbolTable size values // Default and minimum StringTable and SymbolTable size values
// Must be powers of 2 // Must be powers of 2
@ -135,8 +124,7 @@ const size_t minimumSymbolTableSize = 1024;
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
lp64_product(bool, UseCompressedOops, false, \ lp64_product(bool, UseCompressedOops, false, \
"Use 32-bit object references in 64-bit VM. " \ "Use 32-bit object references in 64-bit VM. " \
@ -2538,7 +2526,6 @@ ALL_FLAGS(DECLARE_DEVELOPER_FLAG, \
DECLARE_PRODUCT_RW_FLAG, \ DECLARE_PRODUCT_RW_FLAG, \
DECLARE_LP64_PRODUCT_FLAG, \ DECLARE_LP64_PRODUCT_FLAG, \
IGNORE_RANGE, \ IGNORE_RANGE, \
IGNORE_CONSTRAINT, \ IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#endif // SHARE_RUNTIME_GLOBALS_HPP #endif // SHARE_RUNTIME_GLOBALS_HPP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -63,8 +63,7 @@ typedef enum {
FLAG_MEMBER_ENUM_PRODUCT_RW, FLAG_MEMBER_ENUM_PRODUCT_RW,
FLAG_MEMBER_ENUM_LP64_PRODUCT, FLAG_MEMBER_ENUM_LP64_PRODUCT,
IGNORE_RANGE, IGNORE_RANGE,
IGNORE_CONSTRAINT, IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
NUM_JVMFlagsEnum NUM_JVMFlagsEnum
} JVMFlagsEnum; } JVMFlagsEnum;
@ -128,8 +127,7 @@ ALL_FLAGS(FLAG_MEMBER_SET_DEVELOP,
FLAG_MEMBER_SET_PRODUCT_RW, FLAG_MEMBER_SET_PRODUCT_RW,
FLAG_MEMBER_SET_LP64_PRODUCT, FLAG_MEMBER_SET_LP64_PRODUCT,
IGNORE_RANGE, IGNORE_RANGE,
IGNORE_CONSTRAINT, IGNORE_CONSTRAINT)
IGNORE_WRITEABLE)
#define FLAG_IS_DEFAULT(name) (JVMFlagEx::is_default(FLAG_MEMBER_ENUM(name))) #define FLAG_IS_DEFAULT(name) (JVMFlagEx::is_default(FLAG_MEMBER_ENUM(name)))
#define FLAG_IS_ERGO(name) (JVMFlagEx::is_ergo(FLAG_MEMBER_ENUM(name))) #define FLAG_IS_ERGO(name) (JVMFlagEx::is_ergo(FLAG_MEMBER_ENUM(name)))

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -77,8 +77,6 @@
// Only materialize src code for contraint checking when required, ignore otherwise // Only materialize src code for contraint checking when required, ignore otherwise
#define IGNORE_CONSTRAINT(func,type) #define IGNORE_CONSTRAINT(func,type)
#define IGNORE_WRITEABLE(type)
#define VM_FLAGS( \ #define VM_FLAGS( \
develop, \ develop, \
develop_pd, \ develop_pd, \
@ -92,8 +90,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
RUNTIME_FLAGS( \ RUNTIME_FLAGS( \
develop, \ develop, \
@ -108,8 +105,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
GC_FLAGS( \ GC_FLAGS( \
develop, \ develop, \
@ -124,8 +120,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
#define ALL_FLAGS( \ #define ALL_FLAGS( \
@ -141,8 +136,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
VM_FLAGS( \ VM_FLAGS( \
develop, \ develop, \
@ -157,8 +151,7 @@
product_rw, \ product_rw, \
lp64_product, \ lp64_product, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
RUNTIME_OS_FLAGS( \ RUNTIME_OS_FLAGS( \
develop, \ develop, \
@ -169,8 +162,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint) \
writeable) \
\ \
JVMCI_ONLY(JVMCI_FLAGS( \ JVMCI_ONLY(JVMCI_FLAGS( \
develop, \ develop, \
@ -182,8 +174,7 @@
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
COMPILER1_PRESENT(C1_FLAGS( \ COMPILER1_PRESENT(C1_FLAGS( \
develop, \ develop, \
@ -194,8 +185,7 @@
diagnostic_pd, \ diagnostic_pd, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
COMPILER2_PRESENT(C2_FLAGS( \ COMPILER2_PRESENT(C2_FLAGS( \
develop, \ develop, \
@ -207,8 +197,7 @@
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)) \
writeable)) \
\ \
ARCH_FLAGS( \ ARCH_FLAGS( \
develop, \ develop, \
@ -217,7 +206,6 @@
experimental, \ experimental, \
notproduct, \ notproduct, \
range, \ range, \
constraint, \ constraint)
writeable)
#endif // SHARE_RUNTIME_GLOBALS_SHARED_HPP #endif // SHARE_RUNTIME_GLOBALS_SHARED_HPP

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -68,7 +68,6 @@
#include "runtime/fieldDescriptor.inline.hpp" #include "runtime/fieldDescriptor.inline.hpp"
#include "runtime/flags/jvmFlagConstraintList.hpp" #include "runtime/flags/jvmFlagConstraintList.hpp"
#include "runtime/flags/jvmFlagRangeList.hpp" #include "runtime/flags/jvmFlagRangeList.hpp"
#include "runtime/flags/jvmFlagWriteableList.hpp"
#include "runtime/deoptimization.hpp" #include "runtime/deoptimization.hpp"
#include "runtime/frame.inline.hpp" #include "runtime/frame.inline.hpp"
#include "runtime/handles.inline.hpp" #include "runtime/handles.inline.hpp"
@ -3818,8 +3817,6 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
return JNI_EINVAL; return JNI_EINVAL;
} }
JVMFlagWriteableList::mark_startup();
if (PauseAtStartup) { if (PauseAtStartup) {
os::pause(); os::pause();
} }