Merge JDK-8200758-branch
authorherrick
Tue, 22 Jan 2019 09:43:38 -0500
branchJDK-8200758-branch
changeset 57109 b50715adf242
parent 57108 f1c13cb0e713 (current diff)
parent 53420 2190f45140b1 (diff)
child 57118 cf2b4754174d
Merge
src/hotspot/share/gc/g1/evacuationInfo.hpp
test/jdk/javax/net/ssl/compatibility/Parameter.java
test/jdk/sun/security/util/Resources/NewNamesFormat.java
test/jdk/sun/security/util/Resources/NewResourcesNames.java
test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java
--- a/.hgtags	Tue Jan 22 09:24:58 2019 -0500
+++ b/.hgtags	Tue Jan 22 09:43:38 2019 -0500
@@ -533,3 +533,7 @@
 50677f43ac3df9a8684222b8893543c60f3aa0bd jdk-13+2
 de9fd809bb475401aad188eab2264226788aad81 jdk-12+26
 642346a11059b9f283110dc301a24ed43b76a94e jdk-13+3
+f15d443f97318e9b40e6f451e327ff69ed4ec361 jdk-12+27
+a47b8125b7cc9ef59619745c163975fe935b57ed jdk-13+4
+659b004b6a1bd8c31e766cbdf328d8f8473fd4d7 jdk-12+28
+
--- a/make/Main.gmk	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/Main.gmk	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 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
@@ -484,18 +484,27 @@
   exploded-test-$1:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
 	    TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
-
 endef
 
 # ALL_NAMED_TESTS is defined in FindTests.gmk
 $(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
 ALL_TEST_TARGETS := $(addprefix test-, $(ALL_NAMED_TESTS))
 
+define DeclareRunJCovTestRecipe
+  jcov-test-$1:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
+	    TEST="$1" TEST_OPTS_JCOV=true)
+endef
+
+# jcov-test only makes sense for some of the tests
+$(foreach t, $(JCOV_NAMED_TESTS), $(eval $(call DeclareRunJCovTestRecipe,$t)))
+ALL_JCOV_TEST_TARGETS := $(addprefix jcov-test-, $(JCOV_NAMED_TESTS))
+
 # We only support the "exploded-test-gtest" shortcut
 ALL_EXPLODED_TESTS := gtest
 ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-test-, $(ALL_EXPLODED_TESTS))
 
-ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
+ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS) $(ALL_JCOV_TEST_TARGETS)
 
 ################################################################################
 # Build tests and microbenchmarks
@@ -568,7 +577,11 @@
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
 	    TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
 
-ALL_TARGETS += test exploded-test
+jcov-test:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk \
+	    TEST="$(TEST)" TEST_OPTS_JCOV=true)
+
+ALL_TARGETS += test exploded-test jcov-test
 
 ################################################################################
 # Bundles
@@ -869,6 +882,8 @@
 
   exploded-test: exploded-image test-image
 
+  jcov-test: jcov-image test-image
+
   test-make: clean-test-make compile-commands
 
   test-make-compile-commands: compile-commands
@@ -876,6 +891,7 @@
   # Declare dependency for all generated test targets
   $(foreach t, $(filter-out test-make%, $(ALL_TEST_TARGETS)), $(eval $t: jdk-image test-image))
   $(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
+  $(ALL_JCOV_TEST_TARGETS): jcov-image test-image
 
   create-buildjdk-copy: jdk.jlink-java java.base-gendata \
       $(addsuffix -java, $(INTERIM_IMAGE_MODULES))
--- a/make/RunTests.gmk	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/RunTests.gmk	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 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
@@ -45,7 +45,7 @@
 endif
 
 $(eval $(call ParseKeywordVariable, TEST_OPTS, \
-    SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES, \
+    SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES JCOV, \
     STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
 ))
 
@@ -595,9 +595,7 @@
 	  $$(eval $1_TOTAL := 1) \
 	)
 
-  $1: run-test-$1 parse-test-$1
-
-  TARGETS += $1
+  TARGETS += run-test-$1 parse-test-$1
 endef
 
 ################################################################################
@@ -702,9 +700,7 @@
 	  $$(eval $1_TOTAL := 1) \
 	)
 
-  $1: run-test-$1 parse-test-$1
-
-  TARGETS += $1
+  TARGETS += run-test-$1 parse-test-$1
 endef
 
 ################################################################################
@@ -879,6 +875,7 @@
 	$$(call LogWarn, Running test '$$($1_TEST)')
 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
 	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
+	    $$(JCOV_ENVIRONMENT) \
 	    $$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
 	        -Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
 	        $$($1_JTREG_BASIC_OPTIONS) \
@@ -888,6 +885,7 @@
 	        -workDir:$$($1_TEST_SUPPORT_DIR) \
 	        $$(JTREG_OPTIONS) \
 	        $$(JTREG_FAILURE_HANDLER_OPTIONS) \
+	        $$(JTREG_JCOV_OPTIONS) \
 	        $$($1_TEST_NAME) \
 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
@@ -921,9 +919,7 @@
 	  $$(eval $1_TOTAL := 1) \
 	)
 
-  $1: run-test-$1 parse-test-$1
-
-  TARGETS += $1
+  TARGETS += run-test-$1 parse-test-$1
 endef
 
 ################################################################################
@@ -985,9 +981,7 @@
 	$$(eval $1_ERROR := 0)
 	$$(eval $1_TOTAL := 0)
 
-  $1: run-test-$1 parse-test-$1
-
-  TARGETS += $1
+  TARGETS += run-test-$1 parse-test-$1
 endef
 
 ################################################################################
@@ -1099,6 +1093,55 @@
 	$(ECHO)
 
 ################################################################################
+# Setup JCov
+################################################################################
+
+ifeq ($(TEST_OPTS_JCOV), true)
+
+  JCOV_OUTPUT_DIR := $(TEST_RESULTS_DIR)/jcov-output
+  JCOV_GRABBER_LOG := $(JCOV_OUTPUT_DIR)/grabber.log
+  JCOV_RESULT_FILE := $(JCOV_OUTPUT_DIR)/result.xml
+  JCOV_REPORT := $(JCOV_OUTPUT_DIR)/report
+  JCOV_MEM_OPTIONS := -Xms64m -Xmx4g
+
+  ifneq ($(JCOV_IMAGE_DIR), )
+    JDK_IMAGE_DIR := $(JCOV_IMAGE_DIR)
+  endif
+
+  JCOV_ENVIRONMENT := JAVA_TOOL_OPTIONS="$(JCOV_MEM_OPTIONS)" \
+      _JAVA_OPTIONS="$(JCOV_MEM_OPTIONS)"
+  JTREG_JCOV_OPTIONS := -e:JAVA_TOOL_OPTIONS='$(JCOV_MEM_OPTIONS)' \
+      -e:_JAVA_OPTIONS='$(JCOV_MEM_OPTIONS)'
+
+  jcov-do-start-grabber:
+	$(call MakeDir, $(JCOV_OUTPUT_DIR))
+	if $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -status 1>/dev/null 2>&1 ; then \
+	  $(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600 ; \
+	fi
+	$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar Grabber -v -t \
+	    $(JCOV_IMAGE_DIR)/template.xml -o $(JCOV_RESULT_FILE) \
+	    1>$(JCOV_GRABBER_LOG) 2>&1 &
+
+  jcov-start-grabber: jcov-do-start-grabber
+	$(call LogWarn, Starting JCov Grabber...)
+	$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -t 600 -wait
+
+  jcov-stop-grabber:
+	$(call LogWarn, Stopping JCov Grabber...)
+	$(JAVA) -jar $(JCOV_HOME)/lib/jcov.jar GrabberManager -stop -stoptimeout 3600
+
+  jcov-gen-report: run-test jcov-stop-grabber
+	$(call LogWarn, Generating JCov report ...)
+	$(JAVA) -Xmx4g -jar $(JCOV_HOME)/lib/jcov.jar RepGen -sourcepath \
+	    `$(ECHO) $(TOPDIR)/src/*/share/classes/ | $(TR) ' ' ':'` -fmt html \
+	    -o $(JCOV_REPORT) $(JCOV_RESULT_FILE)
+
+  $(TARGETS): jcov-start-grabber
+  all: jcov-gen-report
+
+endif
+
+################################################################################
 
 all: run-test
 
--- a/make/autoconf/flags-cflags.m4	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/autoconf/flags-cflags.m4	Tue Jan 22 09:43:38 2019 -0500
@@ -527,8 +527,8 @@
   fi
 
   if test "x$TOOLCHAIN_TYPE" = xgcc; then
-    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
-    TOOLCHAIN_CFLAGS_JDK="-pipe"
+    TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
+    TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
     TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
 
     CXXSTD_CXXFLAG="-std=gnu++98"
@@ -572,10 +572,10 @@
 
   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
     # Suggested additions: -qsrcmsg to get improved error reporting
-    TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt"  # add on both CFLAGS
+    TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt -qstackprotect"  # add on both CFLAGS
     TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
         -qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
-        -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
+        -qlanglvl=noredefmac -qnortti -qnoeh -qignerrno -qstackprotect"
   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
     TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
     TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
--- a/make/common/FindTests.gmk	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/common/FindTests.gmk	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 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
@@ -68,6 +68,7 @@
 # Add Jtreg test groups to list of named tests (test groups, test list, etc)
 # ALL_NAMED_TESTS might have been set by a custom extension
 ALL_NAMED_TESTS += $(JTREG_TEST_GROUPS)
+JCOV_NAMED_TESTS += $(JTREG_TEST_GROUPS)
 
 # Add Gtest
 ALL_NAMED_TESTS += gtest
--- a/make/lib/Lib-java.base.gmk	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/lib/Lib-java.base.gmk	Tue Jan 22 09:43:38 2019 -0500
@@ -56,7 +56,7 @@
     LIBS_solaris := -lnsl -lsocket $(LIBDL), \
     LIBS_aix := $(LIBDL),\
     LIBS_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib winhttp.lib \
-        delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
+        urlmon.lib delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
     LIBS_macosx := -framework CoreFoundation -framework CoreServices, \
 ))
 
--- a/make/lib/Lib-jdk.hotspot.agent.gmk	Tue Jan 22 09:24:58 2019 -0500
+++ b/make/lib/Lib-jdk.hotspot.agent.gmk	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+# 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
@@ -66,7 +66,7 @@
     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(SA_CFLAGS) $(SA_CXXFLAGS), \
     EXTRA_SRC := $(LIBSA_EXTRA_SRC), \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(SA_LDFLAGS), \
-    LIBS_linux := -lthread_db $(LIBDL), \
+    LIBS_linux := $(LIBDL), \
     LIBS_solaris := -ldl -ldemangle -lthread -lproc, \
     LIBS_macosx := -framework Foundation -framework JavaNativeFoundation \
         -framework JavaRuntimeSupport -framework Security -framework CoreFoundation, \
--- a/src/hotspot/cpu/aarch64/aarch64.ad	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/aarch64.ad	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 //
-// Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
-// Copyright (c) 2014, 2018, Red Hat, Inc. All rights reserved.
+// Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
+// Copyright (c) 2014, 2019, Red Hat, Inc. 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
@@ -3418,13 +3418,7 @@
     }
 
     // Handle existing monitor
-    // we can use AArch64's bit test and branch here but
-    // markoopDesc does not define a bit index just the bit value
-    // so assert in case the bit pos changes
-#   define __monitor_value_log2 1
-    assert(markOopDesc::monitor_value == (1 << __monitor_value_log2), "incorrect bit position");
-    __ tbnz(disp_hdr, __monitor_value_log2, object_has_monitor);
-#   undef __monitor_value_log2
+    __ tbnz(disp_hdr, exact_log2(markOopDesc::monitor_value), object_has_monitor);
 
     // Set displaced_header to be (markOop of object | UNLOCK_VALUE).
     __ orr(disp_hdr, disp_hdr, markOopDesc::unlocked_value);
@@ -3455,14 +3449,6 @@
       __ b(retry_load);
     }
 
-    // Formerly:
-    // __ cmpxchgptr(/*oldv=*/disp_hdr,
-    //               /*newv=*/box,
-    //               /*addr=*/oop,
-    //               /*tmp=*/tmp,
-    //               cont,
-    //               /*fail*/NULL);
-
     assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
 
     // If the compare-and-exchange succeeded, then we found an unlocked
@@ -3511,42 +3497,18 @@
       __ bind(fail);
     }
 
-    // Label next;
-    // __ cmpxchgptr(/*oldv=*/disp_hdr,
-    //               /*newv=*/rthread,
-    //               /*addr=*/tmp,
-    //               /*tmp=*/rscratch1,
-    //               /*succeed*/next,
-    //               /*fail*/NULL);
-    // __ bind(next);
-
-    // store a non-null value into the box.
-    __ str(box, Address(box, BasicLock::displaced_header_offset_in_bytes()));
-
-    // PPC port checks the following invariants
-    // #ifdef ASSERT
-    // bne(flag, cont);
-    // We have acquired the monitor, check some invariants.
-    // addw(/*monitor=*/tmp, tmp, -ObjectMonitor::owner_offset_in_bytes());
-    // Invariant 1: _recursions should be 0.
-    // assert(ObjectMonitor::recursions_size_in_bytes() == 8, "unexpected size");
-    // assert_mem8_is_zero(ObjectMonitor::recursions_offset_in_bytes(), tmp,
-    //                        "monitor->_recursions should be 0", -1);
-    // Invariant 2: OwnerIsThread shouldn't be 0.
-    // assert(ObjectMonitor::OwnerIsThread_size_in_bytes() == 4, "unexpected size");
-    //assert_mem4_isnot_zero(ObjectMonitor::OwnerIsThread_offset_in_bytes(), tmp,
-    //                           "monitor->OwnerIsThread shouldn't be 0", -1);
-    // #endif
+    // Store a non-null value into the box to avoid looking like a re-entrant
+    // lock. The fast-path monitor unlock code checks for
+    // markOopDesc::monitor_value so use markOopDesc::unused_mark which has the
+    // relevant bit set, and also matches ObjectSynchronizer::slow_enter.
+    __ mov(tmp, (address)markOopDesc::unused_mark());
+    __ str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
 
     __ bind(cont);
     // flag == EQ indicates success
     // flag == NE indicates failure
-
-  %}
-
-  // TODO
-  // reimplement this with custom cmpxchgptr code
-  // which avoids some of the unnecessary branching
+  %}
+
   enc_class aarch64_enc_fast_unlock(iRegP object, iRegP box, iRegP tmp, iRegP tmp2) %{
     MacroAssembler _masm(&cbuf);
     Register oop = as_Register($object$$reg);
@@ -3555,7 +3517,6 @@
     Register tmp = as_Register($tmp2$$reg);
     Label cont;
     Label object_has_monitor;
-    Label cas_failed;
 
     assert_different_registers(oop, box, tmp, disp_hdr);
 
@@ -3570,7 +3531,6 @@
     __ cmp(disp_hdr, zr);
     __ br(Assembler::EQ, cont);
 
-
     // Handle existing monitor.
     __ ldr(tmp, Address(oop, oopDesc::mark_offset_in_bytes()));
     __ tbnz(disp_hdr, exact_log2(markOopDesc::monitor_value), object_has_monitor);
@@ -3579,37 +3539,28 @@
     // see the stack address of the basicLock in the markOop of the
     // object.
 
-      if (UseLSE) {
-        __ mov(tmp, box);
-        __ casl(Assembler::xword, tmp, disp_hdr, oop);
-        __ cmp(tmp, box);
-      } else {
-        Label retry_load;
-        if ((VM_Version::features() & VM_Version::CPU_STXR_PREFETCH))
-          __ prfm(Address(oop), PSTL1STRM);
-        __ bind(retry_load);
-        __ ldxr(tmp, oop);
-        __ cmp(box, tmp);
-        __ br(Assembler::NE, cas_failed);
-        // use stlxr to ensure update is immediately visible
-        __ stlxr(tmp, disp_hdr, oop);
-        __ cbzw(tmp, cont);
-        __ b(retry_load);
-      }
-
-    // __ cmpxchgptr(/*compare_value=*/box,
-    //               /*exchange_value=*/disp_hdr,
-    //               /*where=*/oop,
-    //               /*result=*/tmp,
-    //               cont,
-    //               /*cas_failed*/NULL);
+    if (UseLSE) {
+      __ mov(tmp, box);
+      __ casl(Assembler::xword, tmp, disp_hdr, oop);
+      __ cmp(tmp, box);
+      __ b(cont);
+    } else {
+      Label retry_load;
+      if ((VM_Version::features() & VM_Version::CPU_STXR_PREFETCH))
+        __ prfm(Address(oop), PSTL1STRM);
+      __ bind(retry_load);
+      __ ldxr(tmp, oop);
+      __ cmp(box, tmp);
+      __ br(Assembler::NE, cont);
+      // use stlxr to ensure update is immediately visible
+      __ stlxr(tmp, disp_hdr, oop);
+      __ cbzw(tmp, cont);
+      __ b(retry_load);
+    }
+
     assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
 
-    __ bind(cas_failed);
-
     // Handle existing monitor.
-    __ b(cont);
-
     __ bind(object_has_monitor);
     __ add(tmp, tmp, -markOopDesc::monitor_value); // monitor
     __ ldr(rscratch1, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
@@ -3626,7 +3577,7 @@
     __ cbnz(rscratch1, cont);
     // need a release store here
     __ lea(tmp, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
-    __ stlr(rscratch1, tmp); // rscratch1 is zero
+    __ stlr(zr, tmp); // set unowned
 
     __ bind(cont);
     // flag == EQ indicates success
--- a/src/hotspot/cpu/aarch64/assembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/assembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
-#define CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
+#ifndef CPU_AARCH64_ASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_ASSEMBLER_AARCH64_HPP
 
 #include "asm/register.hpp"
 
@@ -1118,7 +1118,7 @@
     Register Rn, enum operand_size sz, int op, bool ordered) {
     starti;
     f(sz, 31, 30), f(0b001000, 29, 24), f(op, 23, 21);
-    rf(Rs, 16), f(ordered, 15), rf(Rt2, 10), srf(Rn, 5), rf(Rt1, 0);
+    rf(Rs, 16), f(ordered, 15), rf(Rt2, 10), srf(Rn, 5), zrf(Rt1, 0);
   }
 
   void load_exclusive(Register dst, Register addr,
@@ -2754,4 +2754,4 @@
 
 extern "C" void das(uint64_t start, int len);
 
-#endif // CPU_AARCH64_VM_ASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_ASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/assembler_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/assembler_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,11 +23,11 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
-#define CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
+#ifndef CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
+#define CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
 #include "code/codeCache.hpp"
 
-#endif // CPU_AARCH64_VM_ASSEMBLER_AARCH64_INLINE_HPP
+#endif // CPU_AARCH64_ASSEMBLER_AARCH64_INLINE_HPP
--- a/src/hotspot/cpu/aarch64/bytecodes_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/bytecodes_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,9 +23,9 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
-#define CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
+#ifndef CPU_AARCH64_BYTECODES_AARCH64_HPP
+#define CPU_AARCH64_BYTECODES_AARCH64_HPP
 
 // No aarch64 specific bytecodes
 
-#endif // CPU_AARCH64_VM_BYTECODES_AARCH64_HPP
+#endif // CPU_AARCH64_BYTECODES_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/bytes_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/bytes_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_BYTES_AARCH64_HPP
-#define CPU_AARCH64_VM_BYTES_AARCH64_HPP
+#ifndef CPU_AARCH64_BYTES_AARCH64_HPP
+#define CPU_AARCH64_BYTES_AARCH64_HPP
 
 #include "memory/allocation.hpp"
 
@@ -63,4 +63,4 @@
 // The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base]
 #include OS_CPU_HEADER_INLINE(bytes)
 
-#endif // CPU_AARCH64_VM_BYTES_AARCH64_HPP
+#endif // CPU_AARCH64_BYTES_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_Defs_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_Defs_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
-#define CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
+#ifndef CPU_AARCH64_C1_DEFS_AARCH64_HPP
+#define CPU_AARCH64_C1_DEFS_AARCH64_HPP
 
 // native word offsets from memory address (little endian)
 enum {
@@ -78,4 +78,4 @@
   pd_float_saved_as_double = false
 };
 
-#endif // CPU_AARCH64_VM_C1_DEFS_AARCH64_HPP
+#endif // CPU_AARCH64_C1_DEFS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_FpuStackSim_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_FpuStackSim_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,10 +23,10 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
-#define CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
+#ifndef CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
+#define CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
 
 // No FPU stack on AARCH64
 class FpuStackSim;
 
-#endif // CPU_AARCH64_VM_C1_FPUSTACKSIM_HPP
+#endif // CPU_AARCH64_C1_FPUSTACKSIM_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_FrameMap_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_FrameMap_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
-#define CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
+#ifndef CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
+#define CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
 
 //  On AArch64 the frame looks as follows:
 //
@@ -144,5 +144,4 @@
   static int last_cpu_reg()             { return pd_last_cpu_reg;  }
   static int last_byte_reg()            { return pd_last_byte_reg; }
 
-#endif // CPU_AARCH64_VM_C1_FRAMEMAP_AARCH64_HPP
-
+#endif // CPU_AARCH64_C1_FRAMEMAP_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
-#define CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
+#ifndef CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
 
 // ArrayCopyStub needs access to bailout
 friend class ArrayCopyStub;
@@ -81,4 +81,4 @@
   void store_parameter(jint c,     int offset_from_esp_in_words);
   void store_parameter(jobject c,  int offset_from_esp_in_words);
 
-#endif // CPU_AARCH64_VM_C1_LIRASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_C1_LIRASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_LinearScan_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_LinearScan_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_LINEARSCAN_HPP
-#define CPU_AARCH64_VM_C1_LINEARSCAN_HPP
+#ifndef CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
+#define CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
   return reg_num <= FrameMap::last_cpu_reg() || reg_num >= pd_nof_cpu_regs_frame_map;
@@ -73,4 +73,4 @@
 }
 
 
-#endif // CPU_AARCH64_VM_C1_LINEARSCAN_HPP
+#endif // CPU_AARCH64_C1_LINEARSCAN_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
-#define CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
+#ifndef CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
 
 using MacroAssembler::build_frame;
 using MacroAssembler::null_check;
@@ -111,4 +111,4 @@
 
   void load_parameter(int offset_in_words, Register reg);
 
-#endif // CPU_AARCH64_VM_C1_MACROASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_C1_MACROASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c1_globals_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c1_globals_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
-#define CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
+#ifndef CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
+#define CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -74,4 +74,4 @@
 define_pd_global(bool, CSEArrayLength,               false);
 define_pd_global(bool, TwoOperandLIRForm,            false );
 
-#endif // CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
+#endif // CPU_AARCH64_C1_GLOBALS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/c2_globals_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/c2_globals_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
-#define CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
+#ifndef CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
+#define CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -87,4 +87,4 @@
 
 define_pd_global(bool,  TrapBasedRangeChecks,        false); // Not needed.
 
-#endif // CPU_AARCH64_VM_C2_GLOBALS_AARCH64_HPP
+#endif // CPU_AARCH64_C2_GLOBALS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/codeBuffer_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/codeBuffer_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
-#define CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
+#ifndef CPU_AARCH64_CODEBUFFER_AARCH64_HPP
+#define CPU_AARCH64_CODEBUFFER_AARCH64_HPP
 
 private:
   void pd_initialize() {}
@@ -32,4 +32,4 @@
 public:
   void flush_bundle(bool start_new_bundle) {}
 
-#endif // CPU_AARCH64_VM_CODEBUFFER_AARCH64_HPP
+#endif // CPU_AARCH64_CODEBUFFER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/copy_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/copy_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_COPY_AARCH64_HPP
-#define CPU_AARCH64_VM_COPY_AARCH64_HPP
+#ifndef CPU_AARCH64_COPY_AARCH64_HPP
+#define CPU_AARCH64_COPY_AARCH64_HPP
 
 // Inline functions for memory copy and fill.
 
@@ -56,4 +56,4 @@
   (void)memset(to, 0, count);
 }
 
-#endif // CPU_AARCH64_VM_COPY_AARCH64_HPP
+#endif // CPU_AARCH64_COPY_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/depChecker_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/depChecker_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,9 +23,9 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
-#define CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
+#ifndef CPU_AARCH64_DEPCHECKER_AARCH64_HPP
+#define CPU_AARCH64_DEPCHECKER_AARCH64_HPP
 
 // Nothing to do on aarch64
 
-#endif // CPU_AARCH64_VM_DEPCHECKER_AARCH64_HPP
+#endif // CPU_AARCH64_DEPCHECKER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/disassembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/disassembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
-#define CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
+#ifndef CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
 
   static int pd_instruction_alignment() {
     return 1;
@@ -34,4 +34,4 @@
     return "";
   }
 
-#endif // CPU_AARCH64_VM_DISASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_DISASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/frame_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/frame_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_FRAME_AARCH64_HPP
-#define CPU_AARCH64_VM_FRAME_AARCH64_HPP
+#ifndef CPU_AARCH64_FRAME_AARCH64_HPP
+#define CPU_AARCH64_FRAME_AARCH64_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -160,4 +160,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_AARCH64_VM_FRAME_AARCH64_HPP
+#endif // CPU_AARCH64_FRAME_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/frame_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/frame_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
-#define CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
+#ifndef CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
+#define CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
 
 #include "code/codeCache.hpp"
 #include "code/vmreg.inline.hpp"
@@ -250,4 +250,4 @@
   *result_adr = obj;
 }
 
-#endif // CPU_AARCH64_VM_FRAME_AARCH64_INLINE_HPP
+#endif // CPU_AARCH64_FRAME_AARCH64_INLINE_HPP
--- a/src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -39,4 +39,4 @@
 
 };
 
-#endif // #ifndef CPU_AARCH64_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
-#define CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
+#ifndef CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
+#define CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
 
 const int StackAlignmentInBytes  = 16;
 
@@ -53,4 +53,4 @@
 
 #define THREAD_LOCAL_POLL
 
-#endif // CPU_AARCH64_VM_GLOBALDEFINITIONS_AARCH64_HPP
+#endif // CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
-#define CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
+#ifndef CPU_AARCH64_GLOBALS_AARCH64_HPP
+#define CPU_AARCH64_GLOBALS_AARCH64_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -166,4 +166,4 @@
 #endif
 
 
-#endif // CPU_AARCH64_VM_GLOBALS_AARCH64_HPP
+#endif // CPU_AARCH64_GLOBALS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/icache_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/icache_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_ICACHE_AARCH64_HPP
-#define CPU_AARCH64_VM_ICACHE_AARCH64_HPP
+#ifndef CPU_AARCH64_ICACHE_AARCH64_HPP
+#define CPU_AARCH64_ICACHE_AARCH64_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM
 // modifies code, part of the processor instruction cache potentially
@@ -41,4 +41,4 @@
   }
 };
 
-#endif // CPU_AARCH64_VM_ICACHE_AARCH64_HPP
+#endif // CPU_AARCH64_ICACHE_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
-#define CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
+#ifndef CPU_AARCH64_INTERP_MASM_AARCH64_HPP
+#define CPU_AARCH64_INTERP_MASM_AARCH64_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -295,4 +295,4 @@
   }
 };
 
-#endif // CPU_AARCH64_VM_INTERP_MASM_AARCH64_64_HPP
+#endif // CPU_AARCH64_INTERP_MASM_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/interpreterRT_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
-#define CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
+#ifndef CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
+#define CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -58,4 +58,4 @@
   static Register temp();
 };
 
-#endif // CPU_AARCH64_VM_INTERPRETERRT_AARCH64_HPP
+#endif // CPU_AARCH64_INTERPRETERRT_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/javaFrameAnchor_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/javaFrameAnchor_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
-#define CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
+#ifndef CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
+#define CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
 
 private:
 
@@ -84,4 +84,4 @@
   // Assert (last_Java_sp == NULL || fp == NULL)
   void set_last_Java_fp(intptr_t* fp)                { OrderAccess::release(); _last_Java_fp = fp; }
 
-#endif // CPU_AARCH64_VM_JAVAFRAMEANCHOR_AARCH64_HPP
+#endif // CPU_AARCH64_JAVAFRAMEANCHOR_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/jniTypes_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/jniTypes_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
-#define CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
+#ifndef CPU_AARCH64_JNITYPES_AARCH64_HPP
+#define CPU_AARCH64_JNITYPES_AARCH64_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -104,4 +104,4 @@
 #undef _JNI_SLOT_OFFSET
 };
 
-#endif // CPU_AARCH64_VM_JNITYPES_AARCH64_HPP
+#endif // CPU_AARCH64_JNITYPES_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
-#define CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
+#ifndef CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
+#define CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
 
 #include "asm/assembler.hpp"
 
@@ -1391,4 +1391,4 @@
   Label _branches;
 };
 
-#endif // CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_HPP
+#endif // CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
-#define CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
+#ifndef CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
+#define CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
 
 #include "asm/assembler.hpp"
 
@@ -32,4 +32,4 @@
 
 #endif // ndef PRODUCT
 
-#endif // CPU_AARCH64_VM_MACROASSEMBLER_AARCH64_INLINE_HPP
+#endif // CPU_AARCH64_MACROASSEMBLER_AARCH64_INLINE_HPP
--- a/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
-#define CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
+#ifndef CPU_AARCH64_NATIVEINST_AARCH64_HPP
+#define CPU_AARCH64_NATIVEINST_AARCH64_HPP
 
 #include "asm/assembler.hpp"
 #include "runtime/icache.hpp"
@@ -703,4 +703,4 @@
   assert(nativeInstruction_at(addr)->is_Imm_LdSt(), "no immediate load/store found");
   return (NativeLdSt*)addr;
 }
-#endif // CPU_AARCH64_VM_NATIVEINST_AARCH64_HPP
+#endif // CPU_AARCH64_NATIVEINST_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/registerMap_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/registerMap_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
-#define CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
+#ifndef CPU_AARCH64_REGISTERMAP_AARCH64_HPP
+#define CPU_AARCH64_REGISTERMAP_AARCH64_HPP
 
 // machine-dependent implemention for register maps
   friend class frame;
@@ -42,4 +42,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_AARCH64_VM_REGISTERMAP_AARCH64_HPP
+#endif // CPU_AARCH64_REGISTERMAP_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/register_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/register_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_REGISTER_AARCH64_HPP
-#define CPU_AARCH64_VM_REGISTER_AARCH64_HPP
+#ifndef CPU_AARCH64_REGISTER_AARCH64_HPP
+#define CPU_AARCH64_REGISTER_AARCH64_HPP
 
 #include "asm/register.hpp"
 
@@ -258,4 +258,4 @@
   uint32_t bits() const { return _bitset; }
 };
 
-#endif // CPU_AARCH64_VM_REGISTER_AARCH64_HPP
+#endif // CPU_AARCH64_REGISTER_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/relocInfo_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/relocInfo_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
-#define CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
+#ifndef CPU_AARCH64_RELOCINFO_AARCH64_HPP
+#define CPU_AARCH64_RELOCINFO_AARCH64_HPP
 
   // machine-dependent parts of class relocInfo
  private:
@@ -41,4 +41,4 @@
   // listed in the oop section.
   static bool mustIterateImmediateOopsInCode() { return false; }
 
-#endif // CPU_AARCH64_VM_RELOCINFO_AARCH64_HPP
+#endif // CPU_AARCH64_RELOCINFO_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
-#define CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
+#ifndef CPU_AARCH64_STUBROUTINES_AARCH64_HPP
+#define CPU_AARCH64_STUBROUTINES_AARCH64_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to
@@ -195,4 +195,4 @@
   // end trigonometric tables block
 };
 
-#endif // CPU_AARCH64_VM_STUBROUTINES_AARCH64_HPP
+#endif // CPU_AARCH64_STUBROUTINES_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/templateTable_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/templateTable_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
-#define CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
+#ifndef CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
+#define CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
 
 static void prepare_invoke(int byte_no,
                              Register method,         // linked method (or i-klass)
@@ -39,4 +39,4 @@
   static void index_check(Register array, Register index);
   static void index_check_without_pop(Register array, Register index);
 
-#endif // CPU_AARCH64_VM_TEMPLATETABLE_AARCH64_64_HPP
+#endif // CPU_AARCH64_TEMPLATETABLE_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/vmStructs_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/vmStructs_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
-#define CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
+#ifndef CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
+#define CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -39,4 +39,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_AARCH64_VM_VMSTRUCTS_AARCH64_HPP
+#endif // CPU_AARCH64_VMSTRUCTS_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/vm_version_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
-#define CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
+#ifndef CPU_AARCH64_VM_VERSION_AARCH64_HPP
+#define CPU_AARCH64_VM_VERSION_AARCH64_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -121,4 +121,4 @@
   }
 };
 
-#endif // CPU_AARCH64_VM_VM_VERSION_AARCH64_HPP
+#endif // CPU_AARCH64_VM_VERSION_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
-#define CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
+#ifndef CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
+#define CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_aarch64.hpp"
@@ -51,4 +51,4 @@
 
 };
 
-#endif // CPU_AARCH64_VM_VM_VERSION_EXT_AARCH64_HPP
+#endif // CPU_AARCH64_VM_VERSION_EXT_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/vmreg_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/vmreg_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_VMREG_AARCH64_HPP
-#define CPU_AARCH64_VM_VMREG_AARCH64_HPP
+#ifndef CPU_AARCH64_VMREG_AARCH64_HPP
+#define CPU_AARCH64_VMREG_AARCH64_HPP
 
 inline bool is_Register() {
   return (unsigned int) value() < (unsigned int) ConcreteRegisterImpl::max_gpr;
@@ -52,4 +52,4 @@
   return is_even(value());
 }
 
-#endif // CPU_AARCH64_VM_VMREG_AARCH64_HPP
+#endif // CPU_AARCH64_VMREG_AARCH64_HPP
--- a/src/hotspot/cpu/aarch64/vmreg_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/aarch64/vmreg_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
-#define CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
+#ifndef CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
+#define CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   if( this==noreg ) return VMRegImpl::Bad();
@@ -35,4 +35,4 @@
   return VMRegImpl::as_VMReg((encoding() << 1) + ConcreteRegisterImpl::max_gpr);
 }
 
-#endif // CPU_AARCH64_VM_VMREG_AARCH64_INLINE_HPP
+#endif // CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
--- a/src/hotspot/cpu/arm/assembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/assembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_ASSEMBLER_ARM_HPP
-#define CPU_ARM_VM_ASSEMBLER_ARM_HPP
+#ifndef CPU_ARM_ASSEMBLER_ARM_HPP
+#define CPU_ARM_ASSEMBLER_ARM_HPP
 
 #include "utilities/macros.hpp"
 
@@ -326,4 +326,4 @@
 #include "assembler_arm_32.hpp"
 
 
-#endif // CPU_ARM_VM_ASSEMBLER_ARM_HPP
+#endif // CPU_ARM_ASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/assembler_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/assembler_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
-#define CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
+#ifndef CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
+#define CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
 
 
-#endif // CPU_ARM_VM_ASSEMBLER_ARM_INLINE_HPP
+#endif // CPU_ARM_ASSEMBLER_ARM_INLINE_HPP
--- a/src/hotspot/cpu/arm/assembler_arm_32.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/assembler_arm_32.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
-#define CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
+#ifndef CPU_ARM_ASSEMBLER_ARM_32_HPP
+#define CPU_ARM_ASSEMBLER_ARM_32_HPP
 
 // ARM Addressing Mode 1 - Data processing operands
 class AsmOperand {
@@ -1250,4 +1250,4 @@
 #endif // __SOFTFP__
 
 
-#endif // CPU_ARM_VM_ASSEMBLER_ARM_32_HPP
+#endif // CPU_ARM_ASSEMBLER_ARM_32_HPP
--- a/src/hotspot/cpu/arm/bytes_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/bytes_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_BYTES_ARM_HPP
-#define CPU_ARM_VM_BYTES_ARM_HPP
+#ifndef CPU_ARM_BYTES_ARM_HPP
+#define CPU_ARM_BYTES_ARM_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -186,4 +186,4 @@
 // The following header contains the implementations of swap_u2, swap_u4, and swap_u8
 #include OS_CPU_HEADER_INLINE(bytes)
 
-#endif // CPU_ARM_VM_BYTES_ARM_HPP
+#endif // CPU_ARM_BYTES_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_Defs_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_Defs_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_DEFS_ARM_HPP
-#define CPU_ARM_VM_C1_DEFS_ARM_HPP
+#ifndef CPU_ARM_C1_DEFS_ARM_HPP
+#define CPU_ARM_C1_DEFS_ARM_HPP
 
 // native word offsets from memory address (little endian)
 enum {
@@ -78,4 +78,4 @@
 #define CARDTABLEBARRIERSET_POST_BARRIER_HELPER
 #define GENERATE_ADDRESS_IS_PREFERRED
 
-#endif // CPU_ARM_VM_C1_DEFS_ARM_HPP
+#endif // CPU_ARM_C1_DEFS_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_FpuStackSim_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_FpuStackSim_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
-#define CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
+#ifndef CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
+#define CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
 
 // Nothing needed here
 
-#endif // CPU_ARM_VM_C1_FPUSTACKSIM_ARM_HPP
+#endif // CPU_ARM_C1_FPUSTACKSIM_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_FrameMap_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_FrameMap_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
-#define CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
+#ifndef CPU_ARM_C1_FRAMEMAP_ARM_HPP
+#define CPU_ARM_C1_FRAMEMAP_ARM_HPP
 
  public:
 
@@ -108,4 +108,4 @@
     return pd_last_cpu_reg;
   }
 
-#endif // CPU_ARM_VM_C1_FRAMEMAP_ARM_HPP
+#endif // CPU_ARM_C1_FRAMEMAP_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_LIRAssembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_LIRAssembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
-#define CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
+#ifndef CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
+#define CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
 
  private:
 
@@ -65,4 +65,4 @@
   void store_parameter(jint c,      int offset_from_sp_in_words);
   void store_parameter(Metadata* m, int offset_from_sp_in_words);
 
-#endif // CPU_ARM_VM_C1_LIRASSEMBLER_ARM_HPP
+#endif // CPU_ARM_C1_LIRASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_LinearScan_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_LinearScan_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
-#define CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
+#ifndef CPU_ARM_C1_LINEARSCAN_ARM_HPP
+#define CPU_ARM_C1_LINEARSCAN_ARM_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
   return reg_num < pd_nof_cpu_regs_processed_in_linearscan ||
@@ -68,4 +68,4 @@
   return true;
 }
 
-#endif // CPU_ARM_VM_C1_LINEARSCAN_ARM_HPP
+#endif // CPU_ARM_C1_LINEARSCAN_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_MacroAssembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_MacroAssembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
-#define CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
+#ifndef CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
+#define CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
 
  private:
 
@@ -66,4 +66,4 @@
   // This platform only uses signal-based null checks. The Label is not needed.
   void null_check(Register r, Label *Lnull = NULL) { MacroAssembler::null_check(r); }
 
-#endif // CPU_ARM_VM_C1_MACROASSEMBLER_ARM_HPP
+#endif // CPU_ARM_C1_MACROASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/c1_globals_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c1_globals_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C1_GLOBALS_ARM_HPP
-#define CPU_ARM_VM_C1_GLOBALS_ARM_HPP
+#ifndef CPU_ARM_C1_GLOBALS_ARM_HPP
+#define CPU_ARM_C1_GLOBALS_ARM_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -70,4 +70,4 @@
 define_pd_global(bool, CSEArrayLength,               true);
 define_pd_global(bool, TwoOperandLIRForm,            false);
 
-#endif // CPU_ARM_VM_C1_GLOBALS_ARM_HPP
+#endif // CPU_ARM_C1_GLOBALS_ARM_HPP
--- a/src/hotspot/cpu/arm/c2_globals_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/c2_globals_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_C2_GLOBALS_ARM_HPP
-#define CPU_ARM_VM_C2_GLOBALS_ARM_HPP
+#ifndef CPU_ARM_C2_GLOBALS_ARM_HPP
+#define CPU_ARM_C2_GLOBALS_ARM_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -108,4 +108,4 @@
 // Ergonomics related flags
 define_pd_global(bool, NeverActAsServerClassMachine, false);
 
-#endif // CPU_ARM_VM_C2_GLOBALS_ARM_HPP
+#endif // CPU_ARM_C2_GLOBALS_ARM_HPP
--- a/src/hotspot/cpu/arm/codeBuffer_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/codeBuffer_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_CODEBUFFER_ARM_HPP
-#define CPU_ARM_VM_CODEBUFFER_ARM_HPP
+#ifndef CPU_ARM_CODEBUFFER_ARM_HPP
+#define CPU_ARM_CODEBUFFER_ARM_HPP
 
 private:
   void pd_initialize() {}
@@ -31,4 +31,4 @@
 public:
   void flush_bundle(bool start_new_bundle) {}
 
-#endif // CPU_ARM_VM_CODEBUFFER_ARM_HPP
+#endif // CPU_ARM_CODEBUFFER_ARM_HPP
--- a/src/hotspot/cpu/arm/copy_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/copy_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_COPY_ARM_HPP
-#define CPU_ARM_VM_COPY_ARM_HPP
+#ifndef CPU_ARM_COPY_ARM_HPP
+#define CPU_ARM_COPY_ARM_HPP
 
 #include "utilities/macros.hpp"
 
@@ -56,4 +56,4 @@
   memset(to, 0, count);
 }
 
-#endif // CPU_ARM_VM_COPY_ARM_HPP
+#endif // CPU_ARM_COPY_ARM_HPP
--- a/src/hotspot/cpu/arm/depChecker_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/depChecker_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_ARM_VM_DEPCHECKER_ARM_HPP
-#define CPU_ARM_VM_DEPCHECKER_ARM_HPP
+#ifndef CPU_ARM_DEPCHECKER_ARM_HPP
+#define CPU_ARM_DEPCHECKER_ARM_HPP
 
 // Nothing to do
 
-#endif // CPU_ARM_VM_DEPCHECKER_ARM_HPP
+#endif // CPU_ARM_DEPCHECKER_ARM_HPP
--- a/src/hotspot/cpu/arm/disassembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/disassembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_DISASSEMBLER_ARM_HPP
-#define CPU_ARM_VM_DISASSEMBLER_ARM_HPP
+#ifndef CPU_ARM_DISASSEMBLER_ARM_HPP
+#define CPU_ARM_DISASSEMBLER_ARM_HPP
 
   static int pd_instruction_alignment() {
     return sizeof(int);
@@ -33,4 +33,4 @@
     return "";
   }
 
-#endif // CPU_ARM_VM_DISASSEMBLER_ARM_HPP
+#endif // CPU_ARM_DISASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/frame_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/frame_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_FRAME_ARM_HPP
-#define CPU_ARM_VM_FRAME_ARM_HPP
+#ifndef CPU_ARM_FRAME_ARM_HPP
+#define CPU_ARM_FRAME_ARM_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -118,4 +118,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_ARM_VM_FRAME_ARM_HPP
+#endif // CPU_ARM_FRAME_ARM_HPP
--- a/src/hotspot/cpu/arm/frame_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/frame_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_FRAME_ARM_INLINE_HPP
-#define CPU_ARM_VM_FRAME_ARM_INLINE_HPP
+#ifndef CPU_ARM_FRAME_ARM_INLINE_HPP
+#define CPU_ARM_FRAME_ARM_INLINE_HPP
 
 #include "code/codeCache.hpp"
 #include "code/vmreg.inline.hpp"
@@ -228,4 +228,4 @@
   *result_adr = obj;
 }
 
-#endif // CPU_ARM_VM_FRAME_ARM_INLINE_HPP
+#endif // CPU_ARM_FRAME_ARM_INLINE_HPP
--- a/src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -43,4 +43,4 @@
                             Address obj, Register new_val, Register tmp1, Register tmp2, Register tmp3, bool is_null);
 };
 
-#endif // #ifndef CPU_ARM_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_ARM_HPP
+#endif // CPU_ARM_GC_SHARED_CARDTABLEBARRIERSETASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/globalDefinitions_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/globalDefinitions_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_GLOBALDEFINITIONS_ARM_HPP
-#define CPU_ARM_VM_GLOBALDEFINITIONS_ARM_HPP
+#ifndef CPU_ARM_GLOBALDEFINITIONS_ARM_HPP
+#define CPU_ARM_GLOBALDEFINITIONS_ARM_HPP
 
 const int StackAlignmentInBytes = 8;
 
@@ -59,4 +59,4 @@
 #endif
 #endif
 
-#endif // CPU_ARM_VM_GLOBALDEFINITIONS_ARM_HPP
+#endif // CPU_ARM_GLOBALDEFINITIONS_ARM_HPP
--- a/src/hotspot/cpu/arm/globals_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/globals_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_GLOBALS_ARM_HPP
-#define CPU_ARM_VM_GLOBALS_ARM_HPP
+#ifndef CPU_ARM_GLOBALS_ARM_HPP
+#define CPU_ARM_GLOBALS_ARM_HPP
 
 //
 // Sets the default values for platform dependent flags used by the runtime system.
@@ -87,4 +87,4 @@
                    range, \
                    constraint, \
                    writeable)
-#endif // CPU_ARM_VM_GLOBALS_ARM_HPP
+#endif // CPU_ARM_GLOBALS_ARM_HPP
--- a/src/hotspot/cpu/arm/icache_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/icache_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_ICACHE_ARM_HPP
-#define CPU_ARM_VM_ICACHE_ARM_HPP
+#ifndef CPU_ARM_ICACHE_ARM_HPP
+#define CPU_ARM_ICACHE_ARM_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM modifies
 // code, part of the processor instruction cache potentially has to be flushed.
@@ -37,4 +37,4 @@
   };
 };
 
-#endif // CPU_ARM_VM_ICACHE_ARM_HPP
+#endif // CPU_ARM_ICACHE_ARM_HPP
--- a/src/hotspot/cpu/arm/interp_masm_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/interp_masm_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_INTERP_MASM_ARM_HPP
-#define CPU_ARM_VM_INTERP_MASM_ARM_HPP
+#ifndef CPU_ARM_INTERP_MASM_ARM_HPP
+#define CPU_ARM_INTERP_MASM_ARM_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -277,4 +277,4 @@
                          Register reg3 = noreg);
 };
 
-#endif // CPU_ARM_VM_INTERP_MASM_ARM_HPP
+#endif // CPU_ARM_INTERP_MASM_ARM_HPP
--- a/src/hotspot/cpu/arm/interpreterRT_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/interpreterRT_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_INTERPRETERRT_ARM_HPP
-#define CPU_ARM_VM_INTERPRETERRT_ARM_HPP
+#ifndef CPU_ARM_INTERPRETERRT_ARM_HPP
+#define CPU_ARM_INTERPRETERRT_ARM_HPP
 
 // native method calls
 
@@ -60,4 +60,4 @@
 // sharing). See normalize_fast_native_fingerprint
 #define SHARING_FAST_NATIVE_FINGERPRINTS
 
-#endif // CPU_ARM_VM_INTERPRETERRT_ARM_HPP
+#endif // CPU_ARM_INTERPRETERRT_ARM_HPP
--- a/src/hotspot/cpu/arm/javaFrameAnchor_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/javaFrameAnchor_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_JAVAFRAMEANCHOR_ARM_HPP
-#define CPU_ARM_VM_JAVAFRAMEANCHOR_ARM_HPP
+#ifndef CPU_ARM_JAVAFRAMEANCHOR_ARM_HPP
+#define CPU_ARM_JAVAFRAMEANCHOR_ARM_HPP
 
 private:
 
@@ -83,4 +83,4 @@
   // Assert (last_Java_sp == NULL || fp == NULL)
   void set_last_Java_fp(intptr_t* fp)                { _last_Java_fp = fp; }
 
-#endif // CPU_ARM_VM_JAVAFRAMEANCHOR_ARM_HPP
+#endif // CPU_ARM_JAVAFRAMEANCHOR_ARM_HPP
--- a/src/hotspot/cpu/arm/jniTypes_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/jniTypes_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_JNITYPES_ARM_HPP
-#define CPU_ARM_VM_JNITYPES_ARM_HPP
+#ifndef CPU_ARM_JNITYPES_ARM_HPP
+#define CPU_ARM_JNITYPES_ARM_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -79,4 +79,4 @@
 
 };
 
-#endif // CPU_ARM_VM_JNITYPES_ARM_HPP
+#endif // CPU_ARM_JNITYPES_ARM_HPP
--- a/src/hotspot/cpu/arm/macroAssembler_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/macroAssembler_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_MACROASSEMBLER_ARM_HPP
-#define CPU_ARM_VM_MACROASSEMBLER_ARM_HPP
+#ifndef CPU_ARM_MACROASSEMBLER_ARM_HPP
+#define CPU_ARM_MACROASSEMBLER_ARM_HPP
 
 #include "code/relocInfo.hpp"
 #include "code/relocInfo_ext.hpp"
@@ -1097,4 +1097,4 @@
 };
 
 
-#endif // CPU_ARM_VM_MACROASSEMBLER_ARM_HPP
+#endif // CPU_ARM_MACROASSEMBLER_ARM_HPP
--- a/src/hotspot/cpu/arm/macroAssembler_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/macroAssembler_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_MACROASSEMBLER_ARM_INLINE_HPP
-#define CPU_ARM_VM_MACROASSEMBLER_ARM_INLINE_HPP
+#ifndef CPU_ARM_MACROASSEMBLER_ARM_INLINE_HPP
+#define CPU_ARM_MACROASSEMBLER_ARM_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
@@ -63,4 +63,4 @@
   }
 }
 
-#endif // CPU_ARM_VM_MACROASSEMBLER_ARM_INLINE_HPP
+#endif // CPU_ARM_MACROASSEMBLER_ARM_INLINE_HPP
--- a/src/hotspot/cpu/arm/nativeInst_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/nativeInst_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_NATIVEINST_ARM_HPP
-#define CPU_ARM_VM_NATIVEINST_ARM_HPP
+#ifndef CPU_ARM_NATIVEINST_ARM_HPP
+#define CPU_ARM_NATIVEINST_ARM_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "runtime/icache.hpp"
@@ -33,4 +33,4 @@
 #include "nativeInst_arm_32.hpp"
 
 
-#endif // CPU_ARM_VM_NATIVEINST_ARM_HPP
+#endif // CPU_ARM_NATIVEINST_ARM_HPP
--- a/src/hotspot/cpu/arm/nativeInst_arm_32.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/nativeInst_arm_32.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_NATIVEINST_ARM_32_HPP
-#define CPU_ARM_VM_NATIVEINST_ARM_32_HPP
+#ifndef CPU_ARM_NATIVEINST_ARM_32_HPP
+#define CPU_ARM_NATIVEINST_ARM_32_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "code/codeCache.hpp"
@@ -429,4 +429,4 @@
   return (NativeCall *) rawNativeCall_before(return_address);
 }
 
-#endif // CPU_ARM_VM_NATIVEINST_ARM_32_HPP
+#endif // CPU_ARM_NATIVEINST_ARM_32_HPP
--- a/src/hotspot/cpu/arm/registerMap_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/registerMap_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_REGISTERMAP_ARM_HPP
-#define CPU_ARM_VM_REGISTERMAP_ARM_HPP
+#ifndef CPU_ARM_REGISTERMAP_ARM_HPP
+#define CPU_ARM_REGISTERMAP_ARM_HPP
 
 // machine-dependent implemention for register maps
   friend class frame;
@@ -41,4 +41,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_ARM_VM_REGISTERMAP_ARM_HPP
+#endif // CPU_ARM_REGISTERMAP_ARM_HPP
--- a/src/hotspot/cpu/arm/register_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/register_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_REGISTER_ARM_HPP
-#define CPU_ARM_VM_REGISTER_ARM_HPP
+#ifndef CPU_ARM_REGISTER_ARM_HPP
+#define CPU_ARM_REGISTER_ARM_HPP
 
 #include "asm/register.hpp"
 #include "vm_version_arm.hpp"
@@ -437,4 +437,4 @@
 #define j_rarg3  c_rarg3
 
 
-#endif // CPU_ARM_VM_REGISTER_ARM_HPP
+#endif // CPU_ARM_REGISTER_ARM_HPP
--- a/src/hotspot/cpu/arm/relocInfo_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/relocInfo_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_RELOCINFO_ARM_HPP
-#define CPU_ARM_VM_RELOCINFO_ARM_HPP
+#ifndef CPU_ARM_RELOCINFO_ARM_HPP
+#define CPU_ARM_RELOCINFO_ARM_HPP
 
  private:
 
@@ -38,4 +38,4 @@
   // listed in the oop section.
   static bool mustIterateImmediateOopsInCode() { return false; }
 
-#endif // CPU_ARM_VM_RELOCINFO_ARM_HPP
+#endif // CPU_ARM_RELOCINFO_ARM_HPP
--- a/src/hotspot/cpu/arm/stubRoutines_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/stubRoutines_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_STUBROUTINES_ARM_HPP
-#define CPU_ARM_VM_STUBROUTINES_ARM_HPP
+#ifndef CPU_ARM_STUBROUTINES_ARM_HPP
+#define CPU_ARM_STUBROUTINES_ARM_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to
@@ -60,4 +60,4 @@
   static address atomic_store_long_entry()                 { return _atomic_store_long_entry; }
 
 
-#endif // CPU_ARM_VM_STUBROUTINES_ARM_HPP
+#endif // CPU_ARM_STUBROUTINES_ARM_HPP
--- a/src/hotspot/cpu/arm/templateTable_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/templateTable_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_TEMPLATETABLE_ARM_HPP
-#define CPU_ARM_VM_TEMPLATETABLE_ARM_HPP
+#ifndef CPU_ARM_TEMPLATETABLE_ARM_HPP
+#define CPU_ARM_TEMPLATETABLE_ARM_HPP
 
   static void prepare_invoke(int byte_no,
                              Register method,         // linked method (or i-klass)
@@ -59,4 +59,4 @@
 
   static void jvmti_post_fast_field_mod(TosState state);
 
-#endif // CPU_ARM_VM_TEMPLATETABLE_ARM_HPP
+#endif // CPU_ARM_TEMPLATETABLE_ARM_HPP
--- a/src/hotspot/cpu/arm/vmStructs_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/vmStructs_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_VMSTRUCTS_ARM_HPP
-#define CPU_ARM_VM_VMSTRUCTS_ARM_HPP
+#ifndef CPU_ARM_VMSTRUCTS_ARM_HPP
+#define CPU_ARM_VMSTRUCTS_ARM_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -45,4 +45,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_ARM_VM_VMSTRUCTS_ARM_HPP
+#endif // CPU_ARM_VMSTRUCTS_ARM_HPP
--- a/src/hotspot/cpu/arm/vm_version_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/vm_version_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_VM_VERSION_ARM_HPP
-#define CPU_ARM_VM_VM_VERSION_ARM_HPP
+#ifndef CPU_ARM_VM_VERSION_ARM_HPP
+#define CPU_ARM_VM_VERSION_ARM_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -106,4 +106,4 @@
 
 };
 
-#endif // CPU_ARM_VM_VM_VERSION_ARM_HPP
+#endif // CPU_ARM_VM_VERSION_ARM_HPP
--- a/src/hotspot/cpu/arm/vm_version_ext_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/vm_version_ext_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP
-#define CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP
+#ifndef CPU_ARM_VM_VERSION_EXT_ARM_HPP
+#define CPU_ARM_VM_VERSION_EXT_ARM_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_arm.hpp"
@@ -51,4 +51,4 @@
 
 };
 
-#endif // CPU_ARM_VM_VM_VERSION_EXT_ARM_HPP
+#endif // CPU_ARM_VM_VERSION_EXT_ARM_HPP
--- a/src/hotspot/cpu/arm/vmreg_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/vmreg_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_VMREG_ARM_HPP
-#define CPU_ARM_VM_VMREG_ARM_HPP
+#ifndef CPU_ARM_VMREG_ARM_HPP
+#define CPU_ARM_VMREG_ARM_HPP
 
   inline bool is_Register() {
     return (unsigned int) value() < (unsigned int) ConcreteRegisterImpl::max_gpr;
@@ -55,4 +55,4 @@
     }
   }
 
-#endif // CPU_ARM_VM_VMREG_ARM_HPP
+#endif // CPU_ARM_VMREG_ARM_HPP
--- a/src/hotspot/cpu/arm/vmreg_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/arm/vmreg_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ARM_VM_VMREG_ARM_INLINE_HPP
-#define CPU_ARM_VM_VMREG_ARM_INLINE_HPP
+#ifndef CPU_ARM_VMREG_ARM_INLINE_HPP
+#define CPU_ARM_VMREG_ARM_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   return VMRegImpl::as_VMReg(encoding() << ConcreteRegisterImpl::log_vmregs_per_gpr);
@@ -32,4 +32,4 @@
 inline VMReg FloatRegisterImpl::as_VMReg() {
   return VMRegImpl::as_VMReg((encoding() << ConcreteRegisterImpl::log_vmregs_per_fpr) + ConcreteRegisterImpl::max_gpr);
 }
-#endif // CPU_ARM_VM_VMREG_ARM_INLINE_HPP
+#endif // CPU_ARM_VMREG_ARM_INLINE_HPP
--- a/src/hotspot/cpu/ppc/assembler_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/assembler_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_ASSEMBLER_PPC_HPP
-#define CPU_PPC_VM_ASSEMBLER_PPC_HPP
+#ifndef CPU_PPC_ASSEMBLER_PPC_HPP
+#define CPU_PPC_ASSEMBLER_PPC_HPP
 
 #include "asm/register.hpp"
 
@@ -2450,4 +2450,4 @@
 };
 
 
-#endif // CPU_PPC_VM_ASSEMBLER_PPC_HPP
+#endif // CPU_PPC_ASSEMBLER_PPC_HPP
--- a/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_ASSEMBLER_PPC_INLINE_HPP
-#define CPU_PPC_VM_ASSEMBLER_PPC_INLINE_HPP
+#ifndef CPU_PPC_ASSEMBLER_PPC_INLINE_HPP
+#define CPU_PPC_ASSEMBLER_PPC_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
@@ -1127,4 +1127,4 @@
   ori(d, d, i & 0xFFFF);
 }
 
-#endif // CPU_PPC_VM_ASSEMBLER_PPC_INLINE_HPP
+#endif // CPU_PPC_ASSEMBLER_PPC_INLINE_HPP
--- a/src/hotspot/cpu/ppc/bytes_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/bytes_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_BYTES_PPC_HPP
-#define CPU_PPC_VM_BYTES_PPC_HPP
+#ifndef CPU_PPC_BYTES_PPC_HPP
+#define CPU_PPC_BYTES_PPC_HPP
 
 #include "memory/allocation.hpp"
 
@@ -268,4 +268,4 @@
 
 #include OS_CPU_HEADER_INLINE(bytes)
 
-#endif // CPU_PPC_VM_BYTES_PPC_HPP
+#endif // CPU_PPC_BYTES_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_Defs_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_Defs_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_DEFS_PPC_HPP
-#define CPU_PPC_VM_C1_DEFS_PPC_HPP
+#ifndef CPU_PPC_C1_DEFS_PPC_HPP
+#define CPU_PPC_C1_DEFS_PPC_HPP
 
 // Native word offsets from memory address.
 enum {
@@ -73,4 +73,4 @@
   pd_float_saved_as_double = true
 };
 
-#endif // CPU_PPC_VM_C1_DEFS_PPC_HPP
+#endif // CPU_PPC_C1_DEFS_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_FpuStackSim_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_FpuStackSim_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,10 +23,10 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_FPUSTACKSIM_PPC_HPP
-#define CPU_PPC_VM_C1_FPUSTACKSIM_PPC_HPP
+#ifndef CPU_PPC_C1_FPUSTACKSIM_PPC_HPP
+#define CPU_PPC_C1_FPUSTACKSIM_PPC_HPP
 
 // No FPU stack on PPC.
 class FpuStackSim;
 
-#endif // CPU_PPC_VM_C1_FPUSTACKSIM_PPC_HPP
+#endif // CPU_PPC_C1_FPUSTACKSIM_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_FrameMap_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_FrameMap_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_FRAMEMAP_PPC_HPP
-#define CPU_PPC_VM_C1_FRAMEMAP_PPC_HPP
+#ifndef CPU_PPC_C1_FRAMEMAP_PPC_HPP
+#define CPU_PPC_C1_FRAMEMAP_PPC_HPP
 
  public:
 
@@ -199,4 +199,4 @@
   // R29: global TOC
   static bool reg_needs_save(Register r) { return r != R0 && r != R1 && r != R13 && r != R16 && r != R29; }
 
-#endif // CPU_PPC_VM_C1_FRAMEMAP_PPC_HPP
+#endif // CPU_PPC_C1_FRAMEMAP_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_LIRASSEMBLER_PPC_HPP
-#define CPU_PPC_VM_C1_LIRASSEMBLER_PPC_HPP
+#ifndef CPU_PPC_C1_LIRASSEMBLER_PPC_HPP
+#define CPU_PPC_C1_LIRASSEMBLER_PPC_HPP
 
  private:
 
@@ -77,4 +77,4 @@
     }
   }
 
-#endif // CPU_PPC_VM_C1_LIRASSEMBLER_PPC_HPP
+#endif // CPU_PPC_C1_LIRASSEMBLER_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_LinearScan_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_LinearScan_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_LINEARSCAN_PPC_HPP
-#define CPU_PPC_VM_C1_LINEARSCAN_PPC_HPP
+#ifndef CPU_PPC_C1_LINEARSCAN_PPC_HPP
+#define CPU_PPC_C1_LINEARSCAN_PPC_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
   assert(FrameMap::R0_opr->cpu_regnr() == FrameMap::last_cpu_reg() + 1, "wrong assumption below");
@@ -70,4 +70,4 @@
   return false;
 }
 
-#endif // CPU_PPC_VM_C1_LINEARSCAN_PPC_HPP
+#endif // CPU_PPC_C1_LINEARSCAN_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_MACROASSEMBLER_PPC_HPP
-#define CPU_PPC_VM_C1_MACROASSEMBLER_PPC_HPP
+#ifndef CPU_PPC_C1_MACROASSEMBLER_PPC_HPP
+#define CPU_PPC_C1_MACROASSEMBLER_PPC_HPP
 
   void pd_init() { /* nothing to do */ }
 
@@ -90,4 +90,4 @@
 
   address call_c_with_frame_resize(address dest, int frame_resize);
 
-#endif // CPU_PPC_VM_C1_MACROASSEMBLER_PPC_HPP
+#endif // CPU_PPC_C1_MACROASSEMBLER_PPC_HPP
--- a/src/hotspot/cpu/ppc/c1_globals_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c1_globals_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C1_GLOBALS_PPC_HPP
-#define CPU_PPC_VM_C1_GLOBALS_PPC_HPP
+#ifndef CPU_PPC_C1_GLOBALS_PPC_HPP
+#define CPU_PPC_C1_GLOBALS_PPC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -65,4 +65,4 @@
 define_pd_global(bool,     CSEArrayLength,               true);
 define_pd_global(bool,     TwoOperandLIRForm,            false);
 
-#endif // CPU_PPC_VM_C1_GLOBALS_PPC_HPP
+#endif // CPU_PPC_C1_GLOBALS_PPC_HPP
--- a/src/hotspot/cpu/ppc/c2_globals_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/c2_globals_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_C2_GLOBALS_PPC_HPP
-#define CPU_PPC_VM_C2_GLOBALS_PPC_HPP
+#ifndef CPU_PPC_C2_GLOBALS_PPC_HPP
+#define CPU_PPC_C2_GLOBALS_PPC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -101,4 +101,4 @@
 // Ergonomics related flags
 define_pd_global(bool,     NeverActAsServerClassMachine, false);
 
-#endif // CPU_PPC_VM_C2_GLOBALS_PPC_HPP
+#endif // CPU_PPC_C2_GLOBALS_PPC_HPP
--- a/src/hotspot/cpu/ppc/codeBuffer_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/codeBuffer_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_CODEBUFFER_PPC_HPP
-#define CPU_PPC_VM_CODEBUFFER_PPC_HPP
+#ifndef CPU_PPC_CODEBUFFER_PPC_HPP
+#define CPU_PPC_CODEBUFFER_PPC_HPP
 
 private:
   void pd_initialize() {}
@@ -32,4 +32,4 @@
 public:
   void flush_bundle(bool start_new_bundle) {}
 
-#endif // CPU_PPC_VM_CODEBUFFER_PPC_HPP
+#endif // CPU_PPC_CODEBUFFER_PPC_HPP
--- a/src/hotspot/cpu/ppc/copy_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/copy_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_COPY_PPC_HPP
-#define CPU_PPC_VM_COPY_PPC_HPP
+#ifndef CPU_PPC_COPY_PPC_HPP
+#define CPU_PPC_COPY_PPC_HPP
 
 #ifndef PPC64
 #error "copy currently only implemented for PPC64"
@@ -168,4 +168,4 @@
   (void)memset(to, 0, count);
 }
 
-#endif // CPU_PPC_VM_COPY_PPC_HPP
+#endif // CPU_PPC_COPY_PPC_HPP
--- a/src/hotspot/cpu/ppc/depChecker_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/depChecker_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,9 +23,9 @@
  *
  */
 
-#ifndef CPU_PPC_VM_DEPCHECKER_PPC_HPP
-#define CPU_PPC_VM_DEPCHECKER_PPC_HPP
+#ifndef CPU_PPC_DEPCHECKER_PPC_HPP
+#define CPU_PPC_DEPCHECKER_PPC_HPP
 
 // Nothing to do on ppc64
 
-#endif // CPU_PPC_VM_DEPCHECKER_PPC_HPP
+#endif // CPU_PPC_DEPCHECKER_PPC_HPP
--- a/src/hotspot/cpu/ppc/disassembler_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/disassembler_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_DISASSEMBLER_PPC_HPP
-#define CPU_PPC_VM_DISASSEMBLER_PPC_HPP
+#ifndef CPU_PPC_DISASSEMBLER_PPC_HPP
+#define CPU_PPC_DISASSEMBLER_PPC_HPP
 
   static int pd_instruction_alignment() {
     return sizeof(int);
@@ -34,4 +34,4 @@
     return "ppc64";
   }
 
-#endif // CPU_PPC_VM_DISASSEMBLER_PPC_HPP
+#endif // CPU_PPC_DISASSEMBLER_PPC_HPP
--- a/src/hotspot/cpu/ppc/frame_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/frame_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_FRAME_PPC_HPP
-#define CPU_PPC_VM_FRAME_PPC_HPP
+#ifndef CPU_PPC_FRAME_PPC_HPP
+#define CPU_PPC_FRAME_PPC_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -427,4 +427,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_PPC_VM_FRAME_PPC_HPP
+#endif // CPU_PPC_FRAME_PPC_HPP
--- a/src/hotspot/cpu/ppc/frame_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/frame_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_FRAME_PPC_INLINE_HPP
-#define CPU_PPC_VM_FRAME_PPC_INLINE_HPP
+#ifndef CPU_PPC_FRAME_PPC_INLINE_HPP
+#define CPU_PPC_FRAME_PPC_INLINE_HPP
 
 #include "code/codeCache.hpp"
 #include "code/vmreg.inline.hpp"
@@ -220,4 +220,4 @@
   *((oop*)map->location(R3->as_VMReg())) = obj;
 }
 
-#endif // CPU_PPC_VM_FRAME_PPC_INLINE_HPP
+#endif // CPU_PPC_FRAME_PPC_INLINE_HPP
--- a/src/hotspot/cpu/ppc/globalDefinitions_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/globalDefinitions_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_GLOBALDEFINITIONS_PPC_HPP
-#define CPU_PPC_VM_GLOBALDEFINITIONS_PPC_HPP
+#ifndef CPU_PPC_GLOBALDEFINITIONS_PPC_HPP
+#define CPU_PPC_GLOBALDEFINITIONS_PPC_HPP
 
 #ifdef CC_INTERP
 #error "CC_INTERP is no longer supported. Removed in change 8145117."
@@ -60,4 +60,4 @@
 // Define the condition to use this -XX flag.
 #define USE_POLL_BIT_ONLY UseSIGTRAP
 
-#endif // CPU_PPC_VM_GLOBALDEFINITIONS_PPC_HPP
+#endif // CPU_PPC_GLOBALDEFINITIONS_PPC_HPP
--- a/src/hotspot/cpu/ppc/globals_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/globals_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_GLOBALS_PPC_HPP
-#define CPU_PPC_VM_GLOBALS_PPC_HPP
+#ifndef CPU_PPC_GLOBALS_PPC_HPP
+#define CPU_PPC_GLOBALS_PPC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -207,4 +207,4 @@
   experimental(bool, UseRTMXendForLockBusy, true,                           \
           "Use RTM Xend instead of Xabort when lock busy")                  \
 
-#endif // CPU_PPC_VM_GLOBALS_PPC_HPP
+#endif // CPU_PPC_GLOBALS_PPC_HPP
--- a/src/hotspot/cpu/ppc/icache_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/icache_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_ICACHE_PPC_HPP
-#define CPU_PPC_VM_ICACHE_PPC_HPP
+#ifndef CPU_PPC_ICACHE_PPC_HPP
+#define CPU_PPC_ICACHE_PPC_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM modifies
 // code, part of the processor instruction cache potentially has to be flushed.
@@ -49,4 +49,4 @@
   }
 };
 
-#endif // CPU_PPC_VM_ICACHE_PPC_HPP
+#endif // CPU_PPC_ICACHE_PPC_HPP
--- a/src/hotspot/cpu/ppc/interp_masm_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/interp_masm_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2017 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_INTERP_MASM_PPC_HPP
-#define CPU_PPC_VM_INTERP_MASM_PPC_HPP
+#ifndef CPU_PPC_INTERP_MASM_PPC_HPP
+#define CPU_PPC_INTERP_MASM_PPC_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -266,4 +266,4 @@
                           NotifyMethodExitMode mode, bool check_exceptions);
 };
 
-#endif // CPU_PPC_VM_INTERP_MASM_PPC_HPP
+#endif // CPU_PPC_INTERP_MASM_PPC_HPP
--- a/src/hotspot/cpu/ppc/interpreterRT_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/interpreterRT_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2014 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_INTERPRETERRT_PPC_HPP
-#define CPU_PPC_VM_INTERPRETERRT_PPC_HPP
+#ifndef CPU_PPC_INTERPRETERRT_PPC_HPP
+#define CPU_PPC_INTERPRETERRT_PPC_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -57,4 +57,4 @@
 // A function to get the signature.
 static address get_signature(JavaThread* thread, Method* method);
 
-#endif // CPU_PPC_VM_INTERPRETERRT_PPC_HPP
+#endif // CPU_PPC_INTERPRETERRT_PPC_HPP
--- a/src/hotspot/cpu/ppc/javaFrameAnchor_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/javaFrameAnchor_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2014 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_JAVAFRAMEANCHOR_PPC_HPP
-#define CPU_PPC_VM_JAVAFRAMEANCHOR_PPC_HPP
+#ifndef CPU_PPC_JAVAFRAMEANCHOR_PPC_HPP
+#define CPU_PPC_JAVAFRAMEANCHOR_PPC_HPP
 
 public:
   // Each arch must define reset, save, restore
@@ -75,4 +75,4 @@
 
   void set_last_Java_sp(intptr_t* sp) { OrderAccess::release(); _last_Java_sp = sp; }
 
-#endif // CPU_PPC_VM_JAVAFRAMEANCHOR_PPC_HPP
+#endif // CPU_PPC_JAVAFRAMEANCHOR_PPC_HPP
--- a/src/hotspot/cpu/ppc/jniTypes_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/jniTypes_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_JNITYPES_PPC_HPP
-#define CPU_PPC_VM_JNITYPES_PPC_HPP
+#ifndef CPU_PPC_JNITYPES_PPC_HPP
+#define CPU_PPC_JNITYPES_PPC_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -107,4 +107,4 @@
   static inline jdouble get_double(intptr_t *from) { return *(jdouble *)(from + 1); }
 };
 
-#endif // CPU_PPC_VM_JNITYPES_PPC_HPP
+#endif // CPU_PPC_JNITYPES_PPC_HPP
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, SAP SE. 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
@@ -3974,7 +3974,7 @@
  * Emits code to update CRC-32 with a 4-byte value according to constants in table
  * Implementation according to jdk/src/share/native/java/util/zip/zlib-1.2.8/crc32.c
  */
-// A not on the lookup table address(es):
+// A note on the lookup table address(es):
 // The lookup table consists of two sets of four columns each.
 // The columns {0..3} are used for little-endian machines.
 // The columns {4..7} are used for big-endian machines.
@@ -4147,57 +4147,50 @@
  * @param len             register containing number of bytes
  * @param table           register pointing to CRC table
  * @param constants       register pointing to CRC table for 128-bit aligned memory
- * @param barretConstants register pointing to table for barrett reduction
- * @param t0-t4           temp registers
+ * @param t0-t5           temp registers
  */
-void MacroAssembler::kernel_crc32_1word_vpmsum(Register crc, Register buf, Register len, Register table,
-                                               Register constants, Register barretConstants,
-                                               Register t0, Register t1, Register t2, Register t3, Register t4,
-                                               bool invertCRC) {
+void MacroAssembler::kernel_crc32_vpmsum(Register crc, Register buf, Register len, Register table,
+                                         Register constants, Register t0, Register t1, Register t2,
+                                         Register t3, Register t4, Register t5, bool invertCRC) {
   assert_different_registers(crc, buf, len, table);
 
-  Label L_alignedHead, L_tail;
-
-  BLOCK_COMMENT("kernel_crc32_1word_vpmsum {");
-
-  // 1. ~c
+  Label L_tail;
+
+  BLOCK_COMMENT("kernel_crc32_vpmsum {");
+
   if (invertCRC) {
     nand(crc, crc, crc);                      // 1s complement of crc
   }
 
-  // 2. use kernel_crc32_1word for short len
+  // Enforce 32 bit.
   clrldi(len, len, 32);
-  cmpdi(CCR0, len, 512);
-  blt(CCR0, L_tail);
-
-  // 3. calculate from 0 to first aligned address
-  const int alignment = 16;
+
+  // Align if we have enough bytes for the fast version.
+  const int alignment = 16,
+            threshold = 32;
   Register prealign = t0;
 
-  andi_(prealign, buf, alignment - 1);
-  beq(CCR0, L_alignedHead);
-  subfic(prealign, prealign, alignment);
+  neg(prealign, buf);
+  addi(t1, len, -threshold);
+  andi(prealign, prealign, alignment - 1);
+  cmpw(CCR0, t1, prealign);
+  blt(CCR0, L_tail); // len - prealign < threshold?
 
   subf(len, prealign, len);
   update_byteLoop_crc32(crc, buf, prealign, table, t2, false);
 
-  // 4. calculate from first aligned address as far as possible
-  BIND(L_alignedHead);
-  kernel_crc32_1word_aligned(crc, buf, len, constants, barretConstants, t0, t1, t2, t3, t4);
-
-  // 5. remaining bytes
+  // Calculate from first aligned address as far as possible.
+  kernel_crc32_vpmsum_aligned(crc, buf, len, constants, t0, t1, t2, t3, t4, t5);
+
+  // Remaining bytes.
   BIND(L_tail);
-  Register tc0 = t4;
-  Register tc1 = constants;
-  Register tc2 = barretConstants;
-  kernel_crc32_1word(crc, buf, len, table, t0, t1, t2, t3, tc0, tc1, tc2, table, false);
-
-  // 6. ~c
+  update_byteLoop_crc32(crc, buf, len, table, t2, false);
+
   if (invertCRC) {
     nand(crc, crc, crc);                      // 1s complement of crc
   }
 
-  BLOCK_COMMENT("} kernel_crc32_1word_vpmsum");
+  BLOCK_COMMENT("} kernel_crc32_vpmsum");
 }
 
 /**
@@ -4205,13 +4198,10 @@
  * @param buf             register pointing to input byte buffer (byte*)
  * @param len             register containing number of bytes (will get updated to remaining bytes)
  * @param constants       register pointing to CRC table for 128-bit aligned memory
- * @param barretConstants register pointing to table for barrett reduction
- * @param t0-t4           temp registers
- * Precondition: len should be >= 512. Otherwise, nothing will be done.
+ * @param t0-t5           temp registers
  */
-void MacroAssembler::kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
-    Register constants, Register barretConstants,
-    Register t0, Register t1, Register t2, Register t3, Register t4) {
+void MacroAssembler::kernel_crc32_vpmsum_aligned(Register crc, Register buf, Register len,
+    Register constants, Register t0, Register t1, Register t2, Register t3, Register t4, Register t5) {
 
   // Save non-volatile vector registers (frameless).
   Register offset = t1;
@@ -4228,7 +4218,6 @@
   offsetInt -= 8; std(R14, offsetInt, R1_SP);
   offsetInt -= 8; std(R15, offsetInt, R1_SP);
   offsetInt -= 8; std(R16, offsetInt, R1_SP);
-  offsetInt -= 8; std(R17, offsetInt, R1_SP);
 
   // Implementation uses an inner loop which uses between 256 and 16 * unroll_factor
   // bytes per iteration. The basic scheme is:
@@ -4239,14 +4228,17 @@
   // Outer loop performs the CRC shifts needed to combine the unroll_factor2 vectors.
 
   // Using 16 * unroll_factor / unroll_factor_2 bytes for constants.
-  const int unroll_factor = 2048;
-  const int unroll_factor2 = 8;
+  const int unroll_factor = CRC32_UNROLL_FACTOR,
+            unroll_factor2 = CRC32_UNROLL_FACTOR2;
+
+  const int outer_consts_size = (unroll_factor2 - 1) * 16,
+            inner_consts_size = (unroll_factor / unroll_factor2) * 16;
 
   // Support registers.
-  Register offs[] = { noreg, t0, t1, t2, t3, t4, crc /* will live in VCRC */, R14 };
-  Register num_bytes = R15,
-           loop_count = R16,
-           cur_const = R17;
+  Register offs[] = { noreg, t0, t1, t2, t3, t4, t5, crc /* will live in VCRC */ };
+  Register num_bytes = R14,
+           loop_count = R15,
+           cur_const = R16;
   // Constant array for outer loop: unroll_factor2 - 1 registers,
   // Constant array for inner loop: unroll_factor / unroll_factor2 registers.
   VectorRegister consts0[] = { VR16, VR17, VR18, VR19, VR20, VR21, VR22 },
@@ -4268,7 +4260,7 @@
     mtdscr(t0);
   }
 
-  mtvrwz(VCRC, crc); // crc lives lives in VCRC, now
+  mtvrwz(VCRC, crc); // crc lives in VCRC, now
 
   for (int i = 1; i < unroll_factor2; ++i) {
     li(offs[i], 16 * i);
@@ -4279,10 +4271,8 @@
   for (int i = 1; i < unroll_factor2 - 1; ++i) {
     lvx(consts0[i], offs[i], constants);
   }
-  addi(constants, constants, (unroll_factor2 - 1) * 16);
 
   load_const_optimized(num_bytes, 16 * unroll_factor);
-  load_const_optimized(loop_count, unroll_factor / (2 * unroll_factor2) - 1); // One double-iteration peeled off.
 
   // Reuse data registers outside of the loop.
   VectorRegister Vtmp = data1[0];
@@ -4310,13 +4300,15 @@
   cmpd(CCR0, len, num_bytes);
   blt(CCR0, L_last);
 
+  addi(cur_const, constants, outer_consts_size); // Point to consts for inner loop
+  load_const_optimized(loop_count, unroll_factor / (2 * unroll_factor2) - 1); // One double-iteration peeled off.
+
   // ********** Main loop start **********
   align(32);
   bind(L_outer_loop);
 
   // Begin of unrolled first iteration (no xor).
   lvx(data1[0], buf);
-  mr(cur_const, constants);
   for (int i = 1; i < unroll_factor2 / 2; ++i) {
     lvx(data1[i], offs[i], buf);
   }
@@ -4369,6 +4361,8 @@
   }
   bdnz(L_inner_loop);
 
+  addi(cur_const, constants, outer_consts_size); // Reset
+
   // Tail of last iteration (no loads).
   for (int i = 0; i < unroll_factor2 / 2; ++i) {
     BE_swap_bytes(data1[i + unroll_factor2 / 2]);
@@ -4397,15 +4391,15 @@
   // Last chance with lower num_bytes.
   bind(L_last);
   srdi(loop_count, len, exact_log2(16 * 2 * unroll_factor2)); // Use double-iterations.
-  add_const_optimized(constants, constants, 16 * (unroll_factor / unroll_factor2)); // Point behind last one.
+  // Point behind last const for inner loop.
+  add_const_optimized(cur_const, constants, outer_consts_size + inner_consts_size);
   sldi(R0, loop_count, exact_log2(16 * 2)); // Bytes of constants to be used.
   clrrdi(num_bytes, len, exact_log2(16 * 2 * unroll_factor2));
-  subf(constants, R0, constants); // Point to constant to be used first.
+  subf(cur_const, R0, cur_const); // Point to constant to be used first.
 
   addic_(loop_count, loop_count, -1); // One double-iteration peeled off.
   bgt(CCR0, L_outer_loop);
   // ********** Main loop end **********
-#undef BE_swap_bytes
 
   // Restore DSCR pre-fetch value.
   if (VM_Version::has_mfdscr()) {
@@ -4413,13 +4407,45 @@
     mtdscr(t0);
   }
 
+  // ********** Simple loop for remaining 16 byte blocks **********
+  {
+    Label L_loop, L_done;
+
+    srdi_(t0, len, 4); // 16 bytes per iteration
+    clrldi(len, len, 64-4);
+    beq(CCR0, L_done);
+
+    // Point to const (same as last const for inner loop).
+    add_const_optimized(cur_const, constants, outer_consts_size + inner_consts_size - 16);
+    mtctr(t0);
+    lvx(Vtmp2, cur_const);
+
+    align(32);
+    bind(L_loop);
+
+    lvx(Vtmp, buf);
+    addi(buf, buf, 16);
+    vpermxor(VCRC, VCRC, VCRC, Vc); // xor both halves to 64 bit result.
+    BE_swap_bytes(Vtmp);
+    vxor(VCRC, VCRC, Vtmp);
+    vpmsumw(VCRC, VCRC, Vtmp2);
+    bdnz(L_loop);
+
+    bind(L_done);
+  }
+  // ********** Simple loop end **********
+#undef BE_swap_bytes
+
+  // Point to Barrett constants
+  add_const_optimized(cur_const, constants, outer_consts_size + inner_consts_size);
+
   vspltisb(zeroes, 0);
 
   // Combine to 64 bit result.
   vpermxor(VCRC, VCRC, VCRC, Vc); // xor both halves to 64 bit result.
 
   // Reduce to 32 bit CRC: Remainder by multiply-high.
-  lvx(Vtmp, barretConstants);
+  lvx(Vtmp, cur_const);
   vsldoi(Vtmp2, zeroes, VCRC, 12);  // Extract high 32 bit.
   vpmsumd(Vtmp2, Vtmp2, Vtmp);      // Multiply by inverse long poly.
   vsldoi(Vtmp2, zeroes, Vtmp2, 12); // Extract high 32 bit.
@@ -4445,7 +4471,20 @@
   offsetInt -= 8;  ld(R14, offsetInt, R1_SP);
   offsetInt -= 8;  ld(R15, offsetInt, R1_SP);
   offsetInt -= 8;  ld(R16, offsetInt, R1_SP);
-  offsetInt -= 8;  ld(R17, offsetInt, R1_SP);
+}
+
+void MacroAssembler::crc32(Register crc, Register buf, Register len, Register t0, Register t1, Register t2,
+                           Register t3, Register t4, Register t5, Register t6, Register t7, bool is_crc32c) {
+  load_const_optimized(t0, is_crc32c ? StubRoutines::crc32c_table_addr()
+                                     : StubRoutines::crc_table_addr()   , R0);
+
+  if (VM_Version::has_vpmsumb()) {
+    load_const_optimized(t1, is_crc32c ? StubRoutines::ppc64::crc32c_constants()
+                                       : StubRoutines::ppc64::crc_constants()   , R0);
+    kernel_crc32_vpmsum(crc, buf, len, t0, t1, t2, t3, t4, t5, t6, t7, !is_crc32c);
+  } else {
+    kernel_crc32_1word(crc, buf, len, t0, t1, t2, t3, t4, t5, t6, t7, t0, !is_crc32c);
+  }
 }
 
 void MacroAssembler::kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp, bool invertCRC) {
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, SAP SE. 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
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_MACROASSEMBLER_PPC_HPP
-#define CPU_PPC_VM_MACROASSEMBLER_PPC_HPP
+#ifndef CPU_PPC_MACROASSEMBLER_PPC_HPP
+#define CPU_PPC_MACROASSEMBLER_PPC_HPP
 
 #include "asm/assembler.hpp"
 #include "oops/accessDecorators.hpp"
@@ -842,13 +842,14 @@
   void kernel_crc32_1byte(Register crc, Register buf, Register len, Register table,
                           Register t0,  Register t1,  Register t2,  Register t3,
                           bool invertCRC);
-  void kernel_crc32_1word_vpmsum(Register crc, Register buf, Register len, Register table,
-                          Register constants, Register barretConstants,
-                          Register t0,  Register t1, Register t2, Register t3, Register t4,
+  void kernel_crc32_vpmsum(Register crc, Register buf, Register len, Register table, Register constants,
+                          Register t0, Register t1, Register t2, Register t3, Register t4, Register t5,
                           bool invertCRC);
-  void kernel_crc32_1word_aligned(Register crc, Register buf, Register len,
-                          Register constants, Register barretConstants,
-                          Register t0, Register t1, Register t2, Register t3, Register t4);
+  void kernel_crc32_vpmsum_aligned(Register crc, Register buf, Register len, Register constants,
+                                   Register t0, Register t1, Register t2, Register t3, Register t4, Register t5);
+  // Version which internally decides what to use.
+  void crc32(Register crc, Register buf, Register len, Register t0, Register t1, Register t2,
+             Register t3, Register t4, Register t5, Register t6, Register t7, bool is_crc32c);
 
   void kernel_crc32_singleByte(Register crc, Register buf, Register len, Register table, Register tmp,
                                bool invertCRC);
@@ -970,4 +971,4 @@
    ~SkipIfEqualZero();
 };
 
-#endif // CPU_PPC_VM_MACROASSEMBLER_PPC_HPP
+#endif // CPU_PPC_MACROASSEMBLER_PPC_HPP
--- a/src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_MACROASSEMBLER_PPC_INLINE_HPP
-#define CPU_PPC_VM_MACROASSEMBLER_PPC_INLINE_HPP
+#ifndef CPU_PPC_MACROASSEMBLER_PPC_INLINE_HPP
+#define CPU_PPC_MACROASSEMBLER_PPC_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/macroAssembler.hpp"
@@ -480,4 +480,4 @@
 inline address MacroAssembler::function_entry() { return emit_fd(); }
 #endif
 
-#endif // CPU_PPC_VM_MACROASSEMBLER_PPC_INLINE_HPP
+#endif // CPU_PPC_MACROASSEMBLER_PPC_INLINE_HPP
--- a/src/hotspot/cpu/ppc/nativeInst_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/nativeInst_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_NATIVEINST_PPC_HPP
-#define CPU_PPC_VM_NATIVEINST_PPC_HPP
+#ifndef CPU_PPC_NATIVEINST_PPC_HPP
+#define CPU_PPC_NATIVEINST_PPC_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "runtime/icache.hpp"
@@ -503,4 +503,4 @@
   }
 };
 
-#endif // CPU_PPC_VM_NATIVEINST_PPC_HPP
+#endif // CPU_PPC_NATIVEINST_PPC_HPP
--- a/src/hotspot/cpu/ppc/registerMap_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/registerMap_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_REGISTERMAP_PPC_HPP
-#define CPU_PPC_VM_REGISTERMAP_PPC_HPP
+#ifndef CPU_PPC_REGISTERMAP_PPC_HPP
+#define CPU_PPC_REGISTERMAP_PPC_HPP
 
 // machine-dependent implemention for register maps
   friend class frame;
@@ -42,4 +42,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_PPC_VM_REGISTERMAP_PPC_HPP
+#endif // CPU_PPC_REGISTERMAP_PPC_HPP
--- a/src/hotspot/cpu/ppc/register_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/register_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_REGISTER_PPC_HPP
-#define CPU_PPC_VM_REGISTER_PPC_HPP
+#ifndef CPU_PPC_REGISTER_PPC_HPP
+#define CPU_PPC_REGISTER_PPC_HPP
 
 #include "asm/register.hpp"
 
@@ -818,4 +818,4 @@
 #define R12_scratch2   AS_REGISTER(Register, R12)
 #endif
 
-#endif // CPU_PPC_VM_REGISTER_PPC_HPP
+#endif // CPU_PPC_REGISTER_PPC_HPP
--- a/src/hotspot/cpu/ppc/relocInfo_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/relocInfo_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_RELOCINFO_PPC_HPP
-#define CPU_PPC_VM_RELOCINFO_PPC_HPP
+#ifndef CPU_PPC_RELOCINFO_PPC_HPP
+#define CPU_PPC_RELOCINFO_PPC_HPP
 
   // machine-dependent parts of class relocInfo
  private:
@@ -49,4 +49,4 @@
   // listed in the oop section.
   static bool mustIterateImmediateOopsInCode() { return false; }
 
-#endif // CPU_PPC_VM_RELOCINFO_PPC_HPP
+#endif // CPU_PPC_RELOCINFO_PPC_HPP
--- a/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, SAP SE. 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
@@ -269,7 +269,7 @@
       // when called via a c2i.
 
       // Pass initial_caller_sp to framemanager.
-      __ mr(R21_tmp1, R1_SP);
+      __ mr(R21_sender_SP, R1_SP);
 
       // Do a light-weight C-call here, r_new_arg_entry holds the address
       // of the interpreter entry point (frame manager or native entry)
@@ -3186,35 +3186,6 @@
     return start;
   }
 
-
-  // Compute CRC32/CRC32C function.
-  void generate_CRC_updateBytes(const char* name, Register table, bool invertCRC) {
-
-      // arguments to kernel_crc32:
-      const Register crc     = R3_ARG1;  // Current checksum, preset by caller or result from previous call.
-      const Register data    = R4_ARG2;  // source byte array
-      const Register dataLen = R5_ARG3;  // #bytes to process
-
-      const Register t0      = R2;
-      const Register t1      = R7;
-      const Register t2      = R8;
-      const Register t3      = R9;
-      const Register tc0     = R10;
-      const Register tc1     = R11;
-      const Register tc2     = R12;
-
-      BLOCK_COMMENT("Stub body {");
-      assert_different_registers(crc, data, dataLen, table);
-
-      __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2, table, invertCRC);
-
-      BLOCK_COMMENT("return");
-      __ mr_if_needed(R3_RET, crc);      // Updated crc is function result. No copying required (R3_ARG1 == R3_RET).
-      __ blr();
-
-      BLOCK_COMMENT("} Stub body");
-  }
-
   /**
   *  Arguments:
   *
@@ -3492,111 +3463,15 @@
    *   R3_RET     - int   crc result
    */
   // Compute CRC32 function.
-  address generate_CRC32_updateBytes(const char* name) {
+  address generate_CRC32_updateBytes(bool is_crc32c) {
     __ align(CodeEntryAlignment);
-    StubCodeMark mark(this, "StubRoutines", name);
+    StubCodeMark mark(this, "StubRoutines", is_crc32c ? "CRC32C_updateBytes" : "CRC32_updateBytes");
     address start = __ function_entry();  // Remember stub start address (is rtn value).
-
-    const Register table   = R6;       // crc table address
-
-    // arguments to kernel_crc32:
-    const Register crc     = R3_ARG1;  // Current checksum, preset by caller or result from previous call.
-    const Register data    = R4_ARG2;  // source byte array
-    const Register dataLen = R5_ARG3;  // #bytes to process
-
-    if (VM_Version::has_vpmsumb()) {
-      const Register constants    = R2;  // constants address
-      const Register bconstants   = R8;  // barret table address
-
-      const Register t0      = R9;
-      const Register t1      = R10;
-      const Register t2      = R11;
-      const Register t3      = R12;
-      const Register t4      = R7;
-
-      BLOCK_COMMENT("Stub body {");
-      assert_different_registers(crc, data, dataLen, table);
-
-      StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-      StubRoutines::ppc64::generate_load_crc_constants_addr(_masm, constants);
-      StubRoutines::ppc64::generate_load_crc_barret_constants_addr(_masm, bconstants);
-
-      __ kernel_crc32_1word_vpmsum(crc, data, dataLen, table, constants, bconstants, t0, t1, t2, t3, t4, true);
-
-      BLOCK_COMMENT("return");
-      __ mr_if_needed(R3_RET, crc);      // Updated crc is function result. No copying required (R3_ARG1 == R3_RET).
-      __ blr();
-
-      BLOCK_COMMENT("} Stub body");
-    } else {
-      StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
-      generate_CRC_updateBytes(name, table, true);
-    }
-
+    __ crc32(R3_ARG1, R4_ARG2, R5_ARG3, R2, R6, R7, R8, R9, R10, R11, R12, is_crc32c);
+    __ blr();
     return start;
   }
 
-
-  /**
-   * Arguments:
-   *
-   * Inputs:
-   *   R3_ARG1    - int   crc
-   *   R4_ARG2    - byte* buf
-   *   R5_ARG3    - int   length (of buffer)
-   *
-   * scratch:
-   *   R2, R6-R12
-   *
-   * Ouput:
-   *   R3_RET     - int   crc result
-   */
-  // Compute CRC32C function.
-  address generate_CRC32C_updateBytes(const char* name) {
-    __ align(CodeEntryAlignment);
-    StubCodeMark mark(this, "StubRoutines", name);
-    address start = __ function_entry();  // Remember stub start address (is rtn value).
-
-    const Register table   = R6;       // crc table address
-
-    // arguments to kernel_crc32:
-    const Register crc     = R3_ARG1;  // Current checksum, preset by caller or result from previous call.
-    const Register data    = R4_ARG2;  // source byte array
-    const Register dataLen = R5_ARG3;  // #bytes to process
-
-    if (VM_Version::has_vpmsumb()) {
-      const Register constants    = R2;  // constants address
-      const Register bconstants   = R8;  // barret table address
-
-      const Register t0      = R9;
-      const Register t1      = R10;
-      const Register t2      = R11;
-      const Register t3      = R12;
-      const Register t4      = R7;
-
-      BLOCK_COMMENT("Stub body {");
-      assert_different_registers(crc, data, dataLen, table);
-
-      StubRoutines::ppc64::generate_load_crc32c_table_addr(_masm, table);
-      StubRoutines::ppc64::generate_load_crc32c_constants_addr(_masm, constants);
-      StubRoutines::ppc64::generate_load_crc32c_barret_constants_addr(_masm, bconstants);
-
-      __ kernel_crc32_1word_vpmsum(crc, data, dataLen, table, constants, bconstants, t0, t1, t2, t3, t4, false);
-
-      BLOCK_COMMENT("return");
-      __ mr_if_needed(R3_RET, crc);      // Updated crc is function result. No copying required (R3_ARG1 == R3_RET).
-      __ blr();
-
-      BLOCK_COMMENT("} Stub body");
-    } else {
-      StubRoutines::ppc64::generate_load_crc32c_table_addr(_masm, table);
-      generate_CRC_updateBytes(name, table, false);
-    }
-
-    return start;
-  }
-
-
   // Initialization
   void generate_initial() {
     // Generates all stubs and initializes the entry points
@@ -3621,14 +3496,20 @@
 
     // CRC32 Intrinsics.
     if (UseCRC32Intrinsics) {
-      StubRoutines::_crc_table_adr    = (address)StubRoutines::ppc64::_crc_table;
-      StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes("CRC32_updateBytes");
+      StubRoutines::_crc_table_adr = (address)StubRoutines::ppc64::_crc_table;
+      if (VM_Version::has_vpmsumb()) {
+        StubRoutines::ppc64::_crc_constants = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32_POLY);
+      }
+      StubRoutines::_updateBytesCRC32 = generate_CRC32_updateBytes(false);
     }
 
     // CRC32C Intrinsics.
     if (UseCRC32CIntrinsics) {
       StubRoutines::_crc32c_table_addr = (address)StubRoutines::ppc64::_crc32c_table;
-      StubRoutines::_updateBytesCRC32C = generate_CRC32C_updateBytes("CRC32C_updateBytes");
+      if (VM_Version::has_vpmsumb()) {
+        StubRoutines::ppc64::_crc32c_constants = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32C_POLY);
+      }
+      StubRoutines::_updateBytesCRC32C = generate_CRC32_updateBytes(true);
     }
   }
 
--- a/src/hotspot/cpu/ppc/stubRoutines_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/stubRoutines_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, SAP SE. 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
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_STUBROUTINES_PPC_HPP
-#define CPU_PPC_VM_STUBROUTINES_PPC_HPP
+#ifndef CPU_PPC_STUBROUTINES_PPC_HPP
+#define CPU_PPC_STUBROUTINES_PPC_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to
@@ -45,8 +45,14 @@
 #else
   #define CRC32_TABLES 1
 #endif
-#define CRC32_CONSTANTS_SIZE 1084
-#define CRC32_BARRET_CONSTANTS 10
+
+#define REVERSE_CRC32_POLY  0xEDB88320
+#define REVERSE_CRC32C_POLY 0x82F63B78
+#define INVERSE_REVERSE_CRC32_POLY  0x1aab14226ull
+#define INVERSE_REVERSE_CRC32C_POLY 0x105fd79bdull
+#define CRC32_UNROLL_FACTOR 2048
+#define CRC32_UNROLL_FACTOR2 8
+
 
 class ppc64 {
  friend class StubGenerator;
@@ -56,20 +62,15 @@
   // CRC32 Intrinsics.
   static juint _crc_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
   static juint _crc32c_table[CRC32_TABLES][CRC32_COLUMN_SIZE];
-  static juint *_crc_constants, *_crc_barret_constants;
-  static juint *_crc32c_constants, *_crc32c_barret_constants;
+  static juint *_crc_constants;
+  static juint *_crc32c_constants;
 
  public:
 
   // CRC32 Intrinsics.
-  static void generate_load_crc_table_addr(MacroAssembler* masm, Register table);
-  static void generate_load_crc_constants_addr(MacroAssembler* masm, Register table);
-  static void generate_load_crc_barret_constants_addr(MacroAssembler* masm, Register table);
-  static void generate_load_crc32c_table_addr(MacroAssembler* masm, Register table);
-  static void generate_load_crc32c_constants_addr(MacroAssembler* masm, Register table);
-  static void generate_load_crc32c_barret_constants_addr(MacroAssembler* masm, Register table);
+  static address crc_constants() { return (address)_crc_constants; }
+  static address crc32c_constants() { return (address)_crc32c_constants; }
   static juint* generate_crc_constants(juint reverse_poly);
-  static juint* generate_crc_barret_constants(juint reverse_poly);
 };
 
-#endif // CPU_PPC_VM_STUBROUTINES_PPC_HPP
+#endif // CPU_PPC_STUBROUTINES_PPC_HPP
--- a/src/hotspot/cpu/ppc/stubRoutines_ppc_64.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/stubRoutines_ppc_64.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, SAP SE. 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
@@ -33,39 +33,7 @@
 
 #define __ masm->
 
-// CRC32(C) Intrinsics.
-void StubRoutines::ppc64::generate_load_crc_table_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, StubRoutines::_crc_table_adr, R0);
-}
-
-void StubRoutines::ppc64::generate_load_crc_constants_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, (address)StubRoutines::ppc64::_crc_constants, R0);
-}
-
-void StubRoutines::ppc64::generate_load_crc_barret_constants_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, (address)StubRoutines::ppc64::_crc_barret_constants, R0);
-}
-
-void StubRoutines::ppc64::generate_load_crc32c_table_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, StubRoutines::_crc32c_table_addr, R0);
-}
-
-void StubRoutines::ppc64::generate_load_crc32c_constants_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, (address)StubRoutines::ppc64::_crc32c_constants, R0);
-}
-
-void StubRoutines::ppc64::generate_load_crc32c_barret_constants_addr(MacroAssembler* masm, Register table) {
-  __ load_const_optimized(table, (address)StubRoutines::ppc64::_crc32c_barret_constants, R0);
-}
-
-// CRC constants and compute functions
-#define REVERSE_CRC32_POLY  0xEDB88320
-#define REVERSE_CRC32C_POLY 0x82F63B78
-#define INVERSE_REVERSE_CRC32_POLY  0x1aab14226ull
-#define INVERSE_REVERSE_CRC32C_POLY 0x105fd79bdull
-#define UNROLL_FACTOR 2048
-#define UNROLL_FACTOR2 8
-
+// CRC constant compute functions
 static juint fold_word(juint w, juint reverse_poly) {
   for (int i = 0; i < 32; i++) {
     int poly_if_odd = (-(w & 1)) & reverse_poly;
@@ -98,13 +66,13 @@
 
 // Constants to fold n words as needed by macroAssembler.
 juint* StubRoutines::ppc64::generate_crc_constants(juint reverse_poly) {
-  juint* ptr = (juint*) malloc(sizeof(juint) * 4 * (UNROLL_FACTOR2 - 1 + UNROLL_FACTOR / UNROLL_FACTOR2));
+  juint* ptr = (juint*) malloc(sizeof(juint) * 4 * (CRC32_UNROLL_FACTOR2 + CRC32_UNROLL_FACTOR / CRC32_UNROLL_FACTOR2));
   guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
   guarantee(ptr != NULL, "allocation error of a crc table");
 
   // Generate constants for outer loop
   juint v0, v1, v2, v3 = 1;
-  for (int i = 0; i < UNROLL_FACTOR2 - 1; ++i) {
+  for (int i = 0; i < CRC32_UNROLL_FACTOR2 - 1; ++i) {
     v0 = fold_word(v3, reverse_poly);
     v1 = fold_word(v0, reverse_poly);
     v2 = fold_word(v1, reverse_poly);
@@ -123,15 +91,15 @@
   }
 
   // Generate constants for inner loop
-  juint* ptr2 = ptr + 4 * (UNROLL_FACTOR2 - 1);
+  juint* ptr2 = ptr + 4 * (CRC32_UNROLL_FACTOR2 - 1);
   v3 = 1; // Restart from scratch.
-  for (int i = 0; i < UNROLL_FACTOR; ++i) {
+  for (int i = 0; i < CRC32_UNROLL_FACTOR; ++i) {
     v0 = fold_word(v3, reverse_poly);
     v1 = fold_word(v0, reverse_poly);
     v2 = fold_word(v1, reverse_poly);
     v3 = fold_word(v2, reverse_poly);
-    if (i % UNROLL_FACTOR2 == 0) {
-      int idx = UNROLL_FACTOR / UNROLL_FACTOR2 - 1 - i / UNROLL_FACTOR2;
+    if (i % CRC32_UNROLL_FACTOR2 == 0) {
+      int idx = CRC32_UNROLL_FACTOR / CRC32_UNROLL_FACTOR2 - 1 - i / CRC32_UNROLL_FACTOR2;
       for (int j = 0; j < 4; ++j) {
 #ifdef VM_LITTLE_ENDIAN
         ptr2[4*idx  ] = v3;
@@ -148,16 +116,9 @@
     }
   }
 
-  return ptr;
-}
-
-// Constants to reduce 64 to 32 bit as needed by macroAssembler.
-juint* StubRoutines::ppc64::generate_crc_barret_constants(juint reverse_poly) {
-  juint* ptr = (juint*) malloc(sizeof(juint) * CRC32_BARRET_CONSTANTS);
-  guarantee(((intptr_t)ptr & 0xF) == 0, "16-byte alignment needed");
-  guarantee(ptr != NULL, "allocation error of a crc table");
-
-  julong* c = (julong*)ptr;
+  // Constants to reduce 64 to 32 bit as needed by macroAssembler.
+  juint* ptr3 = ptr2 + 4 * (CRC32_UNROLL_FACTOR / CRC32_UNROLL_FACTOR2);
+  julong* c = (julong*)ptr3;
   julong long_poly = (((julong)reverse_poly) << 1) | 1;
   julong inverse_long_poly = compute_inverse_poly(long_poly);
 #ifdef VM_LITTLE_ENDIAN
@@ -177,6 +138,7 @@
 #endif
 
   //printf("inv poly: 0x%016llx\n", (long long unsigned int)inverse_long_poly);
+
   return ptr;
 }
 
@@ -772,8 +734,5 @@
   #endif
   };
 
-juint* StubRoutines::ppc64::_crc_constants    = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32_POLY);
-juint* StubRoutines::ppc64::_crc32c_constants = StubRoutines::ppc64::generate_crc_constants(REVERSE_CRC32C_POLY);
-
-juint* StubRoutines::ppc64::_crc_barret_constants    = StubRoutines::ppc64::generate_crc_barret_constants(REVERSE_CRC32_POLY);
-juint* StubRoutines::ppc64::_crc32c_barret_constants = StubRoutines::ppc64::generate_crc_barret_constants(REVERSE_CRC32C_POLY);
+juint* StubRoutines::ppc64::_crc_constants = NULL;
+juint* StubRoutines::ppc64::_crc32c_constants = NULL;
--- a/src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2015, 2018, SAP SE. All rights reserved.
+ * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, SAP SE. 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
@@ -532,14 +532,8 @@
   // these parameters the pre-barrier does not generate
   // the load of the previous value.
 
-  // Restore caller sp for c2i case.
-#ifdef ASSERT
-  __ ld(R9_ARG7, 0, R1_SP);
-  __ ld(R10_ARG8, 0, R21_sender_SP);
-  __ cmpd(CCR0, R9_ARG7, R10_ARG8);
-  __ asm_assert_eq("backlink", 0x544);
-#endif // ASSERT
-  __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+  // Restore caller sp for c2i case (from compiled) and for resized sender frame (from interpreted).
+  __ resize_frame_absolute(R21_sender_SP, R11_scratch1, R0);
 
   __ blr();
 
@@ -835,8 +829,13 @@
   assert(StubRoutines::throw_StackOverflowError_entry() != NULL, "generated in wrong order");
   __ load_const_optimized(Rscratch1, (StubRoutines::throw_StackOverflowError_entry()), R0);
   __ mtctr(Rscratch1);
-  // Restore caller_sp.
+  // Restore caller_sp (c2i adapter may exist, but no shrinking of interpreted caller frame).
 #ifdef ASSERT
+  Label frame_not_shrunk;
+  __ cmpld(CCR0, R1_SP, R21_sender_SP);
+  __ ble(CCR0, frame_not_shrunk);
+  __ stop("frame shrunk", 0x546);
+  __ bind(frame_not_shrunk);
   __ ld(Rscratch1, 0, R1_SP);
   __ ld(R0, 0, R21_sender_SP);
   __ cmpd(CCR0, R0, Rscratch1);
@@ -1155,15 +1154,6 @@
     }
   }
 
-  // Pop c2i arguments (if any) off when we return.
-#ifdef ASSERT
-  __ ld(R9_ARG7, 0, R1_SP);
-  __ ld(R10_ARG8, 0, R21_sender_SP);
-  __ cmpd(CCR0, R9_ARG7, R10_ARG8);
-  __ asm_assert_eq("backlink", 0x545);
-#endif // ASSERT
-  __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
-
   if (use_instruction) {
     switch (kind) {
       case Interpreter::java_lang_math_sqrt: __ fsqrt(F1_RET, F1);          break;
@@ -1188,6 +1178,8 @@
     __ restore_LR_CR(R0);
   }
 
+  // Restore caller sp for c2i case (from compiled) and for resized sender frame (from interpreted).
+  __ resize_frame_absolute(R21_sender_SP, R11_scratch1, R0);
   __ blr();
 
   __ flush();
@@ -1840,11 +1832,11 @@
 #endif
     __ lwz(crc,  2*wordSize, argP);    // Current crc state, zero extend to 64 bit to have a clean register.
 
-    StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+    __ load_const_optimized(table, StubRoutines::crc_table_addr(), R0);
     __ kernel_crc32_singleByte(crc, data, dataLen, table, tmp, true);
 
-    // Restore caller sp for c2i case and return.
-    __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+    // Restore caller sp for c2i case (from compiled) and for resized sender frame (from interpreted).
+    __ resize_frame_absolute(R21_sender_SP, R11_scratch1, R0);
     __ blr();
 
     // Generate a vanilla native entry as the slow path.
@@ -1881,19 +1873,7 @@
     const Register crc     = R3_ARG1;  // crc value
     const Register data    = R4_ARG2;  // address of java byte array
     const Register dataLen = R5_ARG3;  // source data len
-    const Register table   = R6_ARG4;  // address of crc32 table
-
-    const Register t0      = R9;       // scratch registers for crc calculation
-    const Register t1      = R10;
-    const Register t2      = R11;
-    const Register t3      = R12;
-
-    const Register tc0     = R2;       // registers to hold pre-calculated column addresses
-    const Register tc1     = R7;
-    const Register tc2     = R8;
-    const Register tc3     = table;    // table address is reconstructed at the end of kernel_crc32_* emitters
-
-    const Register tmp     = t0;       // Only used very locally to calculate byte buffer address.
+    const Register tmp     = R11_scratch1;
 
     // Arguments are reversed on java expression stack.
     // Calculate address of start element.
@@ -1924,15 +1904,10 @@
       __ addi(data, data, arrayOopDesc::base_offset_in_bytes(T_BYTE));
     }
 
-    StubRoutines::ppc64::generate_load_crc_table_addr(_masm, table);
+    __ crc32(crc, data, dataLen, R2, R6, R7, R8, R9, R10, R11, R12, false);
 
-    // Performance measurements show the 1word and 2word variants to be almost equivalent,
-    // with very light advantages for the 1word variant. We chose the 1word variant for
-    // code compactness.
-    __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2, tc3, true);
-
-    // Restore caller sp for c2i case and return.
-    __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+    // Restore caller sp for c2i case (from compiled) and for resized sender frame (from interpreted).
+    __ resize_frame_absolute(R21_sender_SP, R11_scratch1, R0);
     __ blr();
 
     // Generate a vanilla native entry as the slow path.
@@ -1967,19 +1942,7 @@
     const Register crc     = R3_ARG1;  // crc value
     const Register data    = R4_ARG2;  // address of java byte array
     const Register dataLen = R5_ARG3;  // source data len
-    const Register table   = R6_ARG4;  // address of crc32c table
-
-    const Register t0      = R9;       // scratch registers for crc calculation
-    const Register t1      = R10;
-    const Register t2      = R11;
-    const Register t3      = R12;
-
-    const Register tc0     = R2;       // registers to hold pre-calculated column addresses
-    const Register tc1     = R7;
-    const Register tc2     = R8;
-    const Register tc3     = table;    // table address is reconstructed at the end of kernel_crc32_* emitters
-
-    const Register tmp     = t0;       // Only used very locally to calculate byte buffer address.
+    const Register tmp     = R11_scratch1;
 
     // Arguments are reversed on java expression stack.
     // Calculate address of start element.
@@ -2012,15 +1975,10 @@
       __ addi(data, data, arrayOopDesc::base_offset_in_bytes(T_BYTE));
     }
 
-    StubRoutines::ppc64::generate_load_crc32c_table_addr(_masm, table);
+    __ crc32(crc, data, dataLen, R2, R6, R7, R8, R9, R10, R11, R12, true);
 
-    // Performance measurements show the 1word and 2word variants to be almost equivalent,
-    // with very light advantages for the 1word variant. We chose the 1word variant for
-    // code compactness.
-    __ kernel_crc32_1word(crc, data, dataLen, table, t0, t1, t2, t3, tc0, tc1, tc2, tc3, false);
-
-    // Restore caller sp for c2i case and return.
-    __ mr(R1_SP, R21_sender_SP); // Cut the stack back to where the caller started.
+    // Restore caller sp for c2i case (from compiled) and for resized sender frame (from interpreted).
+    __ resize_frame_absolute(R21_sender_SP, R11_scratch1, R0);
     __ blr();
 
     BLOCK_COMMENT("} CRC32C_update{Bytes|DirectByteBuffer}");
--- a/src/hotspot/cpu/ppc/templateTable_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/templateTable_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2013, 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_TEMPLATETABLE_PPC_HPP
-#define CPU_PPC_VM_TEMPLATETABLE_PPC_HPP
+#ifndef CPU_PPC_TEMPLATETABLE_PPC_HPP
+#define CPU_PPC_TEMPLATETABLE_PPC_HPP
 
   static void prepare_invoke(int byte_no, Register Rmethod, Register Rret_addr, Register Rindex, Register Rrecv, Register Rflags, Register Rscratch);
   static void invokevfinal_helper(Register Rmethod, Register Rflags, Register Rscratch1, Register Rscratch2);
@@ -35,4 +35,4 @@
   static void branch_conditional(ConditionRegister crx, TemplateTable::Condition cc, Label& L, bool invert = false);
   static void if_cmp_common(Register Rfirst, Register Rsecond, Register Rscratch1, Register Rscratch2, Condition cc, bool is_jint, bool cmp0);
 
-#endif // CPU_PPC_VM_TEMPLATETABLE_PPC_HPP
+#endif // CPU_PPC_TEMPLATETABLE_PPC_HPP
--- a/src/hotspot/cpu/ppc/vmStructs_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/vmStructs_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_VMSTRUCTS_PPC_HPP
-#define CPU_PPC_VM_VMSTRUCTS_PPC_HPP
+#ifndef CPU_PPC_VMSTRUCTS_PPC_HPP
+#define CPU_PPC_VMSTRUCTS_PPC_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -38,4 +38,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_PPC_VM_VMSTRUCTS_PPC_HPP
+#endif // CPU_PPC_VMSTRUCTS_PPC_HPP
--- a/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_VM_VERSION_EXT_PPC_HPP
-#define CPU_PPC_VM_VM_VERSION_EXT_PPC_HPP
+#ifndef CPU_PPC_VM_VERSION_EXT_PPC_HPP
+#define CPU_PPC_VM_VERSION_EXT_PPC_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_ppc.hpp"
@@ -59,4 +59,4 @@
   static const char* cpu_description(void);
 };
 
-#endif // CPU_PPC_VM_VM_VERSION_EXT_PPC_HPP
+#endif // CPU_PPC_VM_VERSION_EXT_PPC_HPP
--- a/src/hotspot/cpu/ppc/vm_version_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/vm_version_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_VM_VERSION_PPC_HPP
-#define CPU_PPC_VM_VM_VERSION_PPC_HPP
+#ifndef CPU_PPC_VM_VERSION_PPC_HPP
+#define CPU_PPC_VM_VERSION_PPC_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -123,4 +123,4 @@
   static uint64_t _dscr_val;
 };
 
-#endif // CPU_PPC_VM_VM_VERSION_PPC_HPP
+#endif // CPU_PPC_VM_VERSION_PPC_HPP
--- a/src/hotspot/cpu/ppc/vmreg_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/vmreg_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_VMREG_PPC_HPP
-#define CPU_PPC_VM_VMREG_PPC_HPP
+#ifndef CPU_PPC_VMREG_PPC_HPP
+#define CPU_PPC_VMREG_PPC_HPP
 
 inline bool is_Register() {
   return (unsigned int)value() < (unsigned int)ConcreteRegisterImpl::max_gpr;
@@ -50,4 +50,4 @@
   return is_even(value());
 }
 
-#endif // CPU_PPC_VM_VMREG_PPC_HPP
+#endif // CPU_PPC_VMREG_PPC_HPP
--- a/src/hotspot/cpu/ppc/vmreg_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/ppc/vmreg_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_PPC_VM_VMREG_PPC_INLINE_HPP
-#define CPU_PPC_VM_VMREG_PPC_INLINE_HPP
+#ifndef CPU_PPC_VMREG_PPC_INLINE_HPP
+#define CPU_PPC_VMREG_PPC_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   if (this == noreg) return VMRegImpl::Bad();
@@ -50,4 +50,4 @@
 }
 
 
-#endif // CPU_PPC_VM_VMREG_PPC_INLINE_HPP
+#endif // CPU_PPC_VMREG_PPC_INLINE_HPP
--- a/src/hotspot/cpu/s390/assembler_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/assembler_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_ASSEMBLER_S390_HPP
-#define CPU_S390_VM_ASSEMBLER_S390_HPP
+#ifndef CPU_S390_ASSEMBLER_S390_HPP
+#define CPU_S390_ASSEMBLER_S390_HPP
 
 #undef  LUCY_DBG
 
@@ -3284,4 +3284,4 @@
 
 };
 
-#endif // CPU_S390_VM_ASSEMBLER_S390_HPP
+#endif // CPU_S390_ASSEMBLER_S390_HPP
--- a/src/hotspot/cpu/s390/assembler_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/assembler_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_ASSEMBLER_S390_INLINE_HPP
-#define CPU_S390_VM_ASSEMBLER_S390_INLINE_HPP
+#ifndef CPU_S390_ASSEMBLER_S390_INLINE_HPP
+#define CPU_S390_ASSEMBLER_S390_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
@@ -1460,4 +1460,4 @@
   return (is_equal(pc, CGIT_ZOPC, RIE_MASK) || is_equal(pc, CIT_ZOPC, RIE_MASK));
 }
 
-#endif // CPU_S390_VM_ASSEMBLER_S390_INLINE_HPP
+#endif // CPU_S390_ASSEMBLER_S390_INLINE_HPP
--- a/src/hotspot/cpu/s390/bytes_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/bytes_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_BYTES_S390_HPP
-#define CPU_S390_VM_BYTES_S390_HPP
+#ifndef CPU_S390_BYTES_S390_HPP
+#define CPU_S390_BYTES_S390_HPP
 
 #include "memory/allocation.hpp"
 
@@ -63,4 +63,4 @@
   static inline void put_Java_u8(address p, u8 x) { put_native_u8(p, x); }
 };
 
-#endif // CPU_S390_VM_BYTES_S390_HPP
+#endif // CPU_S390_BYTES_S390_HPP
--- a/src/hotspot/cpu/s390/c1_Defs_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_Defs_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_DEFS_S390_HPP
-#define CPU_S390_VM_C1_DEFS_S390_HPP
+#ifndef CPU_S390_C1_DEFS_S390_HPP
+#define CPU_S390_C1_DEFS_S390_HPP
 
 // Native word offsets from memory address (big endian).
 enum {
@@ -68,4 +68,4 @@
   pd_float_saved_as_double = false
 };
 
-#endif // CPU_S390_VM_C1_DEFS_S390_HPP
+#endif // CPU_S390_C1_DEFS_S390_HPP
--- a/src/hotspot/cpu/s390/c1_FpuStackSim_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_FpuStackSim_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,10 +23,10 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_FPUSTACKSIM_S390_HPP
-#define CPU_S390_VM_C1_FPUSTACKSIM_S390_HPP
+#ifndef CPU_S390_C1_FPUSTACKSIM_S390_HPP
+#define CPU_S390_C1_FPUSTACKSIM_S390_HPP
 
 // No FPU stack on ZARCH_64
 class FpuStackSim;
 
-#endif // CPU_S390_VM_C1_FPUSTACKSIM_S390_HPP
+#endif // CPU_S390_C1_FPUSTACKSIM_S390_HPP
--- a/src/hotspot/cpu/s390/c1_FrameMap_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_FrameMap_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_FRAMEMAP_S390_HPP
-#define CPU_S390_VM_C1_FRAMEMAP_S390_HPP
+#ifndef CPU_S390_C1_FRAMEMAP_S390_HPP
+#define CPU_S390_C1_FRAMEMAP_S390_HPP
 
  public:
 
@@ -138,4 +138,4 @@
   static int nof_caller_save_cpu_regs() { return pd_nof_caller_save_cpu_regs_frame_map; }
   static int last_cpu_reg()             { return pd_last_cpu_reg; }
 
-#endif // CPU_S390_VM_C1_FRAMEMAP_S390_HPP
+#endif // CPU_S390_C1_FRAMEMAP_S390_HPP
--- a/src/hotspot/cpu/s390/c1_LIRAssembler_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_LIRAssembler_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_LIRASSEMBLER_S390_HPP
-#define CPU_S390_VM_C1_LIRASSEMBLER_S390_HPP
+#ifndef CPU_S390_C1_LIRASSEMBLER_S390_HPP
+#define CPU_S390_C1_LIRASSEMBLER_S390_HPP
 
  private:
 
@@ -52,4 +52,4 @@
     _deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(64)
   };
 
-#endif // CPU_S390_VM_C1_LIRASSEMBLER_S390_HPP
+#endif // CPU_S390_C1_LIRASSEMBLER_S390_HPP
--- a/src/hotspot/cpu/s390/c1_LinearScan_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_LinearScan_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_LINEARSCAN_S390_HPP
-#define CPU_S390_VM_C1_LINEARSCAN_S390_HPP
+#ifndef CPU_S390_C1_LINEARSCAN_S390_HPP
+#define CPU_S390_C1_LINEARSCAN_S390_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
   // unallocated: Z_thread, Z_fp, Z_SP, Z_R0_scratch, Z_R1_scratch, Z_R14
@@ -61,4 +61,4 @@
   return false; // No special case behaviours.
 }
 
-#endif // CPU_S390_VM_C1_LINEARSCAN_S390_HPP
+#endif // CPU_S390_C1_LINEARSCAN_S390_HPP
--- a/src/hotspot/cpu/s390/c1_MacroAssembler_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_MacroAssembler_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_MACROASSEMBLER_S390_HPP
-#define CPU_S390_VM_C1_MACROASSEMBLER_S390_HPP
+#ifndef CPU_S390_C1_MACROASSEMBLER_S390_HPP
+#define CPU_S390_C1_MACROASSEMBLER_S390_HPP
 
   void pd_init() { /* nothing to do */ }
 
@@ -98,4 +98,4 @@
   // This platform only uses signal-based null checks. The Label is not needed.
   void null_check(Register r, Label *Lnull = NULL) { MacroAssembler::null_check(r); }
 
-#endif // CPU_S390_VM_C1_MACROASSEMBLER_S390_HPP
+#endif // CPU_S390_C1_MACROASSEMBLER_S390_HPP
--- a/src/hotspot/cpu/s390/c1_globals_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c1_globals_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C1_GLOBALS_S390_HPP
-#define CPU_S390_VM_C1_GLOBALS_S390_HPP
+#ifndef CPU_S390_C1_GLOBALS_S390_HPP
+#define CPU_S390_C1_GLOBALS_S390_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -70,4 +70,4 @@
 define_pd_global(bool,     CSEArrayLength,               true);
 define_pd_global(bool,     TwoOperandLIRForm,            true);
 
-#endif // CPU_S390_VM_C1_GLOBALS_S390_HPP
+#endif // CPU_S390_C1_GLOBALS_S390_HPP
--- a/src/hotspot/cpu/s390/c2_globals_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/c2_globals_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_C2_GLOBALS_S390_HPP
-#define CPU_S390_VM_C2_GLOBALS_S390_HPP
+#ifndef CPU_S390_C2_GLOBALS_S390_HPP
+#define CPU_S390_C2_GLOBALS_S390_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -91,4 +91,4 @@
 // Ergonomics related flags
 define_pd_global(bool, NeverActAsServerClassMachine, false);
 
-#endif // CPU_S390_VM_C2_GLOBALS_S390_HPP
+#endif // CPU_S390_C2_GLOBALS_S390_HPP
--- a/src/hotspot/cpu/s390/codeBuffer_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/codeBuffer_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_CODEBUFFER_S390_HPP
-#define CPU_S390_VM_CODEBUFFER_S390_HPP
+#ifndef CPU_S390_CODEBUFFER_S390_HPP
+#define CPU_S390_CODEBUFFER_S390_HPP
 
  private:
   void pd_initialize() {}
@@ -34,6 +34,4 @@
 
   void getCpuData(const CodeBuffer * const cb) {}
 
-#endif // CPU_S390_VM_CODEBUFFER_S390_HPP
-
-
+#endif // CPU_S390_CODEBUFFER_S390_HPP
--- a/src/hotspot/cpu/s390/copy_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/copy_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -25,8 +25,8 @@
 
 // Major contributions by LS
 
-#ifndef CPU_S390_VM_COPY_S390_HPP
-#define CPU_S390_VM_COPY_S390_HPP
+#ifndef CPU_S390_COPY_S390_HPP
+#define CPU_S390_COPY_S390_HPP
 
 // Inline functions for memory copy and fill.
 
@@ -1131,4 +1131,4 @@
 #endif
 }
 
-#endif // CPU_S390_VM_COPY_S390_HPP
+#endif // CPU_S390_COPY_S390_HPP
--- a/src/hotspot/cpu/s390/depChecker_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/depChecker_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,9 +23,9 @@
  *
  */
 
-#ifndef CPU_S390_VM_DEPCHECKER_S390_HPP
-#define CPU_S390_VM_DEPCHECKER_S390_HPP
+#ifndef CPU_S390_DEPCHECKER_S390_HPP
+#define CPU_S390_DEPCHECKER_S390_HPP
 
 // Nothing to do on z/Architecture
 
-#endif // CPU_S390_VM_DEPCHECKER_S390_HPP
+#endif // CPU_S390_DEPCHECKER_S390_HPP
--- a/src/hotspot/cpu/s390/disassembler_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/disassembler_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_DISASSEMBLER_S390_HPP
-#define CPU_S390_VM_DISASSEMBLER_S390_HPP
+#ifndef CPU_S390_DISASSEMBLER_S390_HPP
+#define CPU_S390_DISASSEMBLER_S390_HPP
 
   static int pd_instruction_alignment() {
     return 1;
@@ -34,4 +34,4 @@
     return "zarch";
   }
 
-#endif // CPU_S390_VM_DISASSEMBLER_S390_HPP
+#endif // CPU_S390_DISASSEMBLER_S390_HPP
--- a/src/hotspot/cpu/s390/frame_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/frame_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -25,8 +25,8 @@
 
 // Major contributions by ML, AHa.
 
-#ifndef CPU_S390_VM_FRAME_S390_HPP
-#define CPU_S390_VM_FRAME_S390_HPP
+#ifndef CPU_S390_FRAME_S390_HPP
+#define CPU_S390_FRAME_S390_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -554,4 +554,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_S390_VM_FRAME_S390_HPP
+#endif // CPU_S390_FRAME_S390_HPP
--- a/src/hotspot/cpu/s390/frame_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/frame_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_FRAME_S390_INLINE_HPP
-#define CPU_S390_VM_FRAME_S390_INLINE_HPP
+#ifndef CPU_S390_FRAME_S390_INLINE_HPP
+#define CPU_S390_FRAME_S390_INLINE_HPP
 
 #include "code/codeCache.hpp"
 #include "code/vmreg.inline.hpp"
@@ -296,4 +296,4 @@
   return fp();
 }
 
-#endif // CPU_S390_VM_FRAME_S390_INLINE_HPP
+#endif // CPU_S390_FRAME_S390_INLINE_HPP
--- a/src/hotspot/cpu/s390/globalDefinitions_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/globalDefinitions_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_GLOBALDEFINITIONS_S390_HPP
-#define CPU_S390_VM_GLOBALDEFINITIONS_S390_HPP
+#ifndef CPU_S390_GLOBALDEFINITIONS_S390_HPP
+#define CPU_S390_GLOBALDEFINITIONS_S390_HPP
 
 #ifdef CC_INTERP
 #error "CC_INTERP is not supported on z/Architecture."
@@ -56,4 +56,4 @@
 
 #define THREAD_LOCAL_POLL
 
-#endif // CPU_S390_VM_GLOBALDEFINITIONS_S390_HPP
+#endif // CPU_S390_GLOBALDEFINITIONS_S390_HPP
--- a/src/hotspot/cpu/s390/globals_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/globals_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_GLOBALS_S390_HPP
-#define CPU_S390_VM_GLOBALS_S390_HPP
+#ifndef CPU_S390_GLOBALS_S390_HPP
+#define CPU_S390_GLOBALS_S390_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -128,4 +128,4 @@
   product(bool, TraceTraps, false, "Trace all traps the signal handler"       \
           "handles.")
 
-#endif // CPU_S390_VM_GLOBALS_S390_HPP
+#endif // CPU_S390_GLOBALS_S390_HPP
--- a/src/hotspot/cpu/s390/icache_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/icache_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_ICACHE_S390_HPP
-#define CPU_S390_VM_ICACHE_S390_HPP
+#ifndef CPU_S390_ICACHE_S390_HPP
+#define CPU_S390_ICACHE_S390_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM modifies
 // code, part of the processor instruction cache potentially has to be flushed.
@@ -41,4 +41,4 @@
   // Use default implementation.
 };
 
-#endif // CPU_S390_VM_ICACHE_S390_HPP
+#endif // CPU_S390_ICACHE_S390_HPP
--- a/src/hotspot/cpu/s390/interp_masm_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/interp_masm_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_INTERP_MASM_ZARCH_64_64_HPP
-#define CPU_S390_VM_INTERP_MASM_ZARCH_64_64_HPP
+#ifndef CPU_S390_INTERP_MASM_S390_HPP
+#define CPU_S390_INTERP_MASM_S390_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -330,4 +330,4 @@
   void pop_interpreter_frame(Register return_pc, Register tmp1, Register tmp2);
 };
 
-#endif // CPU_S390_VM_INTERP_MASM_ZARCH_64_64_HPP
+#endif // CPU_S390_INTERP_MASM_S390_HPP
--- a/src/hotspot/cpu/s390/interpreterRT_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/interpreterRT_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_INTERPRETERRT_S390_HPP
-#define CPU_S390_VM_INTERPRETERRT_S390_HPP
+#ifndef CPU_S390_INTERPRETERRT_S390_HPP
+#define CPU_S390_INTERPRETERRT_S390_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -62,4 +62,4 @@
 
 static address get_signature(JavaThread* thread, Method* method);
 
-#endif // CPU_S390_VM_INTERPRETERRT_S390_HPP
+#endif // CPU_S390_INTERPRETERRT_S390_HPP
--- a/src/hotspot/cpu/s390/javaFrameAnchor_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/javaFrameAnchor_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_JAVAFRAMEANCHOR_S390_HPP
-#define CPU_S390_VM_JAVAFRAMEANCHOR_S390_HPP
+#ifndef CPU_S390_JAVAFRAMEANCHOR_S390_HPP
+#define CPU_S390_JAVAFRAMEANCHOR_S390_HPP
 
  public:
 
@@ -84,4 +84,4 @@
 
   address last_Java_pc(void)          { return _last_Java_pc; }
 
-#endif // CPU_S390_VM_JAVAFRAMEANCHOR_S390_HPP
+#endif // CPU_S390_JAVAFRAMEANCHOR_S390_HPP
--- a/src/hotspot/cpu/s390/jniTypes_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/jniTypes_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_JNITYPES_S390_HPP
-#define CPU_S390_VM_JNITYPES_S390_HPP
+#ifndef CPU_S390_JNITYPES_S390_HPP
+#define CPU_S390_JNITYPES_S390_HPP
 
 // This file holds platform-dependent routines used to write primitive
 // jni types to the array of arguments passed into JavaCalls::call.
@@ -138,4 +138,4 @@
   }
 };
 
-#endif // CPU_S390_VM_JNITYPES_S390_HPP
+#endif // CPU_S390_JNITYPES_S390_HPP
--- a/src/hotspot/cpu/s390/macroAssembler_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/macroAssembler_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018, SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_MACROASSEMBLER_S390_HPP
-#define CPU_S390_VM_MACROASSEMBLER_S390_HPP
+#ifndef CPU_S390_MACROASSEMBLER_S390_HPP
+#define CPU_S390_MACROASSEMBLER_S390_HPP
 
 #include "asm/assembler.hpp"
 #include "oops/accessDecorators.hpp"
@@ -1107,4 +1107,4 @@
 inline bool AbstractAssembler::pd_check_instruction_mark() { return false; }
 #endif
 
-#endif // CPU_S390_VM_MACROASSEMBLER_S390_HPP
+#endif // CPU_S390_MACROASSEMBLER_S390_HPP
--- a/src/hotspot/cpu/s390/macroAssembler_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/macroAssembler_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_MACROASSEMBLER_S390_INLINE_HPP
-#define CPU_S390_VM_MACROASSEMBLER_S390_INLINE_HPP
+#ifndef CPU_S390_MACROASSEMBLER_S390_INLINE_HPP
+#define CPU_S390_MACROASSEMBLER_S390_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/macroAssembler.hpp"
@@ -311,4 +311,4 @@
   set_top_ijava_frame_at_SP_as_last_Java_frame(sp, tmp1, true);
 }
 
-#endif // CPU_S390_VM_MACROASSEMBLER_S390_INLINE_HPP
+#endif // CPU_S390_MACROASSEMBLER_S390_INLINE_HPP
--- a/src/hotspot/cpu/s390/nativeInst_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/nativeInst_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -25,8 +25,8 @@
 
 // Major contributions by AHa, JL, LS
 
-#ifndef CPU_S390_VM_NATIVEINST_S390_HPP
-#define CPU_S390_VM_NATIVEINST_S390_HPP
+#ifndef CPU_S390_NATIVEINST_S390_HPP
+#define CPU_S390_NATIVEINST_S390_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "runtime/icache.hpp"
@@ -663,4 +663,4 @@
   void verify() PRODUCT_RETURN;
 };
 
-#endif // CPU_S390_VM_NATIVEINST_S390_HPP
+#endif // CPU_S390_NATIVEINST_S390_HPP
--- a/src/hotspot/cpu/s390/registerMap_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/registerMap_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_REGISTERMAP_S390_HPP
-#define CPU_S390_VM_REGISTERMAP_S390_HPP
+#ifndef CPU_S390_REGISTERMAP_S390_HPP
+#define CPU_S390_REGISTERMAP_S390_HPP
 
 // Machine-dependent implementation for register maps.
 
@@ -41,4 +41,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_S390_VM_REGISTERMAP_S390_HPP
+#endif // CPU_S390_REGISTERMAP_S390_HPP
--- a/src/hotspot/cpu/s390/registerSaver_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/registerSaver_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_REGISTERSAVER_S390_HPP
-#define CPU_S390_VM_REGISTERSAVER_S390_HPP
+#ifndef CPU_S390_REGISTERSAVER_S390_HPP
+#define CPU_S390_REGISTERSAVER_S390_HPP
 
 class RegisterSaver {
   // Used for saving volatile registers.
@@ -79,4 +79,4 @@
 
 };
 
-#endif // CPU_S390_VM_REGISTERSAVER_S390_HPP
+#endif // CPU_S390_REGISTERSAVER_S390_HPP
--- a/src/hotspot/cpu/s390/register_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/register_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2017 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_REGISTER_S390_HPP
-#define CPU_S390_VM_REGISTER_S390_HPP
+#ifndef CPU_S390_REGISTER_S390_HPP
+#define CPU_S390_REGISTER_S390_HPP
 
 #include "asm/register.hpp"
 #include "vm_version_s390.hpp"
@@ -579,4 +579,4 @@
 #endif
 
 
-#endif // CPU_S390_VM_REGISTER_S390_HPP
+#endif // CPU_S390_REGISTER_S390_HPP
--- a/src/hotspot/cpu/s390/relocInfo_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/relocInfo_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_RELOCINFO_S390_HPP
-#define CPU_S390_VM_RELOCINFO_S390_HPP
+#ifndef CPU_S390_RELOCINFO_S390_HPP
+#define CPU_S390_RELOCINFO_S390_HPP
 
 //----------------------------
 //  relocInfo layout
@@ -118,4 +118,4 @@
   // Return indication if update happened.
   static bool update_oop_pool(address begin, address end, address newTarget, CodeBlob* cb);
 
-#endif // CPU_S390_VM_RELOCINFO_S390_HPP
+#endif // CPU_S390_RELOCINFO_S390_HPP
--- a/src/hotspot/cpu/s390/stubRoutines_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/stubRoutines_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2017, SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_STUBROUTINES_ZARCH_64_64_HPP
-#define CPU_S390_VM_STUBROUTINES_ZARCH_64_64_HPP
+#ifndef CPU_S390_STUBROUTINES_S390_HPP
+#define CPU_S390_STUBROUTINES_S390_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to extend it.
@@ -100,4 +100,4 @@
   static void generate_load_trot_table_addr(MacroAssembler* masm, Register table);
 };
 
-#endif // CPU_S390_VM_STUBROUTINES_ZARCH_64_64_HPP
+#endif // CPU_S390_STUBROUTINES_S390_HPP
--- a/src/hotspot/cpu/s390/templateTable_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/templateTable_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_TEMPLATETABLE_S390_HPP
-#define CPU_S390_VM_TEMPLATETABLE_S390_HPP
+#ifndef CPU_S390_TEMPLATETABLE_S390_HPP
+#define CPU_S390_TEMPLATETABLE_S390_HPP
 
   static void prepare_invoke(int byte_no,
                              Register method,         // linked method (or i-klass)
@@ -38,4 +38,4 @@
   static void index_check(Register array, Register index, unsigned int shift);
   static void index_check_without_pop(Register array, Register index);
 
-#endif // CPU_S390_VM_TEMPLATETABLE_S390_HPP
+#endif // CPU_S390_TEMPLATETABLE_S390_HPP
--- a/src/hotspot/cpu/s390/vmStructs_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/vmStructs_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_VMSTRUCTS_S390_HPP
-#define CPU_S390_VM_VMSTRUCTS_S390_HPP
+#ifndef CPU_S390_VMSTRUCTS_S390_HPP
+#define CPU_S390_VMSTRUCTS_S390_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -38,4 +38,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_S390_VM_VMSTRUCTS_S390_HPP
+#endif // CPU_S390_VMSTRUCTS_S390_HPP
--- a/src/hotspot/cpu/s390/vm_version_ext_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/vm_version_ext_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_VM_VERSION_EXT_S390_HPP
-#define CPU_S390_VM_VM_VERSION_EXT_S390_HPP
+#ifndef CPU_S390_VM_VERSION_EXT_S390_HPP
+#define CPU_S390_VM_VERSION_EXT_S390_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_s390.hpp"
@@ -59,4 +59,4 @@
   static const char* cpu_description(void);
 };
 
-#endif // CPU_S390_VM_VM_VERSION_EXT_S390_HPP
+#endif // CPU_S390_VM_VERSION_EXT_S390_HPP
--- a/src/hotspot/cpu/s390/vm_version_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/vm_version_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_VM_VERSION_S390_HPP
-#define CPU_S390_VM_VM_VERSION_S390_HPP
+#ifndef CPU_S390_VM_VERSION_S390_HPP
+#define CPU_S390_VM_VERSION_S390_HPP
 
 
 #include "runtime/globals_extension.hpp"
@@ -487,4 +487,4 @@
   static unsigned long z_SIGSEGV();
 };
 
-#endif // CPU_S390_VM_VM_VERSION_S390_HPP
+#endif // CPU_S390_VM_VERSION_S390_HPP
--- a/src/hotspot/cpu/s390/vmreg_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/vmreg_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_VMREG_S390_HPP
-#define CPU_S390_VM_VMREG_S390_HPP
+#ifndef CPU_S390_VMREG_S390_HPP
+#define CPU_S390_VMREG_S390_HPP
 
 inline bool is_Register() {
   return (unsigned int)value() < (unsigned int)ConcreteRegisterImpl::max_gpr;
@@ -50,4 +50,4 @@
   return is_even(value());
 }
 
-#endif // CPU_S390_VM_VMREG_S390_HPP
+#endif // CPU_S390_VMREG_S390_HPP
--- a/src/hotspot/cpu/s390/vmreg_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/s390/vmreg_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_S390_VM_VMREG_S390_INLINE_HPP
-#define CPU_S390_VM_VMREG_S390_INLINE_HPP
+#ifndef CPU_S390_VMREG_S390_INLINE_HPP
+#define CPU_S390_VMREG_S390_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   if (this == noreg) {
@@ -41,4 +41,4 @@
   return VMRegImpl::as_VMReg((encoding() << 1) + ConcreteRegisterImpl::max_fpr);
 }
 
-#endif // CPU_S390_VM_VMREG_S390_INLINE_HPP
+#endif // CPU_S390_VMREG_S390_INLINE_HPP
--- a/src/hotspot/cpu/sparc/assembler_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/assembler_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
-#define CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
+#ifndef CPU_SPARC_ASSEMBLER_SPARC_HPP
+#define CPU_SPARC_ASSEMBLER_SPARC_HPP
 
 #include "asm/register.hpp"
 
@@ -1328,4 +1328,4 @@
   }
 };
 
-#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_HPP
+#endif // CPU_SPARC_ASSEMBLER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/assembler_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/assembler_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
-#define CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
+#ifndef CPU_SPARC_ASSEMBLER_SPARC_INLINE_HPP
+#define CPU_SPARC_ASSEMBLER_SPARC_INLINE_HPP
 
 #include "asm/assembler.hpp"
 
@@ -1127,4 +1127,4 @@
   emit_int32(op(arith_op) | rd(0) | op3(mpmul_op3) | rs1(0) | opf(mpmul_opf) | uimm(uimm5, 5));
 }
 
-#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP
+#endif // CPU_SPARC_ASSEMBLER_SPARC_INLINE_HPP
--- a/src/hotspot/cpu/sparc/bytes_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/bytes_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_BYTES_SPARC_HPP
-#define CPU_SPARC_VM_BYTES_SPARC_HPP
+#ifndef CPU_SPARC_BYTES_SPARC_HPP
+#define CPU_SPARC_BYTES_SPARC_HPP
 
 #include "memory/allocation.hpp"
 
@@ -157,4 +157,4 @@
 // 1.17 99/06/22 16:37:35 bytes_i486.hpp
 //End
 
-#endif // CPU_SPARC_VM_BYTES_SPARC_HPP
+#endif // CPU_SPARC_BYTES_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_Defs_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_Defs_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_DEFS_SPARC_HPP
-#define CPU_SPARC_VM_C1_DEFS_SPARC_HPP
+#ifndef CPU_SPARC_C1_DEFS_SPARC_HPP
+#define CPU_SPARC_C1_DEFS_SPARC_HPP
 
 // native word offsets from memory address (big endian)
 enum {
@@ -69,4 +69,4 @@
   pd_float_saved_as_double = false
 };
 
-#endif // CPU_SPARC_VM_C1_DEFS_SPARC_HPP
+#endif // CPU_SPARC_C1_DEFS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_FpuStackSim_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_FpuStackSim_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,10 +22,10 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
-#define CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
+#ifndef CPU_SPARC_C1_FPUSTACKSIM_SPARC_HPP
+#define CPU_SPARC_C1_FPUSTACKSIM_SPARC_HPP
 
 // No FPU stack on SPARC
 class FpuStackSim;
 
-#endif // CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP
+#endif // CPU_SPARC_C1_FPUSTACKSIM_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_FrameMap_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_FrameMap_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
-#define CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
+#ifndef CPU_SPARC_C1_FRAMEMAP_SPARC_HPP
+#define CPU_SPARC_C1_FRAMEMAP_SPARC_HPP
 
  public:
 
@@ -182,4 +182,4 @@
   static int nof_caller_save_cpu_regs() { return pd_nof_caller_save_cpu_regs_frame_map; }
   static int last_cpu_reg()             { return pd_last_cpu_reg;  }
 
-#endif // CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP
+#endif // CPU_SPARC_C1_FRAMEMAP_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
-#define CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
+#ifndef CPU_SPARC_C1_LIRASSEMBLER_SPARC_HPP
+#define CPU_SPARC_C1_LIRASSEMBLER_SPARC_HPP
 
  private:
 
@@ -71,4 +71,4 @@
   void   pack64(LIR_Opr src, LIR_Opr dst);
   void unpack64(LIR_Opr src, LIR_Opr dst);
 
-#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
+#endif // CPU_SPARC_C1_LIRASSEMBLER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_LinearScan_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_LinearScan_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
-#define CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
+#ifndef CPU_SPARC_C1_LINEARSCAN_SPARC_HPP
+#define CPU_SPARC_C1_LINEARSCAN_SPARC_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
   return reg_num < 26 || reg_num > 31;
@@ -67,4 +67,4 @@
   return false;
 }
 
-#endif // CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP
+#endif // CPU_SPARC_C1_LINEARSCAN_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_MacroAssembler_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_MacroAssembler_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
-#define CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
+#ifndef CPU_SPARC_C1_MACROASSEMBLER_SPARC_HPP
+#define CPU_SPARC_C1_MACROASSEMBLER_SPARC_HPP
 
   void pd_init() { /* nothing to do */ }
 
@@ -95,4 +95,4 @@
   void save_live_registers_no_oop_map(bool save_fpu_registers);
   void restore_live_registers(bool restore_fpu_registers);
 
-#endif // CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP
+#endif // CPU_SPARC_C1_MACROASSEMBLER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c1_globals_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c1_globals_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
-#define CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
+#ifndef CPU_SPARC_C1_GLOBALS_SPARC_HPP
+#define CPU_SPARC_C1_GLOBALS_SPARC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -68,4 +68,4 @@
 define_pd_global(bool, CSEArrayLength,               true );
 define_pd_global(bool, TwoOperandLIRForm,            false);
 
-#endif // CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP
+#endif // CPU_SPARC_C1_GLOBALS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/c2_globals_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/c2_globals_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
-#define CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
+#ifndef CPU_SPARC_C2_GLOBALS_SPARC_HPP
+#define CPU_SPARC_C2_GLOBALS_SPARC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -91,4 +91,4 @@
 // Ergonomics related flags
 define_pd_global(bool, NeverActAsServerClassMachine, false);
 
-#endif // CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP
+#endif // CPU_SPARC_C2_GLOBALS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/codeBuffer_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/codeBuffer_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
-#define CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
+#ifndef CPU_SPARC_CODEBUFFER_SPARC_HPP
+#define CPU_SPARC_CODEBUFFER_SPARC_HPP
 
 private:
   void pd_initialize() {}
@@ -31,4 +31,4 @@
 public:
   void flush_bundle(bool start_new_bundle) {}
 
-#endif // CPU_SPARC_VM_CODEBUFFER_SPARC_HPP
+#endif // CPU_SPARC_CODEBUFFER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/copy_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/copy_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_COPY_SPARC_HPP
-#define CPU_SPARC_VM_COPY_SPARC_HPP
+#ifndef CPU_SPARC_COPY_SPARC_HPP
+#define CPU_SPARC_COPY_SPARC_HPP
 
 // Inline functions for memory copy and fill.
 
@@ -210,4 +210,4 @@
   (void)memset(to, 0, count);
 }
 
-#endif // CPU_SPARC_VM_COPY_SPARC_HPP
+#endif // CPU_SPARC_COPY_SPARC_HPP
--- a/src/hotspot/cpu/sparc/depChecker_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/depChecker_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
-#define CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
+#ifndef CPU_SPARC_DEPCHECKER_SPARC_HPP
+#define CPU_SPARC_DEPCHECKER_SPARC_HPP
 
 // Nothing to do on Sparc
 
-#endif // CPU_SPARC_VM_DEPCHECKER_SPARC_HPP
+#endif // CPU_SPARC_DEPCHECKER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/disassembler_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/disassembler_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
-#define CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
+#ifndef CPU_SPARC_DISASSEMBLER_SPARC_HPP
+#define CPU_SPARC_DISASSEMBLER_SPARC_HPP
 
   static int pd_instruction_alignment() {
     return sizeof(int);
@@ -33,4 +33,4 @@
     return "v9only";
   }
 
-#endif // CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP
+#endif // CPU_SPARC_DISASSEMBLER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/frame_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/frame_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_FRAME_SPARC_HPP
-#define CPU_SPARC_VM_FRAME_SPARC_HPP
+#ifndef CPU_SPARC_FRAME_SPARC_HPP
+#define CPU_SPARC_FRAME_SPARC_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -242,4 +242,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_SPARC_VM_FRAME_SPARC_HPP
+#endif // CPU_SPARC_FRAME_SPARC_HPP
--- a/src/hotspot/cpu/sparc/frame_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/frame_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
-#define CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
+#ifndef CPU_SPARC_FRAME_SPARC_INLINE_HPP
+#define CPU_SPARC_FRAME_SPARC_INLINE_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "code/vmreg.inline.hpp"
@@ -191,4 +191,4 @@
   *((oop*) map->location(O0->as_VMReg())) = obj;
 }
 
-#endif // CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP
+#endif // CPU_SPARC_FRAME_SPARC_INLINE_HPP
--- a/src/hotspot/cpu/sparc/globalDefinitions_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/globalDefinitions_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
-#define CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
+#ifndef CPU_SPARC_GLOBALDEFINITIONS_SPARC_HPP
+#define CPU_SPARC_GLOBALDEFINITIONS_SPARC_HPP
 
 // Size of Sparc Instructions
 const int BytesPerInstWord = 4;
@@ -55,4 +55,4 @@
 // SPARC have implemented the local polling
 #define THREAD_LOCAL_POLL
 
-#endif // CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
+#endif // CPU_SPARC_GLOBALDEFINITIONS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/globals_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/globals_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_GLOBALS_SPARC_HPP
-#define CPU_SPARC_VM_GLOBALS_SPARC_HPP
+#ifndef CPU_SPARC_GLOBALS_SPARC_HPP
+#define CPU_SPARC_GLOBALS_SPARC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -134,4 +134,4 @@
           "Distance to prefetch destination array in arraycopy")            \
           constraint(ArraycopyDstPrefetchDistanceConstraintFunc, AfterErgo) \
 
-#endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP
+#endif // CPU_SPARC_GLOBALS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/icache_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/icache_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_ICACHE_SPARC_HPP
-#define CPU_SPARC_VM_ICACHE_SPARC_HPP
+#ifndef CPU_SPARC_ICACHE_SPARC_HPP
+#define CPU_SPARC_ICACHE_SPARC_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM modifies
 // code, part of the processor instruction cache potentially has to be flushed.
@@ -40,4 +40,4 @@
   // Use default implementation
 };
 
-#endif // CPU_SPARC_VM_ICACHE_SPARC_HPP
+#endif // CPU_SPARC_ICACHE_SPARC_HPP
--- a/src/hotspot/cpu/sparc/interp_masm_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/interp_masm_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
-#define CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
+#ifndef CPU_SPARC_INTERP_MASM_SPARC_HPP
+#define CPU_SPARC_INTERP_MASM_SPARC_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -334,4 +334,4 @@
 
 };
 
-#endif // CPU_SPARC_VM_INTERP_MASM_SPARC_HPP
+#endif // CPU_SPARC_INTERP_MASM_SPARC_HPP
--- a/src/hotspot/cpu/sparc/interpreterRT_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/interpreterRT_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
-#define CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
+#ifndef CPU_SPARC_INTERPRETERRT_SPARC_HPP
+#define CPU_SPARC_INTERPRETERRT_SPARC_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -60,4 +60,4 @@
   void generate( uint64_t fingerprint );
 };
 
-#endif // CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP
+#endif // CPU_SPARC_INTERPRETERRT_SPARC_HPP
--- a/src/hotspot/cpu/sparc/javaFrameAnchor_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/javaFrameAnchor_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
-#define CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
+#ifndef CPU_SPARC_JAVAFRAMEANCHOR_SPARC_HPP
+#define CPU_SPARC_JAVAFRAMEANCHOR_SPARC_HPP
 
 private:
   volatile int _flags;
@@ -99,4 +99,4 @@
     OrderAccess::fence();
   }
 
-#endif // CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP
+#endif // CPU_SPARC_JAVAFRAMEANCHOR_SPARC_HPP
--- a/src/hotspot/cpu/sparc/jniTypes_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/jniTypes_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_JNITYPES_SPARC_HPP
-#define CPU_SPARC_VM_JNITYPES_SPARC_HPP
+#ifndef CPU_SPARC_JNITYPES_SPARC_HPP
+#define CPU_SPARC_JNITYPES_SPARC_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -88,4 +88,4 @@
 
 };
 
-#endif // CPU_SPARC_VM_JNITYPES_SPARC_HPP
+#endif // CPU_SPARC_JNITYPES_SPARC_HPP
--- a/src/hotspot/cpu/sparc/macroAssembler_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/macroAssembler_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_MACROASSEMBLER_SPARC_HPP
-#define CPU_SPARC_VM_MACROASSEMBLER_SPARC_HPP
+#ifndef CPU_SPARC_MACROASSEMBLER_SPARC_HPP
+#define CPU_SPARC_MACROASSEMBLER_SPARC_HPP
 
 #include "asm/assembler.hpp"
 #include "utilities/macros.hpp"
@@ -1397,4 +1397,4 @@
    ~SkipIfEqual();
 };
 
-#endif // CPU_SPARC_VM_MACROASSEMBLER_SPARC_HPP
+#endif // CPU_SPARC_MACROASSEMBLER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/macroAssembler_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/macroAssembler_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_MACROASSEMBLER_SPARC_INLINE_HPP
-#define CPU_SPARC_VM_MACROASSEMBLER_SPARC_INLINE_HPP
+#ifndef CPU_SPARC_MACROASSEMBLER_SPARC_INLINE_HPP
+#define CPU_SPARC_MACROASSEMBLER_SPARC_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/macroAssembler.hpp"
@@ -719,4 +719,4 @@
   if (a.has_index()) { assert(offset == 0, ""); swap(a.base(), a.index(), d        ); }
   else               {                          swap(a.base(), a.disp() + offset, d); }
 }
-#endif // CPU_SPARC_VM_MACROASSEMBLER_SPARC_INLINE_HPP
+#endif // CPU_SPARC_MACROASSEMBLER_SPARC_INLINE_HPP
--- a/src/hotspot/cpu/sparc/nativeInst_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/nativeInst_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_NATIVEINST_SPARC_HPP
-#define CPU_SPARC_VM_NATIVEINST_SPARC_HPP
+#ifndef CPU_SPARC_NATIVEINST_SPARC_HPP
+#define CPU_SPARC_NATIVEINST_SPARC_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "runtime/icache.hpp"
@@ -809,4 +809,4 @@
   static void insert(address code_pos);
 };
 
-#endif // CPU_SPARC_VM_NATIVEINST_SPARC_HPP
+#endif // CPU_SPARC_NATIVEINST_SPARC_HPP
--- a/src/hotspot/cpu/sparc/registerMap_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/registerMap_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
-#define CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
+#ifndef CPU_SPARC_REGISTERMAP_SPARC_HPP
+#define CPU_SPARC_REGISTERMAP_SPARC_HPP
 
 // machine-dependent implemention for register maps
   friend class frame;
@@ -56,4 +56,4 @@
   // When popping out of compiled frames, we make all IRegs disappear.
   void make_integer_regs_unsaved() { _location_valid[0] = 0; }
 
-#endif // CPU_SPARC_VM_REGISTERMAP_SPARC_HPP
+#endif // CPU_SPARC_REGISTERMAP_SPARC_HPP
--- a/src/hotspot/cpu/sparc/register_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/register_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_REGISTER_SPARC_HPP
-#define CPU_SPARC_VM_REGISTER_SPARC_HPP
+#ifndef CPU_SPARC_REGISTER_SPARC_HPP
+#define CPU_SPARC_REGISTER_SPARC_HPP
 
 #include "asm/register.hpp"
 
@@ -337,4 +337,4 @@
   }
 };
 
-#endif // CPU_SPARC_VM_REGISTER_SPARC_HPP
+#endif // CPU_SPARC_REGISTER_SPARC_HPP
--- a/src/hotspot/cpu/sparc/relocInfo_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/relocInfo_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_RELOCINFO_SPARC_HPP
-#define CPU_SPARC_VM_RELOCINFO_SPARC_HPP
+#ifndef CPU_SPARC_RELOCINFO_SPARC_HPP
+#define CPU_SPARC_RELOCINFO_SPARC_HPP
 
   // machine-dependent parts of class relocInfo
  private:
@@ -54,4 +54,4 @@
 // 1.9 99/07/16 11:12:11 relocInfo_i486.hpp
 //End
 
-#endif // CPU_SPARC_VM_RELOCINFO_SPARC_HPP
+#endif // CPU_SPARC_RELOCINFO_SPARC_HPP
--- a/src/hotspot/cpu/sparc/stubRoutines_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/stubRoutines_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
-#define CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
+#ifndef CPU_SPARC_STUBROUTINES_SPARC_HPP
+#define CPU_SPARC_STUBROUTINES_SPARC_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to
@@ -73,4 +73,4 @@
   static address crc_by128_masks_addr()  { return (address)_crc_by128_masks; }
 };
 
-#endif // CPU_SPARC_VM_STUBROUTINES_SPARC_HPP
+#endif // CPU_SPARC_STUBROUTINES_SPARC_HPP
--- a/src/hotspot/cpu/sparc/templateTable_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/templateTable_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
-#define CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
+#ifndef CPU_SPARC_TEMPLATETABLE_SPARC_HPP
+#define CPU_SPARC_TEMPLATETABLE_SPARC_HPP
 
   static void prepare_invoke(int byte_no,
                              Register method,         // linked method (or i-klass)
@@ -40,4 +40,4 @@
   static void generate_vtable_call(Register Rrecv, Register Rindex, Register Rret);
   static void volatile_barrier(Assembler::Membar_mask_bits order_constraint);
 
-#endif // CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP
+#endif // CPU_SPARC_TEMPLATETABLE_SPARC_HPP
--- a/src/hotspot/cpu/sparc/vmStructs_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/vmStructs_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
-#define CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
+#ifndef CPU_SPARC_VMSTRUCTS_SPARC_HPP
+#define CPU_SPARC_VMSTRUCTS_SPARC_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -119,4 +119,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP
+#endif // CPU_SPARC_VMSTRUCTS_SPARC_HPP
--- a/src/hotspot/cpu/sparc/vm_version_ext_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/vm_version_ext_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_VM_VERSION_EXT_SPARC_HPP
-#define CPU_SPARC_VM_VM_VERSION_EXT_SPARC_HPP
+#ifndef CPU_SPARC_VM_VERSION_EXT_SPARC_HPP
+#define CPU_SPARC_VM_VERSION_EXT_SPARC_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_sparc.hpp"
@@ -66,4 +66,4 @@
   static const char* cpu_description(void);
 };
 
-#endif // CPU_SPARC_VM_VM_VERSION_EXT_SPARC_HPP
+#endif // CPU_SPARC_VM_VERSION_EXT_SPARC_HPP
--- a/src/hotspot/cpu/sparc/vm_version_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/vm_version_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_VM_VERSION_SPARC_HPP
-#define CPU_SPARC_VM_VM_VERSION_SPARC_HPP
+#ifndef CPU_SPARC_VM_VERSION_SPARC_HPP
+#define CPU_SPARC_VM_VERSION_SPARC_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -373,4 +373,4 @@
   }
 };
 
-#endif // CPU_SPARC_VM_VM_VERSION_SPARC_HPP
+#endif // CPU_SPARC_VM_VERSION_SPARC_HPP
--- a/src/hotspot/cpu/sparc/vmreg_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/vmreg_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_VMREG_SPARC_HPP
-#define CPU_SPARC_VM_VMREG_SPARC_HPP
+#ifndef CPU_SPARC_VMREG_SPARC_HPP
+#define CPU_SPARC_VMREG_SPARC_HPP
 
 inline bool is_Register() { return value() >= 0 && value() < ConcreteRegisterImpl::max_gpr; }
 inline bool is_FloatRegister() { return value() >= ConcreteRegisterImpl::max_gpr &&
@@ -55,4 +55,4 @@
   return false;
 }
 
-#endif // CPU_SPARC_VM_VMREG_SPARC_HPP
+#endif // CPU_SPARC_VMREG_SPARC_HPP
--- a/src/hotspot/cpu/sparc/vmreg_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/sparc/vmreg_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
-#define CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
+#ifndef CPU_SPARC_VMREG_SPARC_INLINE_HPP
+#define CPU_SPARC_VMREG_SPARC_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   if( this==noreg ) return VMRegImpl::Bad();
@@ -34,4 +34,4 @@
 
 
 
-#endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP
+#endif // CPU_SPARC_VMREG_SPARC_INLINE_HPP
--- a/src/hotspot/cpu/x86/assembler_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/assembler_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_ASSEMBLER_X86_HPP
-#define CPU_X86_VM_ASSEMBLER_X86_HPP
+#ifndef CPU_X86_ASSEMBLER_X86_HPP
+#define CPU_X86_ASSEMBLER_X86_HPP
 
 #include "asm/register.hpp"
 #include "vm_version_x86.hpp"
@@ -2310,4 +2310,4 @@
 
 };
 
-#endif // CPU_X86_VM_ASSEMBLER_X86_HPP
+#endif // CPU_X86_ASSEMBLER_X86_HPP
--- a/src/hotspot/cpu/x86/assembler_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/assembler_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
-#define CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
+#ifndef CPU_X86_ASSEMBLER_X86_INLINE_HPP
+#define CPU_X86_ASSEMBLER_X86_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
@@ -49,4 +49,4 @@
 inline void Assembler::prefixq(Address adr, XMMRegister reg) {}
 #endif // _LP64
 
-#endif // CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP
+#endif // CPU_X86_ASSEMBLER_X86_INLINE_HPP
--- a/src/hotspot/cpu/x86/bytes_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/bytes_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_BYTES_X86_HPP
-#define CPU_X86_VM_BYTES_X86_HPP
+#ifndef CPU_X86_BYTES_X86_HPP
+#define CPU_X86_BYTES_X86_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/align.hpp"
@@ -124,4 +124,4 @@
 // The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base]
 #include OS_CPU_HEADER_INLINE(bytes)
 
-#endif // CPU_X86_VM_BYTES_X86_HPP
+#endif // CPU_X86_BYTES_X86_HPP
--- a/src/hotspot/cpu/x86/c1_Defs_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_Defs_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_DEFS_X86_HPP
-#define CPU_X86_VM_C1_DEFS_X86_HPP
+#ifndef CPU_X86_C1_DEFS_X86_HPP
+#define CPU_X86_C1_DEFS_X86_HPP
 
 // native word offsets from memory address (little endian)
 enum {
@@ -75,4 +75,4 @@
   pd_float_saved_as_double = true
 };
 
-#endif // CPU_X86_VM_C1_DEFS_X86_HPP
+#endif // CPU_X86_C1_DEFS_X86_HPP
--- a/src/hotspot/cpu/x86/c1_FpuStackSim_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_FpuStackSim_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
-#define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
+#ifndef CPU_X86_C1_FPUSTACKSIM_X86_HPP
+#define CPU_X86_C1_FPUSTACKSIM_X86_HPP
 
 //  Simulates the FPU stack and maintains mapping [fpu-register -> stack offset]
 //  FPU registers are described as numbers from 0..nof_fpu_regs-1
@@ -69,4 +69,4 @@
   void print() PRODUCT_RETURN;
 };
 
-#endif // CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP
+#endif // CPU_X86_C1_FPUSTACKSIM_X86_HPP
--- a/src/hotspot/cpu/x86/c1_FrameMap_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_FrameMap_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_FRAMEMAP_X86_HPP
-#define CPU_X86_VM_C1_FRAMEMAP_X86_HPP
+#ifndef CPU_X86_C1_FRAMEMAP_X86_HPP
+#define CPU_X86_C1_FRAMEMAP_X86_HPP
 
 //  On i486 the frame looks as follows:
 //
@@ -166,5 +166,4 @@
   static int last_cpu_reg()             { return adjust_reg_range(pd_last_cpu_reg);  }
   static int last_byte_reg()            { return adjust_reg_range(pd_last_byte_reg); }
 
-#endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP
-
+#endif // CPU_X86_C1_FRAMEMAP_X86_HPP
--- a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
-#define CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
+#ifndef CPU_X86_C1_LIRASSEMBLER_X86_HPP
+#define CPU_X86_C1_LIRASSEMBLER_X86_HPP
 
  private:
 
@@ -62,4 +62,4 @@
   void store_parameter(jobject c,   int offset_from_esp_in_words);
   void store_parameter(Metadata* c, int offset_from_esp_in_words);
 
-#endif // CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP
+#endif // CPU_X86_C1_LIRASSEMBLER_X86_HPP
--- a/src/hotspot/cpu/x86/c1_LinearScan_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_LinearScan_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_LINEARSCAN_X86_HPP
-#define CPU_X86_VM_C1_LINEARSCAN_X86_HPP
+#ifndef CPU_X86_C1_LINEARSCAN_X86_HPP
+#define CPU_X86_C1_LINEARSCAN_X86_HPP
 
 inline bool LinearScan::is_processed_reg_num(int reg_num) {
 #ifndef _LP64
@@ -195,4 +195,4 @@
   void allocate();
 };
 
-#endif // CPU_X86_VM_C1_LINEARSCAN_X86_HPP
+#endif // CPU_X86_C1_LINEARSCAN_X86_HPP
--- a/src/hotspot/cpu/x86/c1_MacroAssembler_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_MacroAssembler_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
-#define CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
+#ifndef CPU_X86_C1_MACROASSEMBLER_X86_HPP
+#define CPU_X86_C1_MACROASSEMBLER_X86_HPP
 
 // C1_MacroAssembler contains high-level macros for C1
 
@@ -127,4 +127,4 @@
   void restore_live_registers_except_rax(bool restore_fpu_registers);
   void restore_live_registers(bool restore_fpu_registers);
 
-#endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP
+#endif // CPU_X86_C1_MACROASSEMBLER_X86_HPP
--- a/src/hotspot/cpu/x86/c1_globals_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c1_globals_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C1_GLOBALS_X86_HPP
-#define CPU_X86_VM_C1_GLOBALS_X86_HPP
+#ifndef CPU_X86_C1_GLOBALS_X86_HPP
+#define CPU_X86_C1_GLOBALS_X86_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -67,4 +67,4 @@
 define_pd_global(bool, CSEArrayLength,                 false);
 define_pd_global(bool, TwoOperandLIRForm,              true );
 
-#endif // CPU_X86_VM_C1_GLOBALS_X86_HPP
+#endif // CPU_X86_C1_GLOBALS_X86_HPP
--- a/src/hotspot/cpu/x86/c2_globals_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/c2_globals_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_C2_GLOBALS_X86_HPP
-#define CPU_X86_VM_C2_GLOBALS_X86_HPP
+#ifndef CPU_X86_C2_GLOBALS_X86_HPP
+#define CPU_X86_C2_GLOBALS_X86_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -99,4 +99,4 @@
 // Ergonomics related flags
 define_pd_global(bool, NeverActAsServerClassMachine, false);
 
-#endif // CPU_X86_VM_C2_GLOBALS_X86_HPP
+#endif // CPU_X86_C2_GLOBALS_X86_HPP
--- a/src/hotspot/cpu/x86/codeBuffer_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/codeBuffer_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_CODEBUFFER_X86_HPP
-#define CPU_X86_VM_CODEBUFFER_X86_HPP
+#ifndef CPU_X86_CODEBUFFER_X86_HPP
+#define CPU_X86_CODEBUFFER_X86_HPP
 
 private:
   void pd_initialize() {}
@@ -31,4 +31,4 @@
 public:
   void flush_bundle(bool start_new_bundle) {}
 
-#endif // CPU_X86_VM_CODEBUFFER_X86_HPP
+#endif // CPU_X86_CODEBUFFER_X86_HPP
--- a/src/hotspot/cpu/x86/copy_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/copy_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_COPY_X86_HPP
-#define CPU_X86_VM_COPY_X86_HPP
+#ifndef CPU_X86_COPY_X86_HPP
+#define CPU_X86_COPY_X86_HPP
 
 // Inline functions for memory copy and fill.
 
@@ -62,4 +62,4 @@
   (void)memset(to, 0, count);
 }
 
-#endif // CPU_X86_VM_COPY_X86_HPP
+#endif // CPU_X86_COPY_X86_HPP
--- a/src/hotspot/cpu/x86/depChecker_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/depChecker_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_X86_VM_DEPCHECKER_X86_HPP
-#define CPU_X86_VM_DEPCHECKER_X86_HPP
+#ifndef CPU_X86_DEPCHECKER_X86_HPP
+#define CPU_X86_DEPCHECKER_X86_HPP
 
 // Nothing to do on i486
 
-#endif // CPU_X86_VM_DEPCHECKER_X86_HPP
+#endif // CPU_X86_DEPCHECKER_X86_HPP
--- a/src/hotspot/cpu/x86/disassembler_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/disassembler_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_DISASSEMBLER_X86_HPP
-#define CPU_X86_VM_DISASSEMBLER_X86_HPP
+#ifndef CPU_X86_DISASSEMBLER_X86_HPP
+#define CPU_X86_DISASSEMBLER_X86_HPP
 
   static int pd_instruction_alignment() {
     return 1;
@@ -33,4 +33,4 @@
     return "";
   }
 
-#endif // CPU_X86_VM_DISASSEMBLER_X86_HPP
+#endif // CPU_X86_DISASSEMBLER_X86_HPP
--- a/src/hotspot/cpu/x86/frame_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/frame_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_FRAME_X86_HPP
-#define CPU_X86_VM_FRAME_X86_HPP
+#ifndef CPU_X86_FRAME_X86_HPP
+#define CPU_X86_FRAME_X86_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -156,4 +156,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_X86_VM_FRAME_X86_HPP
+#endif // CPU_X86_FRAME_X86_HPP
--- a/src/hotspot/cpu/x86/frame_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/frame_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_FRAME_X86_INLINE_HPP
-#define CPU_X86_VM_FRAME_X86_INLINE_HPP
+#ifndef CPU_X86_FRAME_X86_INLINE_HPP
+#define CPU_X86_FRAME_X86_INLINE_HPP
 
 #include "code/codeCache.hpp"
 #include "code/vmreg.inline.hpp"
@@ -245,4 +245,4 @@
   *result_adr = obj;
 }
 
-#endif // CPU_X86_VM_FRAME_X86_INLINE_HPP
+#endif // CPU_X86_FRAME_X86_INLINE_HPP
--- a/src/hotspot/cpu/x86/globalDefinitions_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/globalDefinitions_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
-#define CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
+#ifndef CPU_X86_GLOBALDEFINITIONS_X86_HPP
+#define CPU_X86_GLOBALDEFINITIONS_X86_HPP
 
 const int StackAlignmentInBytes  = 16;
 
@@ -67,4 +67,4 @@
 
 #define THREAD_LOCAL_POLL
 
-#endif // CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
+#endif // CPU_X86_GLOBALDEFINITIONS_X86_HPP
--- a/src/hotspot/cpu/x86/globals_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/globals_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_GLOBALS_X86_HPP
-#define CPU_X86_VM_GLOBALS_X86_HPP
+#ifndef CPU_X86_GLOBALS_X86_HPP
+#define CPU_X86_GLOBALS_X86_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -215,4 +215,4 @@
                                                                             \
   diagnostic(bool, UseLibmIntrinsic, true,                                  \
           "Use Libm Intrinsics")
-#endif // CPU_X86_VM_GLOBALS_X86_HPP
+#endif // CPU_X86_GLOBALS_X86_HPP
--- a/src/hotspot/cpu/x86/icache_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/icache_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_ICACHE_X86_HPP
-#define CPU_X86_VM_ICACHE_X86_HPP
+#ifndef CPU_X86_ICACHE_X86_HPP
+#define CPU_X86_ICACHE_X86_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM modifies
 // code, part of the processor instruction cache potentially has to be flushed.
@@ -57,4 +57,4 @@
 #endif // AMD64
 };
 
-#endif // CPU_X86_VM_ICACHE_X86_HPP
+#endif // CPU_X86_ICACHE_X86_HPP
--- a/src/hotspot/cpu/x86/interp_masm_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/interp_masm_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_INTERP_MASM_X86_HPP
-#define CPU_X86_VM_INTERP_MASM_X86_HPP
+#ifndef CPU_X86_INTERP_MASM_X86_HPP
+#define CPU_X86_INTERP_MASM_X86_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "interpreter/invocationCounter.hpp"
@@ -298,4 +298,4 @@
 
 };
 
-#endif // CPU_X86_VM_INTERP_MASM_X86_HPP
+#endif // CPU_X86_INTERP_MASM_X86_HPP
--- a/src/hotspot/cpu/x86/interpreterRT_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/interpreterRT_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_INTERPRETERRT_X86_HPP
-#define CPU_X86_VM_INTERPRETERRT_X86_HPP
+#ifndef CPU_X86_INTERPRETERRT_X86_HPP
+#define CPU_X86_INTERPRETERRT_X86_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -67,4 +67,4 @@
   static Register temp();
 };
 
-#endif // CPU_X86_VM_INTERPRETERRT_X86_HPP
+#endif // CPU_X86_INTERPRETERRT_X86_HPP
--- a/src/hotspot/cpu/x86/javaFrameAnchor_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/javaFrameAnchor_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
-#define CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
+#ifndef CPU_X86_JAVAFRAMEANCHOR_X86_HPP
+#define CPU_X86_JAVAFRAMEANCHOR_X86_HPP
 
 private:
 
@@ -82,4 +82,4 @@
   // Assert (last_Java_sp == NULL || fp == NULL)
   void set_last_Java_fp(intptr_t* fp)                { _last_Java_fp = fp; }
 
-#endif // CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP
+#endif // CPU_X86_JAVAFRAMEANCHOR_X86_HPP
--- a/src/hotspot/cpu/x86/jniTypes_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/jniTypes_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_JNITYPES_X86_HPP
-#define CPU_X86_VM_JNITYPES_X86_HPP
+#ifndef CPU_X86_JNITYPES_X86_HPP
+#define CPU_X86_JNITYPES_X86_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -130,4 +130,4 @@
 #undef _JNI_SLOT_OFFSET
 };
 
-#endif // CPU_X86_VM_JNITYPES_X86_HPP
+#endif // CPU_X86_JNITYPES_X86_HPP
--- a/src/hotspot/cpu/x86/macroAssembler_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/macroAssembler_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_MACROASSEMBLER_X86_HPP
-#define CPU_X86_VM_MACROASSEMBLER_X86_HPP
+#ifndef CPU_X86_MACROASSEMBLER_X86_HPP
+#define CPU_X86_MACROASSEMBLER_X86_HPP
 
 #include "asm/assembler.hpp"
 #include "utilities/macros.hpp"
@@ -1779,4 +1779,4 @@
    ~SkipIfEqual();
 };
 
-#endif // CPU_X86_VM_MACROASSEMBLER_X86_HPP
+#endif // CPU_X86_MACROASSEMBLER_X86_HPP
--- a/src/hotspot/cpu/x86/macroAssembler_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/macroAssembler_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_X86_VM_MACROASSEMBLER_X86_INLINE_HPP
-#define CPU_X86_VM_MACROASSEMBLER_X86_INLINE_HPP
+#ifndef CPU_X86_MACROASSEMBLER_X86_INLINE_HPP
+#define CPU_X86_MACROASSEMBLER_X86_INLINE_HPP
 
 // Still empty.
 
-#endif // CPU_X86_VM_MACROASSEMBLER_X86_INLINE_HPP
+#endif // CPU_X86_MACROASSEMBLER_X86_INLINE_HPP
--- a/src/hotspot/cpu/x86/nativeInst_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/nativeInst_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_NATIVEINST_X86_HPP
-#define CPU_X86_VM_NATIVEINST_X86_HPP
+#ifndef CPU_X86_NATIVEINST_X86_HPP
+#define CPU_X86_NATIVEINST_X86_HPP
 
 #include "asm/assembler.hpp"
 #include "runtime/icache.hpp"
@@ -753,4 +753,4 @@
 #endif // AMD64
 }
 
-#endif // CPU_X86_VM_NATIVEINST_X86_HPP
+#endif // CPU_X86_NATIVEINST_X86_HPP
--- a/src/hotspot/cpu/x86/rdtsc_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/rdtsc_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_RDTSC_X86_HPP
-#define CPU_X86_VM_RDTSC_X86_HPP
+#ifndef CPU_X86_RDTSC_X86_HPP
+#define CPU_X86_RDTSC_X86_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -47,4 +47,4 @@
   static bool  initialize();
 };
 
-#endif // CPU_X86_VM_RDTSC_X86_HPP
+#endif // CPU_X86_RDTSC_X86_HPP
--- a/src/hotspot/cpu/x86/registerMap_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/registerMap_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_REGISTERMAP_X86_HPP
-#define CPU_X86_VM_REGISTERMAP_X86_HPP
+#ifndef CPU_X86_REGISTERMAP_X86_HPP
+#define CPU_X86_REGISTERMAP_X86_HPP
 
 // machine-dependent implemention for register maps
   friend class frame;
@@ -37,4 +37,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_X86_VM_REGISTERMAP_X86_HPP
+#endif // CPU_X86_REGISTERMAP_X86_HPP
--- a/src/hotspot/cpu/x86/register_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/register_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_REGISTER_X86_HPP
-#define CPU_X86_VM_REGISTER_X86_HPP
+#ifndef CPU_X86_REGISTER_X86_HPP
+#define CPU_X86_REGISTER_X86_HPP
 
 #include "asm/register.hpp"
 
@@ -291,4 +291,4 @@
 
 };
 
-#endif // CPU_X86_VM_REGISTER_X86_HPP
+#endif // CPU_X86_REGISTER_X86_HPP
--- a/src/hotspot/cpu/x86/relocInfo_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/relocInfo_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_RELOCINFO_X86_HPP
-#define CPU_X86_VM_RELOCINFO_X86_HPP
+#ifndef CPU_X86_RELOCINFO_X86_HPP
+#define CPU_X86_RELOCINFO_X86_HPP
 
   // machine-dependent parts of class relocInfo
  private:
@@ -46,4 +46,4 @@
   // listed in the oop section.
   static bool mustIterateImmediateOopsInCode() { return true; }
 
-#endif // CPU_X86_VM_RELOCINFO_X86_HPP
+#endif // CPU_X86_RELOCINFO_X86_HPP
--- a/src/hotspot/cpu/x86/stubRoutines_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/stubRoutines_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_STUBROUTINES_X86_HPP
-#define CPU_X86_VM_STUBROUTINES_X86_HPP
+#ifndef CPU_X86_STUBROUTINES_X86_HPP
+#define CPU_X86_STUBROUTINES_X86_HPP
 
 // This file holds the platform specific parts of the StubRoutines
 // definition. See stubRoutines.hpp for a description on how to
@@ -248,4 +248,4 @@
 
 };
 
-#endif // CPU_X86_VM_STUBROUTINES_X86_HPP
+#endif // CPU_X86_STUBROUTINES_X86_HPP
--- a/src/hotspot/cpu/x86/templateTable_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/templateTable_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_TEMPLATETABLE_X86_HPP
-#define CPU_X86_VM_TEMPLATETABLE_X86_HPP
+#ifndef CPU_X86_TEMPLATETABLE_X86_HPP
+#define CPU_X86_TEMPLATETABLE_X86_HPP
 
   static void prepare_invoke(int byte_no,
                              Register method,         // linked method (or i-klass)
@@ -43,4 +43,4 @@
                                         Register obj, Register off, Register flags);
   static void fast_storefield_helper(Address field, Register rax);
 
-#endif // CPU_X86_VM_TEMPLATETABLE_X86_HPP
+#endif // CPU_X86_TEMPLATETABLE_X86_HPP
--- a/src/hotspot/cpu/x86/vmStructs_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/vmStructs_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_VMSTRUCTS_X86_HPP
-#define CPU_X86_VM_VMSTRUCTS_X86_HPP
+#ifndef CPU_X86_VMSTRUCTS_X86_HPP
+#define CPU_X86_VMSTRUCTS_X86_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -77,4 +77,4 @@
   declare_preprocessor_constant("VM_Version::CPU_FMA", CPU_FMA)           \
   declare_preprocessor_constant("VM_Version::CPU_VZEROUPPER", CPU_VZEROUPPER)
 
-#endif // CPU_X86_VM_VMSTRUCTS_X86_HPP
+#endif // CPU_X86_VMSTRUCTS_X86_HPP
--- a/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/vm_version_ext_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_VM_VERSION_EXT_X86_HPP
-#define CPU_X86_VM_VM_VERSION_EXT_X86_HPP
+#ifndef CPU_X86_VM_VERSION_EXT_X86_HPP
+#define CPU_X86_VM_VERSION_EXT_X86_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_x86.hpp"
@@ -97,4 +97,4 @@
   static void initialize();
 };
 
-#endif // CPU_X86_VM_VM_VERSION_EXT_X86_HPP
+#endif // CPU_X86_VM_VERSION_EXT_X86_HPP
--- a/src/hotspot/cpu/x86/vm_version_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/vm_version_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_VM_VERSION_X86_HPP
-#define CPU_X86_VM_VM_VERSION_X86_HPP
+#ifndef CPU_X86_VM_VERSION_X86_HPP
+#define CPU_X86_VM_VERSION_X86_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -932,4 +932,4 @@
   static bool supports_on_spin_wait() { return supports_sse2(); }
 };
 
-#endif // CPU_X86_VM_VM_VERSION_X86_HPP
+#endif // CPU_X86_VM_VERSION_X86_HPP
--- a/src/hotspot/cpu/x86/vmreg_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/vmreg_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_VMREG_X86_HPP
-#define CPU_X86_VM_VMREG_X86_HPP
+#ifndef CPU_X86_VMREG_X86_HPP
+#define CPU_X86_VMREG_X86_HPP
 
 
 
@@ -93,4 +93,4 @@
   return is_even(value());
 }
 
-#endif // CPU_X86_VM_VMREG_X86_HPP
+#endif // CPU_X86_VMREG_X86_HPP
--- a/src/hotspot/cpu/x86/vmreg_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/vmreg_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_X86_VM_VMREG_X86_INLINE_HPP
-#define CPU_X86_VM_VMREG_X86_INLINE_HPP
+#ifndef CPU_X86_VMREG_X86_INLINE_HPP
+#define CPU_X86_VMREG_X86_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   if( this==noreg ) return VMRegImpl::Bad();
@@ -46,4 +46,4 @@
   return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_xmm);
 }
 
-#endif // CPU_X86_VM_VMREG_X86_INLINE_HPP
+#endif // CPU_X86_VMREG_X86_INLINE_HPP
--- a/src/hotspot/cpu/x86/x86.ad	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/x86/x86.ad	Tue Jan 22 09:43:38 2019 -0500
@@ -9936,6 +9936,7 @@
     __ evpdpwssd($dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, vector_len);
   %}
   ins_pipe( pipe_slow );
+  ins_cost(10);
 %}
 
 instruct vmuladdadd8S4I_reg(vecX dst, vecX src1, vecX src2) %{
@@ -9947,6 +9948,7 @@
     __ evpdpwssd($dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, vector_len);
   %}
   ins_pipe( pipe_slow );
+  ins_cost(10);
 %}
 
 instruct vmuladdadd16S8I_reg(vecY dst, vecY src1, vecY src2) %{
@@ -9958,6 +9960,7 @@
     __ evpdpwssd($dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, vector_len);
   %}
   ins_pipe( pipe_slow );
+  ins_cost(10);
 %}
 
 instruct vmuladdadd32S16I_reg(vecZ dst, vecZ src1, vecZ src2) %{
@@ -9969,6 +9972,7 @@
     __ evpdpwssd($dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, vector_len);
   %}
   ins_pipe( pipe_slow );
+  ins_cost(10);
 %}
 
 // --------------------------------- PopCount --------------------------------------
--- a/src/hotspot/cpu/zero/assembler_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/assembler_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
-#define CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
+#ifndef CPU_ZERO_ASSEMBLER_ZERO_HPP
+#define CPU_ZERO_ASSEMBLER_ZERO_HPP
 
 // In normal, CPU-specific ports of HotSpot these two classes are used
 // for generating assembly language.  We don't do any of this in zero,
@@ -59,4 +59,4 @@
 address ShouldNotCallThisStub();
 address ShouldNotCallThisEntry();
 
-#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
+#endif // CPU_ZERO_ASSEMBLER_ZERO_HPP
--- a/src/hotspot/cpu/zero/assembler_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/assembler_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_ASSEMBLER_ZERO_INLINE_HPP
+#define CPU_ZERO_ASSEMBLER_ZERO_INLINE_HPP
 
 #include "asm/assembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
@@ -33,4 +33,4 @@
 
 // This file is intentionally empty
 
-#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP
+#endif // CPU_ZERO_ASSEMBLER_ZERO_INLINE_HPP
--- a/src/hotspot/cpu/zero/bytecodeInterpreter_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/bytecodeInterpreter_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2011 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
-#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
+#ifndef CPU_ZERO_BYTECODEINTERPRETER_ZERO_HPP
+#define CPU_ZERO_BYTECODEINTERPRETER_ZERO_HPP
 
 // Platform specific for C++ based Interpreter
 
@@ -171,4 +171,4 @@
 #define SET_VMSLOTS_DOUBLE(value, offset) (((VMJavaVal64*)&vmslots[(offset) - 1])->d = (value))
 #define SET_VMSLOTS_LONG(value, offset)   (((VMJavaVal64*)&vmslots[(offset) - 1])->l = (value))
 
-#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP
+#endif // CPU_ZERO_BYTECODEINTERPRETER_ZERO_HPP
--- a/src/hotspot/cpu/zero/bytecodeInterpreter_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/bytecodeInterpreter_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_BYTECODEINTERPRETER_ZERO_INLINE_HPP
+#define CPU_ZERO_BYTECODEINTERPRETER_ZERO_INLINE_HPP
 
 // Inline interpreter functions for zero
 
@@ -303,4 +303,4 @@
   return (jbyte) val;
 }
 
-#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP
+#endif // CPU_ZERO_BYTECODEINTERPRETER_ZERO_INLINE_HPP
--- a/src/hotspot/cpu/zero/bytes_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/bytes_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_BYTES_ZERO_HPP
-#define CPU_ZERO_VM_BYTES_ZERO_HPP
+#ifndef CPU_ZERO_BYTES_ZERO_HPP
+#define CPU_ZERO_BYTES_ZERO_HPP
 
 #include "memory/allocation.hpp"
 
@@ -160,4 +160,4 @@
 
 #endif // VM_LITTLE_ENDIAN
 
-#endif // CPU_ZERO_VM_BYTES_ZERO_HPP
+#endif // CPU_ZERO_BYTES_ZERO_HPP
--- a/src/hotspot/cpu/zero/codeBuffer_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/codeBuffer_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,10 +23,10 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
-#define CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
+#ifndef CPU_ZERO_CODEBUFFER_ZERO_HPP
+#define CPU_ZERO_CODEBUFFER_ZERO_HPP
 
  private:
   void pd_initialize() {}
 
-#endif // CPU_ZERO_VM_CODEBUFFER_ZERO_HPP
+#endif // CPU_ZERO_CODEBUFFER_ZERO_HPP
--- a/src/hotspot/cpu/zero/copy_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/copy_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_COPY_ZERO_HPP
-#define CPU_ZERO_VM_COPY_ZERO_HPP
+#ifndef CPU_ZERO_COPY_ZERO_HPP
+#define CPU_ZERO_COPY_ZERO_HPP
 
 // Inline functions for memory copy and fill.
 
@@ -180,4 +180,4 @@
   memset(to, 0, count);
 }
 
-#endif // CPU_ZERO_VM_COPY_ZERO_HPP
+#endif // CPU_ZERO_COPY_ZERO_HPP
--- a/src/hotspot/cpu/zero/cppInterpreter_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/cppInterpreter_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010, 2011 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
-#define CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
+#ifndef CPU_ZERO_CPPINTERPRETER_ZERO_HPP
+#define CPU_ZERO_CPPINTERPRETER_ZERO_HPP
 
  protected:
   // Size of interpreter code
@@ -49,4 +49,4 @@
   static intptr_t* calculate_unwind_sp(ZeroStack* stack, oop method_handle);
   static void throw_exception(JavaThread* thread, Symbol* name,char *msg=NULL);
 
-#endif // CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP
+#endif // CPU_ZERO_CPPINTERPRETER_ZERO_HPP
--- a/src/hotspot/cpu/zero/depChecker_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/depChecker_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,9 +23,9 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
-#define CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
+#ifndef CPU_ZERO_DEPCHECKER_ZERO_HPP
+#define CPU_ZERO_DEPCHECKER_ZERO_HPP
 
 // This file is intentionally empty
 
-#endif // CPU_ZERO_VM_DEPCHECKER_ZERO_HPP
+#endif // CPU_ZERO_DEPCHECKER_ZERO_HPP
--- a/src/hotspot/cpu/zero/disassembler_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/disassembler_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
-#define CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
+#ifndef CPU_ZERO_DISASSEMBLER_ZERO_HPP
+#define CPU_ZERO_DISASSEMBLER_ZERO_HPP
 
   static int pd_instruction_alignment() {
     return 1;
@@ -34,4 +34,4 @@
     return "";
   }
 
-#endif // CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP
+#endif // CPU_ZERO_DISASSEMBLER_ZERO_HPP
--- a/src/hotspot/cpu/zero/entryFrame_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/entryFrame_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
-#define CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
+#ifndef CPU_ZERO_ENTRYFRAME_ZERO_HPP
+#define CPU_ZERO_ENTRYFRAME_ZERO_HPP
 
 #include "runtime/javaCalls.hpp"
 #include "stack_zero.hpp"
@@ -70,4 +70,4 @@
                      int   buflen) const;
 };
 
-#endif // CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP
+#endif // CPU_ZERO_ENTRYFRAME_ZERO_HPP
--- a/src/hotspot/cpu/zero/entry_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/entry_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
-#define CPU_ZERO_VM_ENTRY_ZERO_HPP
+#ifndef CPU_ZERO_ENTRY_ZERO_HPP
+#define CPU_ZERO_ENTRY_ZERO_HPP
 
 #include "interpreter/cppInterpreter.hpp"
 
@@ -78,4 +78,4 @@
   }
 };
 
-#endif // CPU_ZERO_VM_ENTRY_ZERO_HPP
+#endif // CPU_ZERO_ENTRY_ZERO_HPP
--- a/src/hotspot/cpu/zero/fakeStubFrame_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/fakeStubFrame_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
-#define CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
+#ifndef CPU_ZERO_FAKESTUBFRAME_ZERO_HPP
+#define CPU_ZERO_FAKESTUBFRAME_ZERO_HPP
 
 #include "stack_zero.hpp"
 
@@ -57,4 +57,4 @@
                      int   buflen) const {}
 };
 
-#endif // CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP
+#endif // CPU_ZERO_FAKESTUBFRAME_ZERO_HPP
--- a/src/hotspot/cpu/zero/frame_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/frame_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_FRAME_ZERO_HPP
-#define CPU_ZERO_VM_FRAME_ZERO_HPP
+#ifndef CPU_ZERO_FRAME_ZERO_HPP
+#define CPU_ZERO_FRAME_ZERO_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -77,4 +77,4 @@
 
   static jint interpreter_frame_expression_stack_direction() { return -1; }
 
-#endif // CPU_ZERO_VM_FRAME_ZERO_HPP
+#endif // CPU_ZERO_FRAME_ZERO_HPP
--- a/src/hotspot/cpu/zero/frame_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/frame_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_FRAME_ZERO_INLINE_HPP
+#define CPU_ZERO_FRAME_ZERO_INLINE_HPP
 
 #include "code/codeCache.hpp"
 
@@ -164,4 +164,4 @@
   return (intptr_t *) -1;
 }
 
-#endif // CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP
+#endif // CPU_ZERO_FRAME_ZERO_INLINE_HPP
--- a/src/hotspot/cpu/zero/globalDefinitions_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/globalDefinitions_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2009, 2015, Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
-#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+#ifndef CPU_ZERO_GLOBALDEFINITIONS_ZERO_HPP
+#define CPU_ZERO_GLOBALDEFINITIONS_ZERO_HPP
 
 #ifdef _LP64
 #define SUPPORTS_NATIVE_CX8
@@ -36,4 +36,4 @@
 // 32-bit integer argument values are extended to 64 bits.
 const bool CCallingConventionRequiresIntsAsLongs = false;
 
-#endif // CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP
+#endif // CPU_ZERO_GLOBALDEFINITIONS_ZERO_HPP
--- a/src/hotspot/cpu/zero/globals_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/globals_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_GLOBALS_ZERO_HPP
-#define CPU_ZERO_VM_GLOBALS_ZERO_HPP
+#ifndef CPU_ZERO_GLOBALS_ZERO_HPP
+#define CPU_ZERO_GLOBALS_ZERO_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -97,4 +97,4 @@
           "Use fast method entry code for accessor methods")                \
                                                                             \
 
-#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP
+#endif // CPU_ZERO_GLOBALS_ZERO_HPP
--- a/src/hotspot/cpu/zero/icache_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/icache_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_ICACHE_ZERO_HPP
-#define CPU_ZERO_VM_ICACHE_ZERO_HPP
+#ifndef CPU_ZERO_ICACHE_ZERO_HPP
+#define CPU_ZERO_ICACHE_ZERO_HPP
 
 // Interface for updating the instruction cache.  Whenever the VM
 // modifies code, part of the processor instruction cache potentially
@@ -38,4 +38,4 @@
   static void invalidate_range(address start, int nbytes) {}
 };
 
-#endif // CPU_ZERO_VM_ICACHE_ZERO_HPP
+#endif // CPU_ZERO_ICACHE_ZERO_HPP
--- a/src/hotspot/cpu/zero/interp_masm_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/interp_masm_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
-#define CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
+#ifndef CPU_ZERO_INTERP_MASM_ZERO_HPP
+#define CPU_ZERO_INTERP_MASM_ZERO_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "asm/macroAssembler.hpp"
@@ -45,4 +45,4 @@
   }
 };
 
-#endif // CPU_ZERO_VM_INTERP_MASM_ZERO_HPP
+#endif // CPU_ZERO_INTERP_MASM_ZERO_HPP
--- a/src/hotspot/cpu/zero/interpreterFrame_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/interpreterFrame_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
-#define CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
+#ifndef CPU_ZERO_INTERPRETERFRAME_ZERO_HPP
+#define CPU_ZERO_INTERPRETERFRAME_ZERO_HPP
 
 #include "interpreter/bytecodeInterpreter.hpp"
 #include "oops/method.hpp"
@@ -81,4 +81,4 @@
 };
 #endif // CC_INTERP
 
-#endif // CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP
+#endif // CPU_ZERO_INTERPRETERFRAME_ZERO_HPP
--- a/src/hotspot/cpu/zero/interpreterRT_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/interpreterRT_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
-#define CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
+#ifndef CPU_ZERO_INTERPRETERRT_ZERO_HPP
+#define CPU_ZERO_INTERPRETERRT_ZERO_HPP
 
 // This is included in the middle of class Interpreter.
 // Do not include files here.
@@ -133,4 +133,4 @@
   }
 };
 
-#endif // CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP
+#endif // CPU_ZERO_INTERPRETERRT_ZERO_HPP
--- a/src/hotspot/cpu/zero/javaFrameAnchor_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/javaFrameAnchor_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
-#define CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
+#ifndef CPU_ZERO_JAVAFRAMEANCHOR_ZERO_HPP
+#define CPU_ZERO_JAVAFRAMEANCHOR_ZERO_HPP
 
  private:
   ZeroFrame* volatile _last_Java_fp;
@@ -93,4 +93,4 @@
     return byte_offset_of(JavaFrameAnchor, _last_Java_fp);
   }
 
-#endif // CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP
+#endif // CPU_ZERO_JAVAFRAMEANCHOR_ZERO_HPP
--- a/src/hotspot/cpu/zero/jniTypes_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/jniTypes_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_JNITYPES_ZERO_HPP
-#define CPU_ZERO_VM_JNITYPES_ZERO_HPP
+#ifndef CPU_ZERO_JNITYPES_ZERO_HPP
+#define CPU_ZERO_JNITYPES_ZERO_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -114,4 +114,4 @@
 
 };
 
-#endif // CPU_ZERO_VM_JNITYPES_ZERO_HPP
+#endif // CPU_ZERO_JNITYPES_ZERO_HPP
--- a/src/hotspot/cpu/zero/macroAssembler_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/macroAssembler_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_MACROASSEMBLER_ZERO_HPP
-#define CPU_ZERO_VM_MACROASSEMBLER_ZERO_HPP
+#ifndef CPU_ZERO_MACROASSEMBLER_ZERO_HPP
+#define CPU_ZERO_MACROASSEMBLER_ZERO_HPP
 
 // Needed for includes in shared files.
 
-#endif // CPU_ZERO_VM_MACROASSEMBLER_ZERO_HPP
+#endif // CPU_ZERO_MACROASSEMBLER_ZERO_HPP
--- a/src/hotspot/cpu/zero/macroAssembler_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/macroAssembler_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_MACROASSEMBLER_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_MACROASSEMBLER_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_MACROASSEMBLER_ZERO_INLINE_HPP
+#define CPU_ZERO_MACROASSEMBLER_ZERO_INLINE_HPP
 
 // Needed for includes in shared files.
 
-#endif // CPU_ZERO_VM_MACROASSEMBLER_ZERO_INLINE_HPP
+#endif // CPU_ZERO_MACROASSEMBLER_ZERO_INLINE_HPP
--- a/src/hotspot/cpu/zero/nativeInst_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/nativeInst_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_NATIVEINST_ZERO_HPP
-#define CPU_ZERO_VM_NATIVEINST_ZERO_HPP
+#ifndef CPU_ZERO_NATIVEINST_ZERO_HPP
+#define CPU_ZERO_NATIVEINST_ZERO_HPP
 
 #include "asm/assembler.hpp"
 #include "runtime/icache.hpp"
@@ -210,4 +210,4 @@
   return NULL;
 }
 
-#endif // CPU_ZERO_VM_NATIVEINST_ZERO_HPP
+#endif // CPU_ZERO_NATIVEINST_ZERO_HPP
--- a/src/hotspot/cpu/zero/registerMap_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/registerMap_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
-#define CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
+#ifndef CPU_ZERO_REGISTERMAP_ZERO_HPP
+#define CPU_ZERO_REGISTERMAP_ZERO_HPP
 
   // machine-dependent implemention for register maps
   friend class frame;
@@ -41,4 +41,4 @@
   void pd_initialize() {}
   void pd_initialize_from(const RegisterMap* map) {}
 
-#endif // CPU_ZERO_VM_REGISTERMAP_ZERO_HPP
+#endif // CPU_ZERO_REGISTERMAP_ZERO_HPP
--- a/src/hotspot/cpu/zero/register_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/register_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_REGISTER_ZERO_HPP
-#define CPU_ZERO_VM_REGISTER_ZERO_HPP
+#ifndef CPU_ZERO_REGISTER_ZERO_HPP
+#define CPU_ZERO_REGISTER_ZERO_HPP
 
 #include "asm/register.hpp"
 #include "vm_version_zero.hpp"
@@ -118,4 +118,4 @@
 #define noreg ((Register)(noreg_RegisterEnumValue))
 #endif
 
-#endif // CPU_ZERO_VM_REGISTER_ZERO_HPP
+#endif // CPU_ZERO_REGISTER_ZERO_HPP
--- a/src/hotspot/cpu/zero/relocInfo_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/relocInfo_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_RELOCINFO_ZERO_HPP
-#define CPU_ZERO_VM_RELOCINFO_ZERO_HPP
+#ifndef CPU_ZERO_RELOCINFO_ZERO_HPP
+#define CPU_ZERO_RELOCINFO_ZERO_HPP
 
   // machine-dependent parts of class relocInfo
  private:
@@ -38,4 +38,4 @@
 
   static bool mustIterateImmediateOopsInCode() { return true; }
 
-#endif // CPU_ZERO_VM_RELOCINFO_ZERO_HPP
+#endif // CPU_ZERO_RELOCINFO_ZERO_HPP
--- a/src/hotspot/cpu/zero/stack_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/stack_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_STACK_ZERO_HPP
-#define CPU_ZERO_VM_STACK_ZERO_HPP
+#ifndef CPU_ZERO_STACK_ZERO_HPP
+#define CPU_ZERO_STACK_ZERO_HPP
 
 #include "utilities/align.hpp"
 #include "utilities/sizes.hpp"
@@ -212,4 +212,4 @@
                         int       buflen) const;
 };
 
-#endif // CPU_ZERO_VM_STACK_ZERO_HPP
+#endif // CPU_ZERO_STACK_ZERO_HPP
--- a/src/hotspot/cpu/zero/stack_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/stack_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_STACK_ZERO_INLINE_HPP
+#define CPU_ZERO_STACK_ZERO_INLINE_HPP
 
 #include "runtime/thread.hpp"
 #include "stack_zero.hpp"
@@ -54,4 +54,4 @@
   return stack_free;
 }
 
-#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP
+#endif // CPU_ZERO_STACK_ZERO_INLINE_HPP
--- a/src/hotspot/cpu/zero/stubRoutines_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/stubRoutines_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
-#define CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
+#ifndef CPU_ZERO_STUBROUTINES_ZERO_HPP
+#define CPU_ZERO_STUBROUTINES_ZERO_HPP
 
   // This file holds the platform specific parts of the StubRoutines
   // definition. See stubRoutines.hpp for a description on how to
@@ -48,4 +48,4 @@
     method_handles_adapters_code_size = 0
   };
 
-#endif // CPU_ZERO_VM_STUBROUTINES_ZERO_HPP
+#endif // CPU_ZERO_STUBROUTINES_ZERO_HPP
--- a/src/hotspot/cpu/zero/vmStructs_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/vmStructs_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
-#define CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
+#ifndef CPU_ZERO_VMSTRUCTS_ZERO_HPP
+#define CPU_ZERO_VMSTRUCTS_ZERO_HPP
 
 // These are the CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -38,4 +38,4 @@
 
 #define VM_LONG_CONSTANTS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP
+#endif // CPU_ZERO_VMSTRUCTS_ZERO_HPP
--- a/src/hotspot/cpu/zero/vm_version_ext_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/vm_version_ext_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_VM_VERSION_EXT_ZERO_HPP
-#define CPU_ZERO_VM_VM_VERSION_EXT_ZERO_HPP
+#ifndef CPU_ZERO_VM_VERSION_EXT_ZERO_HPP
+#define CPU_ZERO_VM_VERSION_EXT_ZERO_HPP
 
 #include "utilities/macros.hpp"
 #include "vm_version_zero.hpp"
@@ -51,4 +51,4 @@
 
 };
 
-#endif // CPU_ZERO_VM_VM_VERSION_EXT_ZERO_HPP
+#endif // CPU_ZERO_VM_VERSION_EXT_ZERO_HPP
--- a/src/hotspot/cpu/zero/vm_version_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/vm_version_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_VM_VERSION_ZERO_HPP
-#define CPU_ZERO_VM_VM_VERSION_ZERO_HPP
+#ifndef CPU_ZERO_VM_VERSION_ZERO_HPP
+#define CPU_ZERO_VM_VERSION_ZERO_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/vm_version.hpp"
@@ -34,4 +34,4 @@
   static void initialize();
 };
 
-#endif // CPU_ZERO_VM_VM_VERSION_ZERO_HPP
+#endif // CPU_ZERO_VM_VERSION_ZERO_HPP
--- a/src/hotspot/cpu/zero/vmreg_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/vmreg_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_VMREG_ZERO_HPP
-#define CPU_ZERO_VM_VMREG_ZERO_HPP
+#ifndef CPU_ZERO_VMREG_ZERO_HPP
+#define CPU_ZERO_VMREG_ZERO_HPP
 
   bool is_Register();
   Register as_Register();
@@ -31,4 +31,4 @@
   bool is_FloatRegister();
   FloatRegister as_FloatRegister();
 
-#endif // CPU_ZERO_VM_VMREG_ZERO_HPP
+#endif // CPU_ZERO_VMREG_ZERO_HPP
--- a/src/hotspot/cpu/zero/vmreg_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/cpu/zero/vmreg_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
-#define CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
+#ifndef CPU_ZERO_VMREG_ZERO_INLINE_HPP
+#define CPU_ZERO_VMREG_ZERO_INLINE_HPP
 
 inline VMReg RegisterImpl::as_VMReg() {
   return VMRegImpl::as_VMReg(encoding());
@@ -34,4 +34,4 @@
   return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_gpr);
 }
 
-#endif // CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP
+#endif // CPU_ZERO_VMREG_ZERO_INLINE_HPP
--- a/src/hotspot/os/aix/c1_globals_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/c1_globals_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_C1_GLOBALS_AIX_HPP
-#define OS_AIX_VM_C1_GLOBALS_AIX_HPP
+#ifndef OS_AIX_C1_GLOBALS_AIX_HPP
+#define OS_AIX_C1_GLOBALS_AIX_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -34,4 +34,4 @@
 // client compiler. (see c1_globals.hpp)
 //
 
-#endif // OS_AIX_VM_C1_GLOBALS_AIX_HPP
+#endif // OS_AIX_C1_GLOBALS_AIX_HPP
--- a/src/hotspot/os/aix/c2_globals_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/c2_globals_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_C2_GLOBALS_AIX_HPP
-#define OS_AIX_VM_C2_GLOBALS_AIX_HPP
+#ifndef OS_AIX_C2_GLOBALS_AIX_HPP
+#define OS_AIX_C2_GLOBALS_AIX_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -34,4 +34,4 @@
 // server compiler. (see c2_globals.hpp)
 //
 
-#endif // OS_AIX_VM_C2_GLOBALS_AIX_HPP
+#endif // OS_AIX_C2_GLOBALS_AIX_HPP
--- a/src/hotspot/os/aix/globals_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/globals_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_GLOBALS_AIX_HPP
-#define OS_AIX_VM_GLOBALS_AIX_HPP
+#ifndef OS_AIX_GLOBALS_AIX_HPP
+#define OS_AIX_GLOBALS_AIX_HPP
 
 //
 // Defines Aix specific flags. They are not available on other platforms.
@@ -94,4 +94,4 @@
 define_pd_global(bool, UseOSErrorReporting, false);
 define_pd_global(bool, UseThreadPriorities, true) ;
 
-#endif // OS_AIX_VM_GLOBALS_AIX_HPP
+#endif // OS_AIX_GLOBALS_AIX_HPP
--- a/src/hotspot/os/aix/libo4.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/libo4.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -29,8 +29,8 @@
 // functionality (aka ILE layer) to close some functional gaps that exist in
 // the PASE layer.
 
-#ifndef OS_AIX_VM_LIBO4_HPP
-#define OS_AIX_VM_LIBO4_HPP
+#ifndef OS_AIX_LIBO4_HPP
+#define OS_AIX_LIBO4_HPP
 
 class libo4 {
 public:
@@ -87,4 +87,4 @@
   static bool removeEscapeMessageFromJoblogByContext(const void* context);
 };
 
-#endif // OS_AIX_VM_LIBO4_HPP
+#endif // OS_AIX_LIBO4_HPP
--- a/src/hotspot/os/aix/libodm_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/libodm_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2015, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -25,8 +25,8 @@
 
 // Encapsulates the libodm library and provides more convenient interfaces.
 
-#ifndef OS_AIX_VM_LIBODM_AIX_HPP
-#define OS_AIX_VM_LIBODM_AIX_HPP
+#ifndef OS_AIX_LIBODM_AIX_HPP
+#define OS_AIX_LIBODM_AIX_HPP
 
 #include <odmi.h>
 
@@ -103,4 +103,4 @@
   static void determine_os_kernel_version(uint32_t* p_ver);
 };
 
-#endif // OS_AIX_VM_LIBODM_AIX_HPP
+#endif // OS_AIX_LIBODM_AIX_HPP
--- a/src/hotspot/os/aix/libperfstat_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/libperfstat_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -29,8 +29,8 @@
 // AIX-specific library which only exists on AIX, not on PASE. If I want to
 // share binaries between AIX and PASE, I cannot directly link against libperfstat.so.
 
-#ifndef OS_AIX_VM_LIBPERFSTAT_AIX_HPP
-#define OS_AIX_VM_LIBPERFSTAT_AIX_HPP
+#ifndef OS_AIX_LIBPERFSTAT_AIX_HPP
+#define OS_AIX_LIBPERFSTAT_AIX_HPP
 
 #include <sys/types.h>
 #include <stdlib.h>
@@ -966,4 +966,4 @@
   static bool get_wparinfo(wparinfo_t* pwi);
 };
 
-#endif // OS_AIX_VM_LIBPERFSTAT_AIX_HPP
+#endif // OS_AIX_LIBPERFSTAT_AIX_HPP
--- a/src/hotspot/os/aix/loadlib_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/loadlib_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -29,8 +29,8 @@
 // It is needed, among other things, to provide dladdr(3), which is
 // missing on AIX.
 
-#ifndef OS_AIX_VM_LOADLIB_AIX_HPP
-#define OS_AIX_VM_LOADLIB_AIX_HPP
+#ifndef OS_AIX_LOADLIB_AIX_HPP
+#define OS_AIX_LOADLIB_AIX_HPP
 
 #include <stddef.h>
 
@@ -101,4 +101,4 @@
 
 };
 
-#endif // OS_AIX_VM_LOADLIB_AIX_HPP
+#endif // OS_AIX_LOADLIB_AIX_HPP
--- a/src/hotspot/os/aix/misc_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/misc_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef OS_AIX_VM_MISC_AIX_HPP
-#define OS_AIX_VM_MISC_AIX_HPP
+#ifndef OS_AIX_MISC_AIX_HPP
+#define OS_AIX_MISC_AIX_HPP
 
 // misc_aix.hpp, misc_aix.cpp: convenience functions needed for the OpenJDK AIX
 // port.
@@ -90,5 +90,4 @@
   };
 }
 
-#endif // OS_AIX_VM_MISC_AIX_HPP
-
+#endif // OS_AIX_MISC_AIX_HPP
--- a/src/hotspot/os/aix/osThread_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/osThread_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_OSTHREAD_AIX_HPP
-#define OS_AIX_VM_OSTHREAD_AIX_HPP
+#ifndef OS_AIX_OSTHREAD_AIX_HPP
+#define OS_AIX_OSTHREAD_AIX_HPP
 
  public:
   typedef pthread_t thread_id_t;
@@ -150,4 +150,4 @@
     jlong user;
   } _last_cpu_times;
 
-#endif // OS_AIX_VM_OSTHREAD_AIX_HPP
+#endif // OS_AIX_OSTHREAD_AIX_HPP
--- a/src/hotspot/os/aix/os_aix.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/os_aix.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -2594,14 +2594,6 @@
   return addr;
 }
 
-size_t os::read(int fd, void *buf, unsigned int nBytes) {
-  return ::read(fd, buf, nBytes);
-}
-
-size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
-  return ::pread(fd, buf, nBytes, offset);
-}
-
 // Sleep forever; naked call to OS-specific sleep; use with CAUTION
 void os::infinite_sleep() {
   while (true) {    // sleep forever ...
--- a/src/hotspot/os/aix/os_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/os_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2013, 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_OS_AIX_HPP
-#define OS_AIX_VM_OS_AIX_HPP
+#ifndef OS_AIX_OS_AIX_HPP
+#define OS_AIX_OS_AIX_HPP
 
 // Information about the protection of the page at address '0' on this os.
 static bool zero_page_read_protected() { return false; }
@@ -212,4 +212,4 @@
 
 };
 
-#endif // OS_AIX_VM_OS_AIX_HPP
+#endif // OS_AIX_OS_AIX_HPP
--- a/src/hotspot/os/aix/os_aix.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/os_aix.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_OS_AIX_INLINE_HPP
-#define OS_AIX_VM_OS_AIX_INLINE_HPP
+#ifndef OS_AIX_OS_AIX_INLINE_HPP
+#define OS_AIX_OS_AIX_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -98,12 +98,6 @@
 inline bool os::numa_has_static_binding()   { ShouldNotReachHere(); return true; }
 inline bool os::numa_has_group_homing()     { ShouldNotReachHere(); return false;  }
 
-inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
-  size_t res;
-  RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
-  return res;
-}
-
 inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
   size_t res;
   RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
@@ -151,4 +145,4 @@
   ::exit(num);
 }
 
-#endif // OS_AIX_VM_OS_AIX_INLINE_HPP
+#endif // OS_AIX_OS_AIX_INLINE_HPP
--- a/src/hotspot/os/aix/os_share_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/os_share_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_OS_SHARE_AIX_HPP
-#define OS_AIX_VM_OS_SHARE_AIX_HPP
+#ifndef OS_AIX_OS_SHARE_AIX_HPP
+#define OS_AIX_OS_SHARE_AIX_HPP
 
 // misc
 void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc);
@@ -33,4 +33,4 @@
 
 #define PROCFILE_LENGTH 128
 
-#endif // OS_AIX_VM_OS_SHARE_AIX_HPP
+#endif // OS_AIX_OS_SHARE_AIX_HPP
--- a/src/hotspot/os/aix/porting_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/porting_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_PORTING_AIX_HPP
-#define OS_AIX_VM_PORTING_AIX_HPP
+#ifndef OS_AIX_PORTING_AIX_HPP
+#define OS_AIX_PORTING_AIX_HPP
 
 #include <stddef.h>
 
@@ -107,5 +107,4 @@
 
 };
 
-#endif // OS_AIX_VM_PORTING_AIX_HPP
-
+#endif // OS_AIX_PORTING_AIX_HPP
--- a/src/hotspot/os/aix/vmStructs_aix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/aix/vmStructs_aix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_AIX_VM_VMSTRUCTS_AIX_HPP
-#define OS_AIX_VM_VMSTRUCTS_AIX_HPP
+#ifndef OS_AIX_VMSTRUCTS_AIX_HPP
+#define OS_AIX_VMSTRUCTS_AIX_HPP
 
 // These are the OS-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -39,4 +39,4 @@
 
 #define VM_ADDRESSES_OS(declare_address, declare_preprocessor_address, declare_function)
 
-#endif // OS_AIX_VM_VMSTRUCTS_AIX_HPP
+#endif // OS_AIX_VMSTRUCTS_AIX_HPP
--- a/src/hotspot/os/bsd/c1_globals_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/c1_globals_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_C1_GLOBALS_BSD_HPP
-#define OS_BSD_VM_C1_GLOBALS_BSD_HPP
+#ifndef OS_BSD_C1_GLOBALS_BSD_HPP
+#define OS_BSD_C1_GLOBALS_BSD_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // client compiler. (see c1_globals.hpp)
 //
 
-#endif // OS_BSD_VM_C1_GLOBALS_BSD_HPP
+#endif // OS_BSD_C1_GLOBALS_BSD_HPP
--- a/src/hotspot/os/bsd/c2_globals_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/c2_globals_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_C2_GLOBALS_BSD_HPP
-#define OS_BSD_VM_C2_GLOBALS_BSD_HPP
+#ifndef OS_BSD_C2_GLOBALS_BSD_HPP
+#define OS_BSD_C2_GLOBALS_BSD_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // server compiler. (see c2_globals.hpp)
 //
 
-#endif // OS_BSD_VM_C2_GLOBALS_BSD_HPP
+#endif // OS_BSD_C2_GLOBALS_BSD_HPP
--- a/src/hotspot/os/bsd/decoder_machO.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/decoder_machO.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_DECODER_MACHO_HPP
-#define OS_BSD_VM_DECODER_MACHO_HPP
+#ifndef OS_BSD_DECODER_MACHO_HPP
+#define OS_BSD_DECODER_MACHO_HPP
 
 #ifdef __APPLE__
 
@@ -51,4 +51,4 @@
 
 #endif
 
-#endif // OS_BSD_VM_DECODER_MACHO_HPP
+#endif // OS_BSD_DECODER_MACHO_HPP
--- a/src/hotspot/os/bsd/globals_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/globals_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_GLOBALS_BSD_HPP
-#define OS_BSD_VM_GLOBALS_BSD_HPP
+#ifndef OS_BSD_GLOBALS_BSD_HPP
+#define OS_BSD_GLOBALS_BSD_HPP
 
 //
 // Defines Bsd specific flags. They are not available on other platforms.
@@ -56,4 +56,4 @@
 define_pd_global(bool, UseOSErrorReporting, false);
 define_pd_global(bool, UseThreadPriorities, true) ;
 
-#endif // OS_BSD_VM_GLOBALS_BSD_HPP
+#endif // OS_BSD_GLOBALS_BSD_HPP
--- a/src/hotspot/os/bsd/osThread_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/osThread_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_OSTHREAD_BSD_HPP
-#define OS_BSD_VM_OSTHREAD_BSD_HPP
+#ifndef OS_BSD_OSTHREAD_BSD_HPP
+#define OS_BSD_OSTHREAD_BSD_HPP
 
  private:
   int _thread_type;
@@ -149,4 +149,4 @@
 // osThread_solaris.hpp 1.24 99/08/27 13:11:54
 // End
 
-#endif // OS_BSD_VM_OSTHREAD_BSD_HPP
+#endif // OS_BSD_OSTHREAD_BSD_HPP
--- a/src/hotspot/os/bsd/os_bsd.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/os_bsd.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -2217,14 +2217,6 @@
   }
 }
 
-size_t os::read(int fd, void *buf, unsigned int nBytes) {
-  RESTARTABLE_RETURN_INT(::read(fd, buf, nBytes));
-}
-
-size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
-  RESTARTABLE_RETURN_INT(::pread(fd, buf, nBytes, offset));
-}
-
 // Sleep forever; naked call to OS-specific sleep; use with CAUTION
 void os::infinite_sleep() {
   while (true) {    // sleep forever ...
--- a/src/hotspot/os/bsd/os_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/os_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_OS_BSD_HPP
-#define OS_BSD_VM_OS_BSD_HPP
+#ifndef OS_BSD_OS_BSD_HPP
+#define OS_BSD_OS_BSD_HPP
 
 // Bsd_OS defines the interface to Bsd operating systems
 
@@ -159,4 +159,4 @@
   static int get_node_by_cpu(int cpu_id);
 };
 
-#endif // OS_BSD_VM_OS_BSD_HPP
+#endif // OS_BSD_OS_BSD_HPP
--- a/src/hotspot/os/bsd/os_bsd.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/os_bsd.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_OS_BSD_INLINE_HPP
-#define OS_BSD_VM_OS_BSD_INLINE_HPP
+#ifndef OS_BSD_OS_BSD_INLINE_HPP
+#define OS_BSD_OS_BSD_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -100,12 +100,6 @@
 inline bool os::numa_has_static_binding()   { return true; }
 inline bool os::numa_has_group_homing()     { return false;  }
 
-inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
-  size_t res;
-  RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
-  return res;
-}
-
 inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
   size_t res;
   RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
@@ -156,4 +150,4 @@
   ::exit(num);
 }
 
-#endif // OS_BSD_VM_OS_BSD_INLINE_HPP
+#endif // OS_BSD_OS_BSD_INLINE_HPP
--- a/src/hotspot/os/bsd/os_share_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/os_share_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_OS_SHARE_BSD_HPP
-#define OS_BSD_VM_OS_SHARE_BSD_HPP
+#ifndef OS_BSD_OS_SHARE_BSD_HPP
+#define OS_BSD_OS_SHARE_BSD_HPP
 
 // misc
 void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc);
@@ -33,4 +33,4 @@
 
 #define PROCFILE_LENGTH 128
 
-#endif // OS_BSD_VM_OS_SHARE_BSD_HPP
+#endif // OS_BSD_OS_SHARE_BSD_HPP
--- a/src/hotspot/os/bsd/semaphore_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/semaphore_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_SEMAPHORE_BSD_HPP
-#define OS_BSD_VM_SEMAPHORE_BSD_HPP
+#ifndef OS_BSD_SEMAPHORE_BSD_HPP
+#define OS_BSD_SEMAPHORE_BSD_HPP
 
 #ifndef __APPLE__
 // Use POSIX semaphores.
@@ -60,4 +60,4 @@
 
 #endif // __APPLE__
 
-#endif // OS_BSD_VM_SEMAPHORE_BSD_HPP
+#endif // OS_BSD_SEMAPHORE_BSD_HPP
--- a/src/hotspot/os/bsd/vmStructs_bsd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/bsd/vmStructs_bsd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_BSD_VM_VMSTRUCTS_BSD_HPP
-#define OS_BSD_VM_VMSTRUCTS_BSD_HPP
+#ifndef OS_BSD_VMSTRUCTS_BSD_HPP
+#define OS_BSD_VMSTRUCTS_BSD_HPP
 
 #include <dlfcn.h>
 
@@ -42,4 +42,4 @@
 #define VM_ADDRESSES_OS(declare_address, declare_preprocessor_address, declare_function) \
   declare_preprocessor_address("RTLD_DEFAULT", RTLD_DEFAULT)
 
-#endif // OS_BSD_VM_VMSTRUCTS_BSD_HPP
+#endif // OS_BSD_VMSTRUCTS_BSD_HPP
--- a/src/hotspot/os/linux/c1_globals_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/c1_globals_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
-#define OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
+#ifndef OS_LINUX_C1_GLOBALS_LINUX_HPP
+#define OS_LINUX_C1_GLOBALS_LINUX_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // client compiler. (see c1_globals.hpp)
 //
 
-#endif // OS_LINUX_VM_C1_GLOBALS_LINUX_HPP
+#endif // OS_LINUX_C1_GLOBALS_LINUX_HPP
--- a/src/hotspot/os/linux/c2_globals_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/c2_globals_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
-#define OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
+#ifndef OS_LINUX_C2_GLOBALS_LINUX_HPP
+#define OS_LINUX_C2_GLOBALS_LINUX_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // server compiler. (see c2_globals.hpp)
 //
 
-#endif // OS_LINUX_VM_C2_GLOBALS_LINUX_HPP
+#endif // OS_LINUX_C2_GLOBALS_LINUX_HPP
--- a/src/hotspot/os/linux/globals_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/globals_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_GLOBALS_LINUX_HPP
-#define OS_LINUX_VM_GLOBALS_LINUX_HPP
+#ifndef OS_LINUX_GLOBALS_LINUX_HPP
+#define OS_LINUX_GLOBALS_LINUX_HPP
 
 //
 // Defines Linux specific flags. They are not available on other platforms.
@@ -84,4 +84,4 @@
 define_pd_global(bool, UseOSErrorReporting, false);
 define_pd_global(bool, UseThreadPriorities, true) ;
 
-#endif // OS_LINUX_VM_GLOBALS_LINUX_HPP
+#endif // OS_LINUX_GLOBALS_LINUX_HPP
--- a/src/hotspot/os/linux/osContainer_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/osContainer_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-#define OS_LINUX_VM_OSCONTAINER_LINUX_HPP
+#ifndef OS_LINUX_OSCONTAINER_LINUX_HPP
+#define OS_LINUX_OSCONTAINER_LINUX_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -65,4 +65,4 @@
   return _is_containerized;
 }
 
-#endif // OS_LINUX_VM_OSCONTAINER_LINUX_HPP
+#endif // OS_LINUX_OSCONTAINER_LINUX_HPP
--- a/src/hotspot/os/linux/osThread_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/osThread_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_OSTHREAD_LINUX_HPP
-#define OS_LINUX_VM_OSTHREAD_LINUX_HPP
+#ifndef OS_LINUX_OSTHREAD_LINUX_HPP
+#define OS_LINUX_OSTHREAD_LINUX_HPP
  public:
   typedef pid_t thread_id_t;
 
@@ -132,4 +132,4 @@
 // osThread_solaris.hpp 1.24 99/08/27 13:11:54
 // End
 
-#endif // OS_LINUX_VM_OSTHREAD_LINUX_HPP
+#endif // OS_LINUX_OSTHREAD_LINUX_HPP
--- a/src/hotspot/os/linux/os_linux.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/os_linux.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -33,6 +33,7 @@
 #include "compiler/disassembler.hpp"
 #include "interpreter/interpreter.hpp"
 #include "logging/log.hpp"
+#include "logging/logStream.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/filemap.hpp"
 #include "oops/oop.inline.hpp"
@@ -1884,7 +1885,7 @@
       char name[PATH_MAX + 1];
 
       // Parse fields from line
-      sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %4s " UINT64_FORMAT_X " %5s " INT64_FORMAT " %s",
+      sscanf(line, UINT64_FORMAT_X "-" UINT64_FORMAT_X " %4s " UINT64_FORMAT_X " %7s " INT64_FORMAT " %s",
              &base, &top, permissions, &offset, device, &inode, name);
 
       // Filter by device id '00:00' so that we only get file system mapped files.
@@ -2780,7 +2781,7 @@
 
   // Get the total number of nodes in the system including nodes without memory.
   for (node = 0; node <= highest_node_number; node++) {
-    if (isnode_in_existing_nodes(node)) {
+    if (is_node_in_existing_nodes(node)) {
       num_nodes++;
     }
   }
@@ -2796,7 +2797,7 @@
   // node number. If the nodes have been bound explicitly using numactl membind,
   // then allocate memory from those nodes only.
   for (int node = 0; node <= highest_node_number; node++) {
-    if (Linux::isnode_in_bound_nodes((unsigned int)node)) {
+    if (Linux::is_node_in_bound_nodes((unsigned int)node)) {
       ids[i++] = node;
     }
   }
@@ -2899,11 +2900,15 @@
                                        libnuma_dlsym(handle, "numa_distance")));
       set_numa_get_membind(CAST_TO_FN_PTR(numa_get_membind_func_t,
                                           libnuma_v2_dlsym(handle, "numa_get_membind")));
+      set_numa_get_interleave_mask(CAST_TO_FN_PTR(numa_get_interleave_mask_func_t,
+                                                  libnuma_v2_dlsym(handle, "numa_get_interleave_mask")));
 
       if (numa_available() != -1) {
         set_numa_all_nodes((unsigned long*)libnuma_dlsym(handle, "numa_all_nodes"));
         set_numa_all_nodes_ptr((struct bitmask **)libnuma_dlsym(handle, "numa_all_nodes_ptr"));
         set_numa_nodes_ptr((struct bitmask **)libnuma_dlsym(handle, "numa_nodes_ptr"));
+        set_numa_interleave_bitmask(_numa_get_interleave_mask());
+        set_numa_membind_bitmask(_numa_get_membind());
         // Create an index -> node mapping, since nodes are not always consecutive
         _nindex_to_node = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<int>(0, true);
         rebuild_nindex_to_node_map();
@@ -2929,7 +2934,7 @@
 
   nindex_to_node()->clear();
   for (int node = 0; node <= highest_node_number; node++) {
-    if (Linux::isnode_in_existing_nodes(node)) {
+    if (Linux::is_node_in_existing_nodes(node)) {
       nindex_to_node()->append(node);
     }
   }
@@ -2966,16 +2971,16 @@
     // the closest configured node. Check also if node is bound, i.e. it's allowed
     // to allocate memory from the node. If it's not allowed, map cpus in that node
     // to the closest node from which memory allocation is allowed.
-    if (!isnode_in_configured_nodes(nindex_to_node()->at(i)) ||
-        !isnode_in_bound_nodes(nindex_to_node()->at(i))) {
+    if (!is_node_in_configured_nodes(nindex_to_node()->at(i)) ||
+        !is_node_in_bound_nodes(nindex_to_node()->at(i))) {
       closest_distance = INT_MAX;
       // Check distance from all remaining nodes in the system. Ignore distance
       // from itself, from another non-configured node, and from another non-bound
       // node.
       for (size_t m = 0; m < node_num; m++) {
         if (m != i &&
-            isnode_in_configured_nodes(nindex_to_node()->at(m)) &&
-            isnode_in_bound_nodes(nindex_to_node()->at(m))) {
+            is_node_in_configured_nodes(nindex_to_node()->at(m)) &&
+            is_node_in_bound_nodes(nindex_to_node()->at(m))) {
           distance = numa_distance(nindex_to_node()->at(i), nindex_to_node()->at(m));
           // If a closest node is found, update. There is always at least one
           // configured and bound node in the system so there is always at least
@@ -3030,9 +3035,13 @@
 os::Linux::numa_bitmask_isbitset_func_t os::Linux::_numa_bitmask_isbitset;
 os::Linux::numa_distance_func_t os::Linux::_numa_distance;
 os::Linux::numa_get_membind_func_t os::Linux::_numa_get_membind;
+os::Linux::numa_get_interleave_mask_func_t os::Linux::_numa_get_interleave_mask;
+os::Linux::NumaAllocationPolicy os::Linux::_current_numa_policy;
 unsigned long* os::Linux::_numa_all_nodes;
 struct bitmask* os::Linux::_numa_all_nodes_ptr;
 struct bitmask* os::Linux::_numa_nodes_ptr;
+struct bitmask* os::Linux::_numa_interleave_bitmask;
+struct bitmask* os::Linux::_numa_membind_bitmask;
 
 bool os::pd_uncommit_memory(char* addr, size_t size) {
   uintptr_t res = (uintptr_t) ::mmap(addr, size, PROT_NONE,
@@ -4027,14 +4036,6 @@
   }
 }
 
-size_t os::read(int fd, void *buf, unsigned int nBytes) {
-  return ::read(fd, buf, nBytes);
-}
-
-size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
-  return ::pread(fd, buf, nBytes, offset);
-}
-
 // Sleep forever; naked call to OS-specific sleep; use with CAUTION
 void os::infinite_sleep() {
   while (true) {    // sleep forever ...
@@ -4944,6 +4945,74 @@
   OSContainer::init();
 }
 
+void os::Linux::numa_init() {
+
+  // Java can be invoked as
+  // 1. Without numactl and heap will be allocated/configured on all nodes as
+  //    per the system policy.
+  // 2. With numactl --interleave:
+  //      Use numa_get_interleave_mask(v2) API to get nodes bitmask. The same
+  //      API for membind case bitmask is reset.
+  //      Interleave is only hint and Kernel can fallback to other nodes if
+  //      no memory is available on the target nodes.
+  // 3. With numactl --membind:
+  //      Use numa_get_membind(v2) API to get nodes bitmask. The same API for
+  //      interleave case returns bitmask of all nodes.
+  // numa_all_nodes_ptr holds bitmask of all nodes.
+  // numa_get_interleave_mask(v2) and numa_get_membind(v2) APIs returns correct
+  // bitmask when externally configured to run on all or fewer nodes.
+
+  if (!Linux::libnuma_init()) {
+    UseNUMA = false;
+  } else {
+    if ((Linux::numa_max_node() < 1) || Linux::is_bound_to_single_node()) {
+      // If there's only one node (they start from 0) or if the process
+      // is bound explicitly to a single node using membind, disable NUMA.
+      UseNUMA = false;
+    } else {
+
+      LogTarget(Info,os) log;
+      LogStream ls(log);
+
+      Linux::set_configured_numa_policy(Linux::identify_numa_policy());
+
+      struct bitmask* bmp = Linux::_numa_membind_bitmask;
+      const char* numa_mode = "membind";
+
+      if (Linux::is_running_in_interleave_mode()) {
+        bmp = Linux::_numa_interleave_bitmask;
+        numa_mode = "interleave";
+      }
+
+      ls.print("UseNUMA is enabled and invoked in '%s' mode."
+               " Heap will be configured using NUMA memory nodes:", numa_mode);
+
+      for (int node = 0; node <= Linux::numa_max_node(); node++) {
+        if (Linux::_numa_bitmask_isbitset(bmp, node)) {
+          ls.print(" %d", node);
+        }
+      }
+    }
+  }
+
+  if (UseParallelGC && UseNUMA && UseLargePages && !can_commit_large_page_memory()) {
+    // With SHM and HugeTLBFS large pages we cannot uncommit a page, so there's no way
+    // we can make the adaptive lgrp chunk resizing work. If the user specified both
+    // UseNUMA and UseLargePages (or UseSHM/UseHugeTLBFS) on the command line - warn
+    // and disable adaptive resizing.
+    if (UseAdaptiveSizePolicy || UseAdaptiveNUMAChunkSizing) {
+      warning("UseNUMA is not fully compatible with SHM/HugeTLBFS large pages, "
+              "disabling adaptive resizing (-XX:-UseAdaptiveSizePolicy -XX:-UseAdaptiveNUMAChunkSizing)");
+      UseAdaptiveSizePolicy = false;
+      UseAdaptiveNUMAChunkSizing = false;
+    }
+  }
+
+  if (!UseNUMA && ForceNUMA) {
+    UseNUMA = true;
+  }
+}
+
 // this is called _after_ the global arguments have been parsed
 jint os::init_2(void) {
 
@@ -4988,32 +5057,7 @@
                Linux::glibc_version(), Linux::libpthread_version());
 
   if (UseNUMA) {
-    if (!Linux::libnuma_init()) {
-      UseNUMA = false;
-    } else {
-      if ((Linux::numa_max_node() < 1) || Linux::isbound_to_single_node()) {
-        // If there's only one node (they start from 0) or if the process
-        // is bound explicitly to a single node using membind, disable NUMA.
-        UseNUMA = false;
-      }
-    }
-
-    if (UseParallelGC && UseNUMA && UseLargePages && !can_commit_large_page_memory()) {
-      // With SHM and HugeTLBFS large pages we cannot uncommit a page, so there's no way
-      // we can make the adaptive lgrp chunk resizing work. If the user specified both
-      // UseNUMA and UseLargePages (or UseSHM/UseHugeTLBFS) on the command line - warn
-      // and disable adaptive resizing.
-      if (UseAdaptiveSizePolicy || UseAdaptiveNUMAChunkSizing) {
-        warning("UseNUMA is not fully compatible with SHM/HugeTLBFS large pages, "
-                "disabling adaptive resizing (-XX:-UseAdaptiveSizePolicy -XX:-UseAdaptiveNUMAChunkSizing)");
-        UseAdaptiveSizePolicy = false;
-        UseAdaptiveNUMAChunkSizing = false;
-      }
-    }
-
-    if (!UseNUMA && ForceNUMA) {
-      UseNUMA = true;
-    }
+    Linux::numa_init();
   }
 
   if (MaxFDLimit) {
--- a/src/hotspot/os/linux/os_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/os_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_OS_LINUX_HPP
-#define OS_LINUX_VM_OS_LINUX_HPP
+#ifndef OS_LINUX_OS_LINUX_HPP
+#define OS_LINUX_OS_LINUX_HPP
 
 // Linux_OS defines the interface to Linux operating systems
 
@@ -211,6 +211,7 @@
   // none present
 
  private:
+  static void numa_init();
   static void expand_stack_to(address bottom);
 
   typedef int (*sched_getcpu_func_t)(void);
@@ -222,6 +223,7 @@
   typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask);
   typedef void (*numa_interleave_memory_v2_func_t)(void *start, size_t size, struct bitmask* mask);
   typedef struct bitmask* (*numa_get_membind_func_t)(void);
+  typedef struct bitmask* (*numa_get_interleave_mask_func_t)(void);
 
   typedef void (*numa_set_bind_policy_func_t)(int policy);
   typedef int (*numa_bitmask_isbitset_func_t)(struct bitmask *bmp, unsigned int n);
@@ -239,9 +241,12 @@
   static numa_bitmask_isbitset_func_t _numa_bitmask_isbitset;
   static numa_distance_func_t _numa_distance;
   static numa_get_membind_func_t _numa_get_membind;
+  static numa_get_interleave_mask_func_t _numa_get_interleave_mask;
   static unsigned long* _numa_all_nodes;
   static struct bitmask* _numa_all_nodes_ptr;
   static struct bitmask* _numa_nodes_ptr;
+  static struct bitmask* _numa_interleave_bitmask;
+  static struct bitmask* _numa_membind_bitmask;
 
   static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; }
   static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; }
@@ -255,10 +260,21 @@
   static void set_numa_bitmask_isbitset(numa_bitmask_isbitset_func_t func) { _numa_bitmask_isbitset = func; }
   static void set_numa_distance(numa_distance_func_t func) { _numa_distance = func; }
   static void set_numa_get_membind(numa_get_membind_func_t func) { _numa_get_membind = func; }
+  static void set_numa_get_interleave_mask(numa_get_interleave_mask_func_t func) { _numa_get_interleave_mask = func; }
   static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; }
   static void set_numa_all_nodes_ptr(struct bitmask **ptr) { _numa_all_nodes_ptr = (ptr == NULL ? NULL : *ptr); }
   static void set_numa_nodes_ptr(struct bitmask **ptr) { _numa_nodes_ptr = (ptr == NULL ? NULL : *ptr); }
+  static void set_numa_interleave_bitmask(struct bitmask* ptr)     { _numa_interleave_bitmask = ptr ;   }
+  static void set_numa_membind_bitmask(struct bitmask* ptr)        { _numa_membind_bitmask = ptr ;      }
   static int sched_getcpu_syscall(void);
+
+  enum NumaAllocationPolicy{
+    NotInitialized,
+    Membind,
+    Interleave
+  };
+  static NumaAllocationPolicy _current_numa_policy;
+
  public:
   static int sched_getcpu()  { return _sched_getcpu != NULL ? _sched_getcpu() : -1; }
   static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) {
@@ -272,11 +288,33 @@
   static int numa_tonode_memory(void *start, size_t size, int node) {
     return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1;
   }
+
+  static bool is_running_in_interleave_mode() {
+    return _current_numa_policy == Interleave;
+  }
+
+  static void set_configured_numa_policy(NumaAllocationPolicy numa_policy) {
+    _current_numa_policy = numa_policy;
+  }
+
+  static NumaAllocationPolicy identify_numa_policy() {
+    for (int node = 0; node <= Linux::numa_max_node(); node++) {
+      if (Linux::_numa_bitmask_isbitset(Linux::_numa_interleave_bitmask, node)) {
+        return Interleave;
+      }
+    }
+    return Membind;
+  }
+
   static void numa_interleave_memory(void *start, size_t size) {
-    // Use v2 api if available
-    if (_numa_interleave_memory_v2 != NULL && _numa_all_nodes_ptr != NULL) {
-      _numa_interleave_memory_v2(start, size, _numa_all_nodes_ptr);
-    } else if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) {
+    // Prefer v2 API
+    if (_numa_interleave_memory_v2 != NULL) {
+      if (is_running_in_interleave_mode()) {
+        _numa_interleave_memory_v2(start, size, _numa_interleave_bitmask);
+      } else if (_numa_membind_bitmask != NULL) {
+        _numa_interleave_memory_v2(start, size, _numa_membind_bitmask);
+      }
+    } else if (_numa_interleave_memory != NULL) {
       _numa_interleave_memory(start, size, _numa_all_nodes);
     }
   }
@@ -291,14 +329,14 @@
   static int get_node_by_cpu(int cpu_id);
   static int get_existing_num_nodes();
   // Check if numa node is configured (non-zero memory node).
-  static bool isnode_in_configured_nodes(unsigned int n) {
+  static bool is_node_in_configured_nodes(unsigned int n) {
     if (_numa_bitmask_isbitset != NULL && _numa_all_nodes_ptr != NULL) {
       return _numa_bitmask_isbitset(_numa_all_nodes_ptr, n);
     } else
       return false;
   }
   // Check if numa node exists in the system (including zero memory nodes).
-  static bool isnode_in_existing_nodes(unsigned int n) {
+  static bool is_node_in_existing_nodes(unsigned int n) {
     if (_numa_bitmask_isbitset != NULL && _numa_nodes_ptr != NULL) {
       return _numa_bitmask_isbitset(_numa_nodes_ptr, n);
     } else if (_numa_bitmask_isbitset != NULL && _numa_all_nodes_ptr != NULL) {
@@ -317,16 +355,19 @@
       return false;
   }
   // Check if node is in bound node set.
-  static bool isnode_in_bound_nodes(int node) {
-    if (_numa_get_membind != NULL && _numa_bitmask_isbitset != NULL) {
-      return _numa_bitmask_isbitset(_numa_get_membind(), node);
-    } else {
-      return false;
+  static bool is_node_in_bound_nodes(int node) {
+    if (_numa_bitmask_isbitset != NULL) {
+      if (is_running_in_interleave_mode()) {
+        return _numa_bitmask_isbitset(_numa_interleave_bitmask, node);
+      } else {
+        return _numa_membind_bitmask != NULL ? _numa_bitmask_isbitset(_numa_membind_bitmask, node) : false;
+      }
     }
+    return false;
   }
   // Check if bound to only one numa node.
   // Returns true if bound to a single numa node, otherwise returns false.
-  static bool isbound_to_single_node() {
+  static bool is_bound_to_single_node() {
     int nodes = 0;
     struct bitmask* bmp = NULL;
     unsigned int node = 0;
@@ -353,4 +394,4 @@
   }
 };
 
-#endif // OS_LINUX_VM_OS_LINUX_HPP
+#endif // OS_LINUX_OS_LINUX_HPP
--- a/src/hotspot/os/linux/os_linux.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/os_linux.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_OS_LINUX_INLINE_HPP
-#define OS_LINUX_VM_OS_LINUX_INLINE_HPP
+#ifndef OS_LINUX_OS_LINUX_INLINE_HPP
+#define OS_LINUX_OS_LINUX_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -92,12 +92,6 @@
 inline bool os::numa_has_static_binding()   { return true; }
 inline bool os::numa_has_group_homing()     { return false;  }
 
-inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
-  size_t res;
-  RESTARTABLE( (size_t) ::read(fd, buf, (size_t) nBytes), res);
-  return res;
-}
-
 inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
   size_t res;
   RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
@@ -144,4 +138,4 @@
   ::exit(num);
 }
 
-#endif // OS_LINUX_VM_OS_LINUX_INLINE_HPP
+#endif // OS_LINUX_OS_LINUX_INLINE_HPP
--- a/src/hotspot/os/linux/os_share_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/os_share_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_OS_SHARE_LINUX_HPP
-#define OS_LINUX_VM_OS_SHARE_LINUX_HPP
+#ifndef OS_LINUX_OS_SHARE_LINUX_HPP
+#define OS_LINUX_OS_SHARE_LINUX_HPP
 
 // misc
 void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc);
@@ -33,4 +33,4 @@
 
 #define PROCFILE_LENGTH 128
 
-#endif // OS_LINUX_VM_OS_SHARE_LINUX_HPP
+#endif // OS_LINUX_OS_SHARE_LINUX_HPP
--- a/src/hotspot/os/linux/vmStructs_linux.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/linux/vmStructs_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_LINUX_VM_VMSTRUCTS_LINUX_HPP
-#define OS_LINUX_VM_VMSTRUCTS_LINUX_HPP
+#ifndef OS_LINUX_VMSTRUCTS_LINUX_HPP
+#define OS_LINUX_VMSTRUCTS_LINUX_HPP
 
 #include <dlfcn.h>
 
@@ -42,4 +42,4 @@
 #define VM_ADDRESSES_OS(declare_address, declare_preprocessor_address, declare_function) \
   declare_preprocessor_address("RTLD_DEFAULT", RTLD_DEFAULT)
 
-#endif // OS_LINUX_VM_VMSTRUCTS_LINUX_HPP
+#endif // OS_LINUX_VMSTRUCTS_LINUX_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os/linux/waitBarrier_linux.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 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.
+ *
+ */
+
+#include "precompiled/precompiled.hpp"
+#include "runtime/orderAccess.hpp"
+#include "runtime/os.hpp"
+#include "waitBarrier_linux.hpp"
+#include <sys/syscall.h>
+#include <linux/futex.h>
+
+#define check_with_errno(check_type, cond, msg)                             \
+  do {                                                                      \
+    int err = errno;                                                        \
+    check_type(cond, "%s: error='%s' (errno=%s)", msg, os::strerror(err),   \
+               os::errno_name(err));                                        \
+} while (false)
+
+#define guarantee_with_errno(cond, msg) check_with_errno(guarantee, cond, msg)
+
+static int futex(volatile int *addr, int futex_op, int op_arg) {
+  return syscall(SYS_futex, addr, futex_op, op_arg, NULL, NULL, 0);
+}
+
+void LinuxWaitBarrier::arm(int barrier_tag) {
+  assert(_futex_barrier == 0, "Should not be already armed: "
+         "_futex_barrier=%d", _futex_barrier);
+  _futex_barrier = barrier_tag;
+  OrderAccess::fence();
+}
+
+void LinuxWaitBarrier::disarm() {
+  assert(_futex_barrier != 0, "Should be armed/non-zero.");
+  _futex_barrier = 0;
+  int s = futex(&_futex_barrier,
+                FUTEX_WAKE_PRIVATE,
+                INT_MAX /* wake a max of this many threads */);
+  guarantee_with_errno(s > -1, "futex FUTEX_WAKE failed");
+}
+
+void LinuxWaitBarrier::wait(int barrier_tag) {
+  assert(barrier_tag != 0, "Trying to wait on disarmed value");
+  if (barrier_tag == 0 ||
+      barrier_tag != _futex_barrier) {
+    OrderAccess::fence();
+    return;
+  }
+  do {
+    int s = futex(&_futex_barrier,
+                  FUTEX_WAIT_PRIVATE,
+                  barrier_tag /* should be this tag */);
+    guarantee_with_errno((s == 0) ||
+                         (s == -1 && errno == EAGAIN) ||
+                         (s == -1 && errno == EINTR),
+                         "futex FUTEX_WAIT failed");
+    // Return value 0: woken up, but re-check in case of spurious wakeup.
+    // Error EINTR: woken by signal, so re-check and re-wait if necessary.
+    // Error EAGAIN: we are already disarmed and so will pass the check.
+  } while (barrier_tag == _futex_barrier);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/os/linux/waitBarrier_linux.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 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 OS_LINUX_WAITBARRIER_LINUX_HPP
+#define OS_LINUX_WAITBARRIER_LINUX_HPP
+
+#include "memory/allocation.hpp"
+
+class LinuxWaitBarrier : public CHeapObj<mtInternal> {
+  volatile int _futex_barrier;
+
+  // Prevent copying and assignment of LinuxWaitBarrier instances.
+  LinuxWaitBarrier(const LinuxWaitBarrier&);
+  LinuxWaitBarrier& operator=(const LinuxWaitBarrier&);
+
+ public:
+  LinuxWaitBarrier() : _futex_barrier(0) {};
+  ~LinuxWaitBarrier() {};
+
+  const char* description() { return "futex"; }
+
+  void arm(int barrier_tag);
+  void disarm();
+  void wait(int barrier_tag);
+};
+
+#endif // OS_LINUX_WAITBARRIER_LINUX_HPP
--- a/src/hotspot/os/posix/os_posix.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/posix/os_posix.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -554,6 +554,10 @@
   return ::fdopen(fd, mode);
 }
 
+ssize_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
+  return ::pread(fd, buf, nBytes, offset);
+}
+
 void os::flockfile(FILE* fp) {
   ::flockfile(fp);
 }
--- a/src/hotspot/os/posix/os_posix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/posix/os_posix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -24,8 +24,8 @@
 
 #include "runtime/os.hpp"
 
-#ifndef OS_POSIX_VM_OS_POSIX_HPP
-#define OS_POSIX_VM_OS_POSIX_HPP
+#ifndef OS_POSIX_OS_POSIX_HPP
+#define OS_POSIX_OS_POSIX_HPP
 
 // File conventions
 static const char* file_separator() { return "/"; }
@@ -224,4 +224,4 @@
 
 #endif // !SOLARIS
 
-#endif // OS_POSIX_VM_OS_POSIX_HPP
+#endif // OS_POSIX_OS_POSIX_HPP
--- a/src/hotspot/os/posix/semaphore_posix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/posix/semaphore_posix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_POSIX_VM_SEMAPHORE_POSIX_HPP
-#define OS_POSIX_VM_SEMAPHORE_POSIX_HPP
+#ifndef OS_POSIX_SEMAPHORE_POSIX_HPP
+#define OS_POSIX_SEMAPHORE_POSIX_HPP
 
 #include "memory/allocation.hpp"
 
@@ -50,4 +50,4 @@
 
 typedef PosixSemaphore SemaphoreImpl;
 
-#endif // OS_POSIX_VM_SEMAPHORE_POSIX_HPP
+#endif // OS_POSIX_SEMAPHORE_POSIX_HPP
--- a/src/hotspot/os/solaris/c1_globals_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/c1_globals_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
-#define OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
+#ifndef OS_SOLARIS_C1_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_C1_GLOBALS_SOLARIS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // client compiler. (see c1_globals.hpp)
 //
 
-#endif // OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP
+#endif // OS_SOLARIS_C1_GLOBALS_SOLARIS_HPP
--- a/src/hotspot/os/solaris/c2_globals_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/c2_globals_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
-#define OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
+#ifndef OS_SOLARIS_C2_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_C2_GLOBALS_SOLARIS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // server compiler. (see c2_globals.hpp)
 //
 
-#endif // OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP
+#endif // OS_SOLARIS_C2_GLOBALS_SOLARIS_HPP
--- a/src/hotspot/os/solaris/globals_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/globals_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
-#define OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
+#ifndef OS_SOLARIS_GLOBALS_SOLARIS_HPP
+#define OS_SOLARIS_GLOBALS_SOLARIS_HPP
 
 //
 // Defines Solaris specific flags. They are not available on other platforms.
@@ -51,4 +51,4 @@
 define_pd_global(bool, UseOSErrorReporting, false);
 define_pd_global(bool, UseThreadPriorities, false);
 
-#endif // OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP
+#endif // OS_SOLARIS_GLOBALS_SOLARIS_HPP
--- a/src/hotspot/os/solaris/osThread_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/osThread_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
-#define OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
+#ifndef OS_SOLARIS_OSTHREAD_SOLARIS_HPP
+#define OS_SOLARIS_OSTHREAD_SOLARIS_HPP
 
 // This is embedded via include into the class OSThread
  public:
@@ -85,4 +85,4 @@
   void pd_initialize();
   void pd_destroy();
 
-#endif // OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP
+#endif // OS_SOLARIS_OSTHREAD_SOLARIS_HPP
--- a/src/hotspot/os/solaris/os_share_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/os_share_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
-#define OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
+#ifndef OS_SOLARIS_OS_SHARE_SOLARIS_HPP
+#define OS_SOLARIS_OS_SHARE_SOLARIS_HPP
 
 // Defines the interfaces to Solaris operating systems that vary across platforms
 
@@ -39,4 +39,4 @@
 
 #define PROCFILE_LENGTH 128
 
-#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP
+#endif // OS_SOLARIS_OS_SHARE_SOLARIS_HPP
--- a/src/hotspot/os/solaris/os_solaris.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/os_solaris.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -2844,33 +2844,6 @@
   return true;
 }
 
-// Read calls from inside the vm need to perform state transitions
-size_t os::read(int fd, void *buf, unsigned int nBytes) {
-  size_t res;
-  JavaThread* thread = (JavaThread*)Thread::current();
-  assert(thread->thread_state() == _thread_in_vm, "Assumed _thread_in_vm");
-  ThreadBlockInVM tbiv(thread);
-  RESTARTABLE(::read(fd, buf, (size_t) nBytes), res);
-  return res;
-}
-
-size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
-  size_t res;
-  JavaThread* thread = (JavaThread*)Thread::current();
-  assert(thread->thread_state() == _thread_in_vm, "Assumed _thread_in_vm");
-  ThreadBlockInVM tbiv(thread);
-  RESTARTABLE(::pread(fd, buf, (size_t) nBytes, offset), res);
-  return res;
-}
-
-size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
-  size_t res;
-  assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
-         "Assumed _thread_in_native");
-  RESTARTABLE(::read(fd, buf, (size_t) nBytes), res);
-  return res;
-}
-
 // Sleep forever; naked call to OS-specific sleep; use with CAUTION
 void os::infinite_sleep() {
   while (true) {    // sleep forever ...
--- a/src/hotspot/os/solaris/os_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/os_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_OS_SOLARIS_HPP
-#define OS_SOLARIS_VM_OS_SOLARIS_HPP
+#ifndef OS_SOLARIS_OS_SOLARIS_HPP
+#define OS_SOLARIS_OS_SOLARIS_HPP
 
 // Solaris_OS defines the interface to Solaris operating systems
 
@@ -335,4 +335,4 @@
   }
 };
 
-#endif // OS_SOLARIS_VM_OS_SOLARIS_HPP
+#endif // OS_SOLARIS_OS_SOLARIS_HPP
--- a/src/hotspot/os/solaris/os_solaris.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/os_solaris.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
-#define OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
+#ifndef OS_SOLARIS_OS_SOLARIS_INLINE_HPP
+#define OS_SOLARIS_OS_SOLARIS_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -105,4 +105,4 @@
   ::exit(num);
 }
 
-#endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP
+#endif // OS_SOLARIS_OS_SOLARIS_INLINE_HPP
--- a/src/hotspot/os/solaris/vmStructs_solaris.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/solaris/vmStructs_solaris.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_SOLARIS_VM_VMSTRUCTS_SOLARIS_HPP
-#define OS_SOLARIS_VM_VMSTRUCTS_SOLARIS_HPP
+#ifndef OS_SOLARIS_VMSTRUCTS_SOLARIS_HPP
+#define OS_SOLARIS_VMSTRUCTS_SOLARIS_HPP
 
 // These are the OS-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -41,4 +41,4 @@
 
 #define VM_ADDRESSES_OS(declare_address, declare_preprocessor_address, declare_function)
 
-#endif // OS_SOLARIS_VM_VMSTRUCTS_SOLARIS_HPP
+#endif // OS_SOLARIS_VMSTRUCTS_SOLARIS_HPP
--- a/src/hotspot/os/windows/c1_globals_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/c1_globals_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
-#define OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
+#ifndef OS_WINDOWS_C1_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_C1_GLOBALS_WINDOWS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // client compiler. (see c1_globals.hpp)
 //
 
-#endif // OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP
+#endif // OS_WINDOWS_C1_GLOBALS_WINDOWS_HPP
--- a/src/hotspot/os/windows/c2_globals_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/c2_globals_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
-#define OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
+#ifndef OS_WINDOWS_C2_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_C2_GLOBALS_WINDOWS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -33,4 +33,4 @@
 // server compiler. (see c2_globals.hpp)
 //
 
-#endif // OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP
+#endif // OS_WINDOWS_C2_GLOBALS_WINDOWS_HPP
--- a/src/hotspot/os/windows/globals_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/globals_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
-#define OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
+#ifndef OS_WINDOWS_GLOBALS_WINDOWS_HPP
+#define OS_WINDOWS_GLOBALS_WINDOWS_HPP
 
 //
 // Defines Windows specific flags. They are not available on other platforms.
@@ -49,4 +49,4 @@
 define_pd_global(bool, UseOSErrorReporting, false);  // for now.
 define_pd_global(bool, UseThreadPriorities, true) ;
 
-#endif // OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP
+#endif // OS_WINDOWS_GLOBALS_WINDOWS_HPP
--- a/src/hotspot/os/windows/iphlp_interface.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/iphlp_interface.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_IPHLP_INTERFACE_HPP
-#define OS_WINDOWS_VM_IPHLP_INTERFACE_HPP
+#ifndef OS_WINDOWS_IPHLP_INTERFACE_HPP
+#define OS_WINDOWS_IPHLP_INTERFACE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -48,4 +48,4 @@
   static bool       IphlpDetach(void);
 };
 
-#endif // OS_WINDOWS_VM_IPHLP_INTERFACE_HPP
+#endif // OS_WINDOWS_IPHLP_INTERFACE_HPP
--- a/src/hotspot/os/windows/osThread_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/osThread_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
-#define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
+#ifndef OS_WINDOWS_OSTHREAD_WINDOWS_HPP
+#define OS_WINDOWS_OSTHREAD_WINDOWS_HPP
 
   typedef void* HANDLE;
  public:
@@ -66,4 +66,4 @@
   void pd_initialize();
   void pd_destroy();
 
-#endif // OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP
+#endif // OS_WINDOWS_OSTHREAD_WINDOWS_HPP
--- a/src/hotspot/os/windows/os_share_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/os_share_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,9 +22,9 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
-#define OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
+#ifndef OS_WINDOWS_OS_SHARE_WINDOWS_HPP
+#define OS_WINDOWS_OS_SHARE_WINDOWS_HPP
 
 // Defines the interfaces to Windows operating system that vary across platforms
 
-#endif // OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP
+#endif // OS_WINDOWS_OS_SHARE_WINDOWS_HPP
--- a/src/hotspot/os/windows/os_windows.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/os_windows.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -4539,7 +4539,7 @@
   return (jlong) ::_lseeki64(fd, offset, whence);
 }
 
-size_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
+ssize_t os::read_at(int fd, void *buf, unsigned int nBytes, jlong offset) {
   OVERLAPPED ov;
   DWORD nread;
   BOOL result;
@@ -4707,9 +4707,6 @@
 static int nonSeekAvailable(int, long *);
 static int stdinAvailable(int, long *);
 
-#define S_ISCHR(mode)   (((mode) & _S_IFCHR) == _S_IFCHR)
-#define S_ISFIFO(mode)  (((mode) & _S_IFIFO) == _S_IFIFO)
-
 // This code is a copy of JDK's sysAvailable
 // from src/windows/hpi/src/sys_api_md.c
 
--- a/src/hotspot/os/windows/os_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/os_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,13 +22,16 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP
-#define OS_WINDOWS_VM_OS_WINDOWS_HPP
+#ifndef OS_WINDOWS_OS_WINDOWS_HPP
+#define OS_WINDOWS_OS_WINDOWS_HPP
 // Win32_OS defines the interface to windows operating systems
 
 // strtok_s is the Windows thread-safe equivalent of POSIX strtok_r
 #define strtok_r strtok_s
 
+#define S_ISCHR(mode)   (((mode) & _S_IFCHR) == _S_IFCHR)
+#define S_ISFIFO(mode)  (((mode) & _S_IFIFO) == _S_IFIFO)
+
 // Information about the protection of the page at address '0' on this os.
 static bool zero_page_read_protected() { return true; }
 
@@ -184,4 +187,4 @@
 
 } ;
 
-#endif // OS_WINDOWS_VM_OS_WINDOWS_HPP
+#endif // OS_WINDOWS_OS_WINDOWS_HPP
--- a/src/hotspot/os/windows/os_windows.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/os_windows.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
-#define OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
+#ifndef OS_WINDOWS_OS_WINDOWS_INLINE_HPP
+#define OS_WINDOWS_OS_WINDOWS_INLINE_HPP
 
 #include "runtime/os.hpp"
 #include "runtime/thread.hpp"
@@ -70,14 +70,6 @@
 inline bool os::numa_has_static_binding()   { return true;   }
 inline bool os::numa_has_group_homing()     { return false;  }
 
-inline size_t os::read(int fd, void *buf, unsigned int nBytes) {
-  return ::read(fd, buf, nBytes);
-}
-
-inline size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
-  return ::read(fd, buf, nBytes);
-}
-
 inline size_t os::write(int fd, const void *buf, unsigned int nBytes) {
   return ::write(fd, buf, nBytes);
 }
@@ -94,4 +86,4 @@
   win32::exit_process_or_thread(win32::EPT_PROCESS, num);
 }
 
-#endif // OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP
+#endif // OS_WINDOWS_OS_WINDOWS_INLINE_HPP
--- a/src/hotspot/os/windows/pdh_interface.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/pdh_interface.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_PDH_INTERFACE_HPP
-#define OS_WINDOWS_VM_PDH_INTERFACE_HPP
+#ifndef OS_WINDOWS_PDH_INTERFACE_HPP
+#define OS_WINDOWS_PDH_INTERFACE_HPP
 
 #include "memory/allocation.hpp"
 #include <pdh.h>
@@ -61,4 +61,4 @@
   static bool       PdhDetach();
 };
 
-#endif // OS_WINDOWS_VM_PDH_INTERFACE_HPP
+#endif // OS_WINDOWS_PDH_INTERFACE_HPP
--- a/src/hotspot/os/windows/semaphore_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/semaphore_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_SEMAPHORE_WINDOWS_HPP
-#define OS_WINDOWS_VM_SEMAPHORE_WINDOWS_HPP
+#ifndef OS_WINDOWS_SEMAPHORE_WINDOWS_HPP
+#define OS_WINDOWS_SEMAPHORE_WINDOWS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -49,4 +49,4 @@
 
 typedef WindowsSemaphore SemaphoreImpl;
 
-#endif // OS_WINDOWS_VM_SEMAPHORE_WINDOWS_HPP
+#endif // OS_WINDOWS_SEMAPHORE_WINDOWS_HPP
--- a/src/hotspot/os/windows/symbolengine.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/symbolengine.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2017, SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_SYMBOLENGINE_HPP
-#define OS_WINDOWS_VM_SYMBOLENGINE_HPP
+#ifndef OS_WINDOWS_SYMBOLENGINE_HPP
+#define OS_WINDOWS_SYMBOLENGINE_HPP
 
 class outputStream;
 
@@ -58,6 +58,4 @@
 
 };
 
-#endif // #ifndef OS_WINDOWS_VM_SYMBOLENGINE_HPP
-
-
+#endif // OS_WINDOWS_SYMBOLENGINE_HPP
--- a/src/hotspot/os/windows/vmStructs_windows.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/vmStructs_windows.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_WINDOWS_VM_VMSTRUCTS_WINDOWS_HPP
-#define OS_WINDOWS_VM_VMSTRUCTS_WINDOWS_HPP
+#ifndef OS_WINDOWS_VMSTRUCTS_WINDOWS_HPP
+#define OS_WINDOWS_VMSTRUCTS_WINDOWS_HPP
 
 // These are the OS-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -39,4 +39,4 @@
 
 #define VM_ADDRESSES_OS(declare_address, declare_preprocessor_address, declare_function)
 
-#endif // OS_WINDOWS_VM_VMSTRUCTS_WINDOWS_HPP
+#endif // OS_WINDOWS_VMSTRUCTS_WINDOWS_HPP
--- a/src/hotspot/os/windows/windbghelp.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os/windows/windbghelp.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -72,4 +72,3 @@
 };
 
 #endif // OS_WINDOWS_WINDBGHELP_HPP
-
--- a/src/hotspot/os_cpu/aix_ppc/atomic_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/atomic_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_OJDKPPC_VM_ATOMIC_AIX_PPC_HPP
-#define OS_CPU_AIX_OJDKPPC_VM_ATOMIC_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_ATOMIC_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_ATOMIC_AIX_PPC_HPP
 
 #ifndef PPC64
 #error "Atomic currently only implemented for PPC64"
@@ -417,4 +417,4 @@
 #undef strasm_nobarrier
 #undef strasm_nobarrier_clobber_memory
 
-#endif // OS_CPU_AIX_OJDKPPC_VM_ATOMIC_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_ATOMIC_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/aix_ppc/bytes_aix_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/bytes_aix_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,11 +22,11 @@
  *
  */
 
-#ifndef OS_CPU_AIX_PPC_VM_BYTES_AIX_PPC_INLINE_HPP
-#define OS_CPU_AIX_PPC_VM_BYTES_AIX_PPC_INLINE_HPP
+#ifndef OS_CPU_AIX_PPC_BYTES_AIX_PPC_INLINE_HPP
+#define OS_CPU_AIX_PPC_BYTES_AIX_PPC_INLINE_HPP
 
 #if defined(VM_LITTLE_ENDIAN)
 // Aix is not little endian.
 #endif // VM_LITTLE_ENDIAN
 
-#endif // OS_CPU_AIX_PPC_VM_BYTES_AIX_PPC_INLINE_HPP
+#endif // OS_CPU_AIX_PPC_BYTES_AIX_PPC_INLINE_HPP
--- a/src/hotspot/os_cpu/aix_ppc/globals_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/globals_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_OJDKPPC_VM_GLOBALS_AIX_PPC_HPP
-#define OS_CPU_AIX_OJDKPPC_VM_GLOBALS_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_GLOBALS_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_GLOBALS_AIX_PPC_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -41,4 +41,4 @@
 // Only used on 64 bit platforms
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_AIX_OJDKPPC_VM_GLOBALS_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_GLOBALS_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/orderAccess_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2014 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_OJDKPPC_VM_ORDERACCESS_AIX_PPC_HPP
-#define OS_CPU_AIX_OJDKPPC_VM_ORDERACCESS_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_ORDERACCESS_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_ORDERACCESS_AIX_PPC_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -90,4 +90,4 @@
 #undef inlasm_eieio
 #undef inlasm_isync
 
-#endif // OS_CPU_AIX_OJDKPPC_VM_ORDERACCESS_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_ORDERACCESS_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_PPC_VM_OS_AIX_PPC_HPP
-#define OS_CPU_AIX_PPC_VM_OS_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_OS_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_OS_AIX_PPC_HPP
 
   static void setup_fpu() {}
 
@@ -36,4 +36,4 @@
 static bool platform_print_native_stack(outputStream* st, void* context,
                                         char *buf, int buf_size);
 
-#endif // OS_CPU_AIX_PPC_VM_OS_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_OS_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/prefetch_aix_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_PPC_VM_PREFETCH_AIX_PPC_INLINE_HPP
-#define OS_CPU_AIX_PPC_VM_PREFETCH_AIX_PPC_INLINE_HPP
+#ifndef OS_CPU_AIX_PPC_PREFETCH_AIX_PPC_INLINE_HPP
+#define OS_CPU_AIX_PPC_PREFETCH_AIX_PPC_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -55,4 +55,4 @@
 #endif
 }
 
-#endif // OS_CPU_AIX_PPC_VM_PREFETCH_AIX_PPC_INLINE_HPP
+#endif // OS_CPU_AIX_PPC_PREFETCH_AIX_PPC_INLINE_HPP
--- a/src/hotspot/os_cpu/aix_ppc/thread_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/thread_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_PPC_VM_THREAD_AIX_PPC_HPP
-#define OS_CPU_AIX_PPC_VM_THREAD_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_THREAD_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_THREAD_AIX_PPC_HPP
 
  private:
   void pd_initialize() {
@@ -51,4 +51,4 @@
   bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext,
                                       bool isInJava);
 
-#endif // OS_CPU_AIX_PPC_VM_THREAD_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_THREAD_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/aix_ppc/vmStructs_aix_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/aix_ppc/vmStructs_aix_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_AIX_OJDKPPC_VM_VMSTRUCTS_AIX_PPC_HPP
-#define OS_CPU_AIX_OJDKPPC_VM_VMSTRUCTS_AIX_PPC_HPP
+#ifndef OS_CPU_AIX_PPC_VMSTRUCTS_AIX_PPC_HPP
+#define OS_CPU_AIX_PPC_VMSTRUCTS_AIX_PPC_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -50,4 +50,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_AIX_OJDKPPC_VM_VMSTRUCTS_AIX_PPC_HPP
+#endif // OS_CPU_AIX_PPC_VMSTRUCTS_AIX_PPC_HPP
--- a/src/hotspot/os_cpu/bsd_x86/atomic_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/atomic_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_ATOMIC_BSD_X86_HPP
+#define OS_CPU_BSD_X86_ATOMIC_BSD_X86_HPP
 
 // Implementation of class atomic
 
@@ -169,4 +169,4 @@
 
 #endif // AMD64
 
-#endif // OS_CPU_BSD_X86_VM_ATOMIC_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_ATOMIC_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_x86/bytes_bsd_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/bytes_bsd_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
-#define OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
+#ifndef OS_CPU_BSD_X86_BYTES_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_BYTES_BSD_X86_INLINE_HPP
 
 #ifdef __APPLE__
 #include <libkern/OSByteOrder.h>
@@ -109,4 +109,4 @@
 }
 #endif // !AMD64
 
-#endif // OS_CPU_BSD_X86_VM_BYTES_BSD_X86_INLINE_HPP
+#endif // OS_CPU_BSD_X86_BYTES_BSD_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_x86/copy_bsd_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/copy_bsd_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
-#define OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
+#ifndef OS_CPU_BSD_X86_COPY_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_COPY_BSD_X86_INLINE_HPP
 
 static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
 #ifdef AMD64
@@ -306,4 +306,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_BSD_X86_VM_COPY_BSD_X86_INLINE_HPP
+#endif // OS_CPU_BSD_X86_COPY_BSD_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_x86/globals_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/globals_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_GLOBALS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_GLOBALS_BSD_X86_HPP
 
 //
 // Sets the default values for platform dependent flags used by the runtime system.
@@ -49,4 +49,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_BSD_X86_VM_GLOBALS_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_GLOBALS_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_x86/orderAccess_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/orderAccess_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_ORDERACCESS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_ORDERACCESS_BSD_X86_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -109,4 +109,4 @@
 };
 #endif // AMD64
 
-#endif // OS_CPU_BSD_X86_VM_ORDERACCESS_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_ORDERACCESS_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_OS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_OS_BSD_X86_HPP
 
   static void setup_fpu();
   static bool supports_sse();
@@ -36,4 +36,4 @@
   // Note: Currently only used in 64 bit Windows implementations
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_BSD_X86_VM_OS_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_OS_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/os_bsd_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_OS_BSD_X86_INLINE_HPP
-#define OS_CPU_BSD_X86_VM_OS_BSD_X86_INLINE_HPP
+#ifndef OS_CPU_BSD_X86_OS_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_OS_BSD_X86_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -43,4 +43,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_BSD_X86_VM_OS_BSD_X86_INLINE_HPP
+#endif // OS_CPU_BSD_X86_OS_BSD_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_x86/prefetch_bsd_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/prefetch_bsd_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
-#define OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
+#ifndef OS_CPU_BSD_X86_PREFETCH_BSD_X86_INLINE_HPP
+#define OS_CPU_BSD_X86_PREFETCH_BSD_X86_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -44,4 +44,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_BSD_X86_VM_PREFETCH_BSD_X86_INLINE_HPP
+#endif // OS_CPU_BSD_X86_PREFETCH_BSD_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_x86/thread_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/thread_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_THREAD_BSD_X86_HPP
+#define OS_CPU_BSD_X86_THREAD_BSD_X86_HPP
 
  private:
   void pd_initialize() {
@@ -66,4 +66,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_BSD_X86_VM_THREAD_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_THREAD_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_x86/vmStructs_bsd_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_x86/vmStructs_bsd_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
-#define OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
+#ifndef OS_CPU_BSD_X86_VMSTRUCTS_BSD_X86_HPP
+#define OS_CPU_BSD_X86_VMSTRUCTS_BSD_X86_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -50,4 +50,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_BSD_X86_VM_VMSTRUCTS_BSD_X86_HPP
+#endif // OS_CPU_BSD_X86_VMSTRUCTS_BSD_X86_HPP
--- a/src/hotspot/os_cpu/bsd_zero/atomic_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/atomic_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2011, 2015, Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_ATOMIC_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_ATOMIC_BSD_ZERO_HPP
 
 #include "runtime/os.hpp"
 
@@ -282,4 +282,4 @@
   os::atomic_copy64(reinterpret_cast<const volatile int64_t*>(&store_value), reinterpret_cast<volatile int64_t*>(dest));
 }
 
-#endif // OS_CPU_BSD_ZERO_VM_ATOMIC_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_ATOMIC_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/bsd_zero/bytes_bsd_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/bytes_bsd_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
-#define OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
+#ifndef OS_CPU_BSD_ZERO_BYTES_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_BYTES_BSD_ZERO_INLINE_HPP
 
 // Efficient swapping of data bytes from Java byte
 // ordering to native byte ordering and vice versa.
@@ -64,4 +64,4 @@
   return bswap_64(x);
 }
 
-#endif // OS_CPU_BSD_ZERO_VM_BYTES_BSD_ZERO_INLINE_HPP
+#endif // OS_CPU_BSD_ZERO_BYTES_BSD_ZERO_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_zero/globals_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/globals_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_GLOBALS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_GLOBALS_BSD_ZERO_HPP
 
 //
 // Set the default values for platform dependent flags used by the
@@ -44,4 +44,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_BSD_ZERO_VM_GLOBALS_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_GLOBALS_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/bsd_zero/orderAccess_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/orderAccess_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_ORDERACCESS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_ORDERACCESS_BSD_ZERO_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -74,4 +74,4 @@
 inline void OrderAccess::release()    { LIGHT_MEM_BARRIER; }
 inline void OrderAccess::fence()      { FULL_MEM_BARRIER;  }
 
-#endif // OS_CPU_BSD_ZERO_VM_ORDERACCESS_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_ORDERACCESS_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/bsd_zero/os_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/os_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_OS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_OS_BSD_ZERO_HPP
 
   static void setup_fpu() {}
 
@@ -53,4 +53,4 @@
 #endif
   }
 
-#endif // OS_CPU_BSD_ZERO_VM_OS_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_OS_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/bsd_zero/prefetch_bsd_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/prefetch_bsd_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
-#define OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
+#ifndef OS_CPU_BSD_ZERO_PREFETCH_BSD_ZERO_INLINE_HPP
+#define OS_CPU_BSD_ZERO_PREFETCH_BSD_ZERO_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -34,4 +34,4 @@
 inline void Prefetch::write(void* loc, intx interval) {
 }
 
-#endif // OS_CPU_BSD_ZERO_VM_PREFETCH_BSD_ZERO_INLINE_HPP
+#endif // OS_CPU_BSD_ZERO_PREFETCH_BSD_ZERO_INLINE_HPP
--- a/src/hotspot/os_cpu/bsd_zero/thread_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/thread_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_THREAD_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_THREAD_BSD_ZERO_HPP
 
  private:
   ZeroStack  _zero_stack;
@@ -116,4 +116,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_BSD_ZERO_VM_THREAD_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_THREAD_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/bsd_zero/vmStructs_bsd_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/bsd_zero/vmStructs_bsd_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
-#define OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
+#ifndef OS_CPU_BSD_ZERO_VMSTRUCTS_BSD_ZERO_HPP
+#define OS_CPU_BSD_ZERO_VMSTRUCTS_BSD_ZERO_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -39,4 +39,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_BSD_ZERO_VM_VMSTRUCTS_BSD_ZERO_HPP
+#endif // OS_CPU_BSD_ZERO_VMSTRUCTS_BSD_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/atomic_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_ATOMIC_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_ATOMIC_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_ATOMIC_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_ATOMIC_LINUX_AARCH64_HPP
 
 #include "vm_version_aarch64.hpp"
 
@@ -72,4 +72,4 @@
   }
 }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_ATOMIC_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_ATOMIC_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/bytes_linux_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/bytes_linux_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_BYTES_LINUX_AARCH64_INLINE_HPP
-#define OS_CPU_LINUX_AARCH64_VM_BYTES_LINUX_AARCH64_INLINE_HPP
+#ifndef OS_CPU_LINUX_AARCH64_BYTES_LINUX_AARCH64_INLINE_HPP
+#define OS_CPU_LINUX_AARCH64_BYTES_LINUX_AARCH64_INLINE_HPP
 
 #include <byteswap.h>
 
@@ -42,4 +42,4 @@
   return bswap_64(x);
 }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_BYTES_LINUX_AARCH64_INLINE_HPP
+#endif // OS_CPU_LINUX_AARCH64_BYTES_LINUX_AARCH64_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/copy_linux_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_COPY_LINUX_AARCH64_INLINE_HPP
-#define OS_CPU_LINUX_AARCH64_VM_COPY_LINUX_AARCH64_INLINE_HPP
+#ifndef OS_CPU_LINUX_AARCH64_COPY_LINUX_AARCH64_INLINE_HPP
+#define OS_CPU_LINUX_AARCH64_COPY_LINUX_AARCH64_INLINE_HPP
 
 #define COPY_SMALL(from, to, count)                                     \
 {                                                                       \
@@ -185,4 +185,4 @@
   _Copy_arrayof_conjoint_jlongs(from, to, count);
 }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_COPY_LINUX_AARCH64_INLINE_HPP
+#endif // OS_CPU_LINUX_AARCH64_COPY_LINUX_AARCH64_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_GLOBALS_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_GLOBALS_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_GLOBALS_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_GLOBALS_LINUX_AARCH64_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -43,4 +43,4 @@
 class Thread;
 extern __thread Thread *aarch64_currentThread;
 
-#endif // OS_CPU_LINUX_AARCH64_VM_GLOBALS_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_GLOBALS_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/orderAccess_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/orderAccess_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_ORDERACCESS_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_ORDERACCESS_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_ORDERACCESS_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_ORDERACCESS_LINUX_AARCH64_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -70,4 +70,4 @@
   void operator()(T v, volatile T* p) const { release_store(p, v); fence(); }
 };
 
-#endif // OS_CPU_LINUX_AARCH64_VM_ORDERACCESS_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_ORDERACCESS_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_HPP
 
   static void setup_fpu();
   static bool supports_sse();
@@ -42,4 +42,4 @@
     *(jlong *) dst = *(const jlong *) src;
   }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_INLINE_HPP
-#define OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_INLINE_HPP
+#ifndef OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_INLINE_HPP
+#define OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -37,4 +37,4 @@
   return (jlong)res;
 }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_OS_LINUX_AARCH64_INLINE_HPP
+#endif // OS_CPU_LINUX_AARCH64_OS_LINUX_AARCH64_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/prefetch_linux_aarch64.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/prefetch_linux_aarch64.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_PREFETCH_LINUX_AARCH64_INLINE_HPP
-#define OS_CPU_LINUX_AARCH64_VM_PREFETCH_LINUX_AARCH64_INLINE_HPP
+#ifndef OS_CPU_LINUX_AARCH64_PREFETCH_LINUX_AARCH64_INLINE_HPP
+#define OS_CPU_LINUX_AARCH64_PREFETCH_LINUX_AARCH64_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -43,4 +43,4 @@
 #endif
 }
 
-#endif // OS_CPU_LINUX_AARCH64_VM_PREFETCH_LINUX_AARCH64_INLINE_HPP
+#endif // OS_CPU_LINUX_AARCH64_PREFETCH_LINUX_AARCH64_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/thread_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_THREAD_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_THREAD_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_THREAD_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_THREAD_LINUX_AARCH64_HPP
 
  private:
 #ifdef ASSERT
@@ -77,4 +77,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_LINUX_AARCH64_VM_THREAD_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_THREAD_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_aarch64/vmStructs_linux_aarch64.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_aarch64/vmStructs_linux_aarch64.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_AARCH64_VM_VMSTRUCTS_LINUX_AARCH64_HPP
-#define OS_CPU_LINUX_AARCH64_VM_VMSTRUCTS_LINUX_AARCH64_HPP
+#ifndef OS_CPU_LINUX_AARCH64_VMSTRUCTS_LINUX_AARCH64_HPP
+#define OS_CPU_LINUX_AARCH64_VMSTRUCTS_LINUX_AARCH64_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -52,4 +52,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_AARCH64_VM_VMSTRUCTS_LINUX_AARCH64_HPP
+#endif // OS_CPU_LINUX_AARCH64_VMSTRUCTS_LINUX_AARCH64_HPP
--- a/src/hotspot/os_cpu/linux_arm/atomic_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/atomic_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_ATOMIC_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_ATOMIC_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_ATOMIC_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_ATOMIC_LINUX_ARM_HPP
 
 #include "runtime/os.hpp"
 #include "vm_version_arm.hpp"
@@ -137,4 +137,4 @@
   return cmpxchg_using_helper<int64_t>(reorder_cmpxchg_long_func, exchange_value, dest, compare_value);
 }
 
-#endif // OS_CPU_LINUX_ARM_VM_ATOMIC_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_ATOMIC_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_arm/bytes_linux_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/bytes_linux_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_BYTES_LINUX_ARM_INLINE_HPP
-#define OS_CPU_LINUX_ARM_VM_BYTES_LINUX_ARM_INLINE_HPP
+#ifndef OS_CPU_LINUX_ARM_BYTES_LINUX_ARM_INLINE_HPP
+#define OS_CPU_LINUX_ARM_BYTES_LINUX_ARM_INLINE_HPP
 
 #include <byteswap.h>
 
@@ -44,4 +44,4 @@
   return bswap_64(x);
 }
 
-#endif // OS_CPU_LINUX_ARM_VM_BYTES_LINUX_ARM_INLINE_HPP
+#endif // OS_CPU_LINUX_ARM_BYTES_LINUX_ARM_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_arm/copy_linux_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/copy_linux_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_COPY_LINUX_ARM_INLINE_HPP
-#define OS_CPU_LINUX_ARM_VM_COPY_LINUX_ARM_INLINE_HPP
+#ifndef OS_CPU_LINUX_ARM_COPY_LINUX_ARM_INLINE_HPP
+#define OS_CPU_LINUX_ARM_COPY_LINUX_ARM_INLINE_HPP
 
 static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
   _Copy_conjoint_words(from, to, count * HeapWordSize);
@@ -92,4 +92,4 @@
   pd_conjoint_oops_atomic((const oop*)from, (oop*)to, count);
 }
 
-#endif // OS_CPU_LINUX_ARM_VM_COPY_LINUX_ARM_INLINE_HPP
+#endif // OS_CPU_LINUX_ARM_COPY_LINUX_ARM_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_arm/globals_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/globals_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_GLOBALS_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_GLOBALS_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_GLOBALS_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_GLOBALS_LINUX_ARM_HPP
 
 //
 // Sets the default values for platform dependent flags used by the runtime system.
@@ -40,4 +40,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address or CDS
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_LINUX_ARM_VM_GLOBALS_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_GLOBALS_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_arm/orderAccess_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/orderAccess_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_ORDERACCESS_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_ORDERACCESS_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_ORDERACCESS_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_ORDERACCESS_LINUX_ARM_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -102,4 +102,4 @@
 inline void OrderAccess::release()    { dmb_sy(); }
 inline void OrderAccess::fence()      { dmb_sy(); }
 
-#endif // OS_CPU_LINUX_ARM_VM_ORDERACCESS_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_ORDERACCESS_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_arm/os_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/os_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_OS_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_OS_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_OS_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_OS_LINUX_ARM_HPP
 
 #ifndef __thumb__
   enum {
@@ -70,4 +70,4 @@
                                            int32_t exchange_value,
                                            volatile int32_t *dest);
 
-#endif // OS_CPU_LINUX_ARM_VM_OS_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_OS_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_arm/prefetch_linux_arm.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/prefetch_linux_arm.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_PREFETCH_LINUX_ARM_INLINE_HPP
-#define OS_CPU_LINUX_ARM_VM_PREFETCH_LINUX_ARM_INLINE_HPP
+#ifndef OS_CPU_LINUX_ARM_PREFETCH_LINUX_ARM_INLINE_HPP
+#define OS_CPU_LINUX_ARM_PREFETCH_LINUX_ARM_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -37,4 +37,4 @@
   // Not available on 32-bit ARM (prior to ARMv7 with MP extensions)
 }
 
-#endif // OS_CPU_LINUX_ARM_VM_PREFETCH_LINUX_ARM_INLINE_HPP
+#endif // OS_CPU_LINUX_ARM_PREFETCH_LINUX_ARM_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_arm/thread_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/thread_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_THREAD_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_THREAD_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_THREAD_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_THREAD_LINUX_ARM_HPP
 
  private:
   // The following thread-local variables replicate corresponding global variables.
@@ -84,4 +84,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_LINUX_ARM_VM_THREAD_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_THREAD_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_arm/vmStructs_linux_arm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_arm/vmStructs_linux_arm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ARM_VM_VMSTRUCTS_LINUX_ARM_HPP
-#define OS_CPU_LINUX_ARM_VM_VMSTRUCTS_LINUX_ARM_HPP
+#ifndef OS_CPU_LINUX_ARM_VMSTRUCTS_LINUX_ARM_HPP
+#define OS_CPU_LINUX_ARM_VMSTRUCTS_LINUX_ARM_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -50,4 +50,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_ARM_VM_VMSTRUCTS_LINUX_ARM_HPP
+#endif // OS_CPU_LINUX_ARM_VMSTRUCTS_LINUX_ARM_HPP
--- a/src/hotspot/os_cpu/linux_ppc/atomic_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/atomic_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_ATOMIC_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_ATOMIC_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_ATOMIC_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_ATOMIC_LINUX_PPC_HPP
 
 #ifndef PPC64
 #error "Atomic currently only implemented for PPC64"
@@ -415,4 +415,4 @@
 #undef strasm_nobarrier
 #undef strasm_nobarrier_clobber_memory
 
-#endif // OS_CPU_LINUX_PPC_VM_ATOMIC_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_ATOMIC_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_ppc/bytes_linux_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/bytes_linux_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2014 Google Inc.  All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_BYTES_LINUX_PPC_INLINE_HPP
-#define OS_CPU_LINUX_PPC_VM_BYTES_LINUX_PPC_INLINE_HPP
+#ifndef OS_CPU_LINUX_PPC_BYTES_LINUX_PPC_INLINE_HPP
+#define OS_CPU_LINUX_PPC_BYTES_LINUX_PPC_INLINE_HPP
 
 #if defined(VM_LITTLE_ENDIAN)
 #include <byteswap.h>
@@ -36,4 +36,4 @@
 inline u8 Bytes::swap_u8(u8 x) { return bswap_64(x); }
 #endif // VM_LITTLE_ENDIAN
 
-#endif // OS_CPU_LINUX_PPC_VM_BYTES_LINUX_PPC_INLINE_HPP
+#endif // OS_CPU_LINUX_PPC_BYTES_LINUX_PPC_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_ppc/globals_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/globals_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2015 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_GLOBALS_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_GLOBALS_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_GLOBALS_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_GLOBALS_LINUX_PPC_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -41,4 +41,4 @@
 // Only used on 64 bit platforms
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_LINUX_PPC_VM_GLOBALS_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_GLOBALS_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2014 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_ORDERACCESS_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_ORDERACCESS_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_ORDERACCESS_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_ORDERACCESS_LINUX_PPC_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -94,4 +94,4 @@
 #undef inlasm_isync
 #undef inlasm_acquire_reg
 
-#endif // OS_CPU_LINUX_PPC_VM_ORDERACCESS_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_ORDERACCESS_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_OS_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_OS_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_OS_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_OS_LINUX_PPC_HPP
 
   static void setup_fpu() {}
 
@@ -32,4 +32,4 @@
   // Note: Currently only used in 64 bit Windows implementations
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_LINUX_PPC_VM_OS_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_OS_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_ppc/prefetch_linux_ppc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/prefetch_linux_ppc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_PREFETCH_LINUX_PPC_INLINE_HPP
-#define OS_CPU_LINUX_PPC_VM_PREFETCH_LINUX_PPC_INLINE_HPP
+#ifndef OS_CPU_LINUX_PPC_PREFETCH_LINUX_PPC_INLINE_HPP
+#define OS_CPU_LINUX_PPC_PREFETCH_LINUX_PPC_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -47,4 +47,4 @@
     );
 }
 
-#endif // OS_CPU_LINUX_PPC_VM_PREFETCH_LINUX_PPC_INLINE_HPP
+#endif // OS_CPU_LINUX_PPC_PREFETCH_LINUX_PPC_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_THREAD_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_THREAD_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_THREAD_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_THREAD_LINUX_PPC_HPP
 
  private:
 
@@ -51,4 +51,4 @@
 
   bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
 
-#endif // OS_CPU_LINUX_PPC_VM_THREAD_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_THREAD_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_ppc/vmStructs_linux_ppc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_ppc/vmStructs_linux_ppc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_PPC_VM_VMSTRUCTS_LINUX_PPC_HPP
-#define OS_CPU_LINUX_PPC_VM_VMSTRUCTS_LINUX_PPC_HPP
+#ifndef OS_CPU_LINUX_PPC_VMSTRUCTS_LINUX_PPC_HPP
+#define OS_CPU_LINUX_PPC_VMSTRUCTS_LINUX_PPC_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -52,4 +52,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_PPC_VM_VMSTRUCTS_LINUX_PPC_HPP
+#endif // OS_CPU_LINUX_PPC_VMSTRUCTS_LINUX_PPC_HPP
--- a/src/hotspot/os_cpu/linux_s390/atomic_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/atomic_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_ATOMIC_LINUX_S390_INLINE_HPP
-#define OS_CPU_LINUX_S390_VM_ATOMIC_LINUX_S390_INLINE_HPP
+#ifndef OS_CPU_LINUX_S390_ATOMIC_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_ATOMIC_LINUX_S390_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/os.hpp"
@@ -335,4 +335,4 @@
   return old;
 }
 
-#endif // OS_CPU_LINUX_S390_VM_ATOMIC_LINUX_S390_INLINE_HPP
+#endif // OS_CPU_LINUX_S390_ATOMIC_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_s390/bytes_linux_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/bytes_linux_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_BYTES_LINUX_S390_INLINE_HPP
-#define OS_CPU_LINUX_S390_VM_BYTES_LINUX_S390_INLINE_HPP
+#ifndef OS_CPU_LINUX_S390_BYTES_LINUX_S390_INLINE_HPP
+#define OS_CPU_LINUX_S390_BYTES_LINUX_S390_INLINE_HPP
 
 // Efficient swapping of data bytes from Java byte
 // ordering to native byte ordering and vice versa.
@@ -43,4 +43,4 @@
   return bswap_64(x);
 }
 
-#endif // OS_CPU_LINUX_S390_VM_BYTES_LINUX_S390_INLINE_HPP
+#endif // OS_CPU_LINUX_S390_BYTES_LINUX_S390_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_s390/globals_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/globals_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -25,8 +25,8 @@
 
 // Sorted according to linux_x86.
 
-#ifndef OS_CPU_LINUX_S390_VM_GLOBALS_LINUX_S390_HPP
-#define OS_CPU_LINUX_S390_VM_GLOBALS_LINUX_S390_HPP
+#ifndef OS_CPU_LINUX_S390_GLOBALS_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_GLOBALS_LINUX_S390_HPP
 
 // Sets the default values for platform dependent flags used by the
 // runtime system (see globals.hpp).
@@ -49,6 +49,4 @@
 // Only used on 64 bit platforms.
 define_pd_global(size_t, HeapBaseMinAddress,      2*G);
 
-#endif // OS_CPU_LINUX_S390_VM_GLOBALS_LINUX_S390_HPP
-
-
+#endif // OS_CPU_LINUX_S390_GLOBALS_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/orderAccess_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_ORDERACCESS_LINUX_S390_HPP
-#define OS_CPU_LINUX_S390_VM_ORDERACCESS_LINUX_S390_HPP
+#ifndef OS_CPU_LINUX_S390_ORDERACCESS_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_ORDERACCESS_LINUX_S390_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -88,4 +88,4 @@
 #undef inlasm_zarch_acquire
 #undef inlasm_zarch_fence
 
-#endif // OS_CPU_LINUX_S390_VM_ORDERACCESS_LINUX_S390_HPP
+#endif // OS_CPU_LINUX_S390_ORDERACCESS_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_s390/os_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/os_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,13 +23,12 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_OS_LINUX_S390_HPP
-#define OS_CPU_LINUX_S390_VM_OS_LINUX_S390_HPP
+#ifndef OS_CPU_LINUX_S390_OS_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_OS_LINUX_S390_HPP
 
   static void setup_fpu() {}
 
   // Used to register dynamic code cache area with the OS.
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_LINUX_S390_VM_OS_LINUX_S390_HPP
-
+#endif // OS_CPU_LINUX_S390_OS_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_s390/prefetch_linux_s390.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/prefetch_linux_s390.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_PREFETCH_LINUX_S390_INLINE_HPP
-#define OS_CPU_LINUX_S390_VM_PREFETCH_LINUX_S390_INLINE_HPP
+#ifndef OS_CPU_LINUX_S390_PREFETCH_LINUX_S390_INLINE_HPP
+#define OS_CPU_LINUX_S390_PREFETCH_LINUX_S390_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -36,4 +36,4 @@
   // No prefetch instructions on z/Architecture -> implement trivially.
 }
 
-#endif // OS_CPU_LINUX_S390_VM_PREFETCH_LINUX_S390_INLINE_HPP
+#endif // OS_CPU_LINUX_S390_PREFETCH_LINUX_S390_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_s390/thread_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/thread_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_THREAD_LINUX_S390_HPP
-#define OS_CPU_LINUX_S390_VM_THREAD_LINUX_S390_HPP
+#ifndef OS_CPU_LINUX_S390_THREAD_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_THREAD_LINUX_S390_HPP
 
  private:
 
@@ -50,4 +50,4 @@
 
   bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
 
-#endif // OS_CPU_LINUX_S390_VM_THREAD_LINUX_S390_HPP
+#endif // OS_CPU_LINUX_S390_THREAD_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_s390/vmStructs_linux_s390.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_s390/vmStructs_linux_s390.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2016 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_S390_VM_VMSTRUCTS_LINUX_S390_HPP
-#define OS_CPU_LINUX_S390_VM_VMSTRUCTS_LINUX_S390_HPP
+#ifndef OS_CPU_LINUX_S390_VMSTRUCTS_LINUX_S390_HPP
+#define OS_CPU_LINUX_S390_VMSTRUCTS_LINUX_S390_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -52,5 +52,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_S390_VM_VMSTRUCTS_LINUX_S390_HPP
-
+#endif // OS_CPU_LINUX_S390_VMSTRUCTS_LINUX_S390_HPP
--- a/src/hotspot/os_cpu/linux_sparc/atomic_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/atomic_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
-#define OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
+#ifndef OS_CPU_LINUX_SPARC_ATOMIC_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_ATOMIC_LINUX_SPARC_HPP
 
 // Implementation of class atomic
 
@@ -154,4 +154,4 @@
   return rv;
 }
 
-#endif // OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP
+#endif // OS_CPU_LINUX_SPARC_ATOMIC_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_sparc/globals_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/globals_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
-#define OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
+#ifndef OS_CPU_LINUX_SPARC_GLOBALS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_GLOBALS_LINUX_SPARC_HPP
 
 //
 // Sets the default values for platform dependent flags used by the
@@ -35,4 +35,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     CONST64(4)*G);
 
-#endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP
+#endif // OS_CPU_LINUX_SPARC_GLOBALS_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_sparc/orderAccess_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/orderAccess_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_HPP
-#define OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_HPP
+#ifndef OS_CPU_LINUX_SPARC_ORDERACCESS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_ORDERACCESS_LINUX_SPARC_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -48,4 +48,4 @@
   __asm__ volatile ("membar  #StoreLoad" : : : "memory");
 }
 
-#endif // OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_HPP
+#endif // OS_CPU_LINUX_SPARC_ORDERACCESS_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/os_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
-#define OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
+#ifndef OS_CPU_LINUX_SPARC_OS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_OS_LINUX_SPARC_HPP
 
   //
   // NOTE: we are back in class os here, not Linux
@@ -46,4 +46,4 @@
   // Note: Currently only used in 64 bit Windows implementations
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP
+#endif // OS_CPU_LINUX_SPARC_OS_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_sparc/prefetch_linux_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/prefetch_linux_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
-#define OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
+#ifndef OS_CPU_LINUX_SPARC_PREFETCH_LINUX_SPARC_INLINE_HPP
+#define OS_CPU_LINUX_SPARC_PREFETCH_LINUX_SPARC_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -35,4 +35,4 @@
   __asm__ volatile("prefetch [%0+%1], 2" : : "r" (loc), "r" (interval) : "memory" );
 }
 
-#endif // OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP
+#endif // OS_CPU_LINUX_SPARC_PREFETCH_LINUX_SPARC_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
-#define OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
+#ifndef OS_CPU_LINUX_SPARC_THREAD_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_THREAD_LINUX_SPARC_HPP
 
 private:
 
@@ -95,4 +95,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP
+#endif // OS_CPU_LINUX_SPARC_THREAD_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_sparc/vmStructs_linux_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_sparc/vmStructs_linux_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
-#define OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
+#ifndef OS_CPU_LINUX_SPARC_VMSTRUCTS_LINUX_SPARC_HPP
+#define OS_CPU_LINUX_SPARC_VMSTRUCTS_LINUX_SPARC_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -60,4 +60,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP
+#endif // OS_CPU_LINUX_SPARC_VMSTRUCTS_LINUX_SPARC_HPP
--- a/src/hotspot/os_cpu/linux_x86/atomic_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/atomic_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_ATOMIC_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_ATOMIC_LINUX_X86_HPP
 
 // Implementation of class atomic
 
@@ -169,4 +169,4 @@
 
 #endif // AMD64
 
-#endif // OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_ATOMIC_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/bytes_linux_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/bytes_linux_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
-#define OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
+#ifndef OS_CPU_LINUX_X86_BYTES_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_BYTES_LINUX_X86_INLINE_HPP
 
 #include <byteswap.h>
 
@@ -87,4 +87,4 @@
 }
 #endif // !AMD64
 
-#endif // OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP
+#endif // OS_CPU_LINUX_X86_BYTES_LINUX_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_x86/copy_linux_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/copy_linux_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
-#define OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
+#ifndef OS_CPU_LINUX_X86_COPY_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_COPY_LINUX_X86_INLINE_HPP
 
 static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
 #ifdef AMD64
@@ -306,4 +306,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP
+#endif // OS_CPU_LINUX_X86_COPY_LINUX_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zAddress_linux_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zAddress_linux_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,11 +21,11 @@
  * questions.
  */
 
-#ifndef OS_CPU_LINUX_X86_ZADDRESS_LINUX_X86_INLINE_HPP
-#define OS_CPU_LINUX_X86_ZADDRESS_LINUX_X86_INLINE_HPP
+#ifndef OS_CPU_LINUX_X86_GC_Z_ZADDRESS_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_GC_Z_ZADDRESS_LINUX_X86_INLINE_HPP
 
 inline uintptr_t ZAddress::address(uintptr_t value) {
   return value;
 }
 
-#endif // OS_CPU_LINUX_X86_ZADDRESS_LINUX_X86_INLINE_HPP
+#endif // OS_CPU_LINUX_X86_GC_Z_ZADDRESS_LINUX_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef OS_CPU_LINUX_X86_ZBACKINGFILE_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_ZBACKINGFILE_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_GC_Z_ZBACKINGFILE_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_GC_Z_ZBACKINGFILE_LINUX_X86_HPP
 
 #include "memory/allocation.hpp"
 
@@ -60,4 +60,4 @@
   size_t try_expand(size_t offset, size_t length, size_t alignment) const;
 };
 
-#endif // OS_CPU_LINUX_X86_ZBACKINGFILE_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_GC_Z_ZBACKINGFILE_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef OS_CPU_LINUX_X86_ZBACKINGPATH_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_ZBACKINGPATH_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_GC_Z_ZBACKINGPATH_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_GC_Z_ZBACKINGPATH_LINUX_X86_HPP
 
 #include "gc/z/zArray.hpp"
 #include "memory/allocation.hpp"
@@ -49,4 +49,4 @@
   const char* get() const;
 };
 
-#endif // OS_CPU_LINUX_X86_ZBACKINGPATH_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_GC_Z_ZBACKINGPATH_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zGlobals_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zGlobals_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef OS_CPU_LINUX_X86_ZGLOBALS_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_ZGLOBALS_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_GC_Z_ZGLOBALS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_GC_Z_ZGLOBALS_LINUX_X86_HPP
 
 //
 // Page Allocation Tiers
@@ -87,4 +87,4 @@
 
 const size_t    ZPlatformCacheLineSize         = 64;
 
-#endif // OS_CPU_LINUX_X86_ZGLOBALS_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_GC_Z_ZGLOBALS_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef OS_CPU_LINUX_X86_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
 
 #include "gc/z/zBackingFile_linux_x86.hpp"
 #include "gc/z/zMemory.hpp"
@@ -62,4 +62,4 @@
   void flip(ZPhysicalMemory pmem, uintptr_t offset) const;
 };
 
-#endif // OS_CPU_LINUX_X86_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_GC_Z_ZPHYSICALMEMORYBACKING_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/globals_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/globals_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_GLOBALS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_GLOBALS_LINUX_X86_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -47,4 +47,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_GLOBALS_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/orderAccess_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/orderAccess_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_ORDERACCESS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_ORDERACCESS_LINUX_X86_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -105,4 +105,4 @@
 };
 #endif // AMD64
 
-#endif // OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_ORDERACCESS_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_OS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_OS_LINUX_X86_HPP
 
   static void setup_fpu();
   static bool supports_sse();
@@ -49,4 +49,4 @@
    */
   static void workaround_expand_exec_shield_cs_limit();
 
-#endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_OS_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_OS_LINUX_X86_INLINE_HPP
-#define OS_CPU_LINUX_X86_VM_OS_LINUX_X86_INLINE_HPP
+#ifndef OS_CPU_LINUX_X86_OS_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_OS_LINUX_X86_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -43,4 +43,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_INLINE_HPP
+#endif // OS_CPU_LINUX_X86_OS_LINUX_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_x86/prefetch_linux_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/prefetch_linux_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
-#define OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
+#ifndef OS_CPU_LINUX_X86_PREFETCH_LINUX_X86_INLINE_HPP
+#define OS_CPU_LINUX_X86_PREFETCH_LINUX_X86_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -44,4 +44,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP
+#endif // OS_CPU_LINUX_X86_PREFETCH_LINUX_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_x86/thread_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/thread_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_THREAD_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_THREAD_LINUX_X86_HPP
 
  private:
   void pd_initialize() {
@@ -64,4 +64,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_THREAD_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_x86/vmStructs_linux_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_x86/vmStructs_linux_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
-#define OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
+#ifndef OS_CPU_LINUX_X86_VMSTRUCTS_LINUX_X86_HPP
+#define OS_CPU_LINUX_X86_VMSTRUCTS_LINUX_X86_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -51,4 +51,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP
+#endif // OS_CPU_LINUX_X86_VMSTRUCTS_LINUX_X86_HPP
--- a/src/hotspot/os_cpu/linux_zero/atomic_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/atomic_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2011, 2015, Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_ATOMIC_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_ATOMIC_LINUX_ZERO_HPP
 
 #include "runtime/os.hpp"
 
@@ -128,4 +128,4 @@
   os::atomic_copy64(reinterpret_cast<const volatile int64_t*>(&store_value), reinterpret_cast<volatile int64_t*>(dest));
 }
 
-#endif // OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_ATOMIC_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_zero/bytes_linux_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/bytes_linux_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
-#define OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
+#ifndef OS_CPU_LINUX_ZERO_BYTES_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_BYTES_LINUX_ZERO_INLINE_HPP
 
 // Efficient swapping of data bytes from Java byte
 // ordering to native byte ordering and vice versa.
@@ -42,4 +42,4 @@
   return bswap_64(x);
 }
 
-#endif // OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP
+#endif // OS_CPU_LINUX_ZERO_BYTES_LINUX_ZERO_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_zero/globals_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/globals_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_GLOBALS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_GLOBALS_LINUX_ZERO_HPP
 
 //
 // Set the default values for platform dependent flags used by the
@@ -44,4 +44,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_GLOBALS_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_zero/orderAccess_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/orderAccess_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_ORDERACCESS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_ORDERACCESS_LINUX_ZERO_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -83,4 +83,4 @@
 
 inline void OrderAccess::fence()      { FULL_MEM_BARRIER;  }
 
-#endif // OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_ORDERACCESS_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_zero/os_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/os_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2010, 2018, Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_OS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_OS_LINUX_ZERO_HPP
 
   static void setup_fpu() {}
 
@@ -69,4 +69,4 @@
 #endif
   }
 
-#endif // OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_OS_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_zero/prefetch_linux_zero.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/prefetch_linux_zero.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
-#define OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
+#ifndef OS_CPU_LINUX_ZERO_PREFETCH_LINUX_ZERO_INLINE_HPP
+#define OS_CPU_LINUX_ZERO_PREFETCH_LINUX_ZERO_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -34,4 +34,4 @@
 inline void Prefetch::write(void* loc, intx interval) {
 }
 
-#endif // OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP
+#endif // OS_CPU_LINUX_ZERO_PREFETCH_LINUX_ZERO_INLINE_HPP
--- a/src/hotspot/os_cpu/linux_zero/thread_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/thread_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_THREAD_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_THREAD_LINUX_ZERO_HPP
 
  private:
   ZeroStack  _zero_stack;
@@ -124,4 +124,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_THREAD_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/linux_zero/vmStructs_linux_zero.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/linux_zero/vmStructs_linux_zero.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2007 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
-#define OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
+#ifndef OS_CPU_LINUX_ZERO_VMSTRUCTS_LINUX_ZERO_HPP
+#define OS_CPU_LINUX_ZERO_VMSTRUCTS_LINUX_ZERO_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -38,4 +38,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP
+#endif // OS_CPU_LINUX_ZERO_VMSTRUCTS_LINUX_ZERO_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/atomic_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/atomic_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_ATOMIC_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_ATOMIC_SOLARIS_SPARC_HPP
 
 // Implementation of class atomic
 
@@ -107,4 +107,4 @@
   return rv;
 }
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_ATOMIC_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/count_trailing_zeros_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/count_trailing_zeros_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_COUNTTRAILINGZEROS_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_COUNTTRAILINGZEROS_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_COUNT_TRAILING_ZEROS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_COUNT_TRAILING_ZEROS_SOLARIS_SPARC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -38,4 +38,4 @@
   return result;
 }
 
-#endif // include guard
+#endif // OS_CPU_SOLARIS_SPARC_COUNT_TRAILING_ZEROS_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/globals_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/globals_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_GLOBALS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_GLOBALS_SOLARIS_SPARC_HPP
 
 //
 // Sets the default values for platform dependent flags used by the runtime system.
@@ -39,4 +39,4 @@
 
 
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_GLOBALS_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/orderAccess_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/orderAccess_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_ORDERACCESS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_ORDERACCESS_SOLARIS_SPARC_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -51,4 +51,4 @@
   __asm__ volatile ("membar  #StoreLoad" : : : "memory");
 }
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_ORDERACCESS_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_OS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_OS_SOLARIS_SPARC_HPP
 
   //
   // NOTE: we are back in class os here, not Solaris
@@ -46,4 +46,4 @@
   // Note: Currently only used in 64 bit Windows implementations
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_OS_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/prefetch_solaris_sparc.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/prefetch_solaris_sparc.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_PREFETCH_SOLARIS_SPARC_INLINE_HPP
+#define OS_CPU_SOLARIS_SPARC_PREFETCH_SOLARIS_SPARC_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -40,4 +40,4 @@
   _Prefetch_write(loc, interval);
 }
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP
+#endif // OS_CPU_SOLARIS_SPARC_PREFETCH_SOLARIS_SPARC_INLINE_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/thread_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/thread_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_THREAD_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_THREAD_SOLARIS_SPARC_HPP
 private:
 
   void pd_initialize() {
@@ -94,4 +94,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_THREAD_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_sparc/vmStructs_solaris_sparc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_sparc/vmStructs_solaris_sparc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
-#define OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
+#ifndef OS_CPU_SOLARIS_SPARC_VMSTRUCTS_SOLARIS_SPARC_HPP
+#define OS_CPU_SOLARIS_SPARC_VMSTRUCTS_SOLARIS_SPARC_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -39,4 +39,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP
+#endif // OS_CPU_SOLARIS_SPARC_VMSTRUCTS_SOLARIS_SPARC_HPP
--- a/src/hotspot/os_cpu/solaris_x86/atomic_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/atomic_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_ATOMIC_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_ATOMIC_SOLARIS_X86_HPP
 
 // For Sun Studio - implementation is in solaris_x86_64.il.
 
@@ -141,4 +141,4 @@
                          PrimitiveConversions::cast<int64_t>(compare_value)));
 }
 
-#endif // OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_ATOMIC_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/bytes_solaris_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/bytes_solaris_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
-#define OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
+#ifndef OS_CPU_SOLARIS_X86_BYTES_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_BYTES_SOLARIS_X86_INLINE_HPP
 
 // For Sun Studio - implementation is in solaris_i486.il.
 // For gcc - implementation is just below.
@@ -61,4 +61,4 @@
 }
 #endif // !AMD64
 
-#endif // OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP
+#endif // OS_CPU_SOLARIS_X86_BYTES_SOLARIS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/solaris_x86/copy_solaris_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/copy_solaris_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
-#define OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
+#ifndef OS_CPU_SOLARIS_X86_COPY_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_COPY_SOLARIS_X86_INLINE_HPP
 
 static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
   (void)memmove(to, from, count * HeapWordSize);
@@ -140,4 +140,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP
+#endif // OS_CPU_SOLARIS_X86_COPY_SOLARIS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/solaris_x86/count_trailing_zeros_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/count_trailing_zeros_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_COUNTTRAILINGZEROS_HPP
-#define OS_CPU_SOLARIS_X86_VM_COUNTTRAILINGZEROS_HPP
+#ifndef OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -34,4 +34,4 @@
   return result;
 }
 
-#endif // include guard
+#endif // OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/globals_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/globals_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_GLOBALS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_GLOBALS_SOLARIS_X86_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -47,4 +47,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_GLOBALS_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/orderAccess_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/orderAccess_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_ORDERACCESS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_ORDERACCESS_SOLARIS_X86_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -54,4 +54,4 @@
   compiler_barrier();
 }
 
-#endif // OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_ORDERACCESS_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_HPP
 
   //
   // NOTE: we are back in class os here, not Solaris
@@ -54,4 +54,4 @@
   // Note: Currently only used in 64 bit Windows implementations
   static bool register_code_area(char *low, char *high) { return true; }
 
-#endif // OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/os_solaris_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_INLINE_HPP
-#define OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_INLINE_HPP
+#ifndef OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -31,4 +31,4 @@
 
 inline jlong os::rdtsc() { return _raw_rdtsc(); }
 
-#endif // OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_INLINE_HPP
+#endif // OS_CPU_SOLARIS_X86_OS_SOLARIS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/solaris_x86/prefetch_solaris_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/prefetch_solaris_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP
-#define OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP
+#ifndef OS_CPU_SOLARIS_X86_PREFETCH_SOLARIS_X86_INLINE_HPP
+#define OS_CPU_SOLARIS_X86_PREFETCH_SOLARIS_X86_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
@@ -45,4 +45,4 @@
 #endif // AMD64
 }
 
-#endif // OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP
+#endif // OS_CPU_SOLARIS_X86_PREFETCH_SOLARIS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/solaris_x86/thread_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/thread_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_THREAD_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_THREAD_SOLARIS_X86_HPP
 
  private:
   void pd_initialize()                           { _anchor.clear(); }
@@ -59,4 +59,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_THREAD_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/solaris_x86/vmStructs_solaris_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/solaris_x86/vmStructs_solaris_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP
-#define OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP
+#ifndef OS_CPU_SOLARIS_X86_VMSTRUCTS_SOLARIS_X86_HPP
+#define OS_CPU_SOLARIS_X86_VMSTRUCTS_SOLARIS_X86_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -37,4 +37,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP
+#endif // OS_CPU_SOLARIS_X86_VMSTRUCTS_SOLARIS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/atomic_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/atomic_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_ATOMIC_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_ATOMIC_WINDOWS_X86_HPP
 
 #include "runtime/os.hpp"
 
@@ -218,4 +218,4 @@
 
 #pragma warning(default: 4035) // Enables warnings reporting missing return statement
 
-#endif // OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_ATOMIC_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/bytes_windows_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/bytes_windows_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP
-#define OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP
+#ifndef OS_CPU_WINDOWS_X86_BYTES_WINDOWS_X86_INLINE_HPP
+#define OS_CPU_WINDOWS_X86_BYTES_WINDOWS_X86_INLINE_HPP
 
 #pragma warning(disable: 4035) // Disable warning 4035: no return value
 
@@ -84,4 +84,4 @@
 
 #pragma warning(default: 4035) // Enable warning 4035: no return value
 
-#endif // OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP
+#endif // OS_CPU_WINDOWS_X86_BYTES_WINDOWS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/windows_x86/copy_windows_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/copy_windows_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP
-#define OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP
+#ifndef OS_CPU_WINDOWS_X86_COPY_WINDOWS_X86_INLINE_HPP
+#define OS_CPU_WINDOWS_X86_COPY_WINDOWS_X86_INLINE_HPP
 
 static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
   (void)memmove(to, from, count * HeapWordSize);
@@ -190,4 +190,4 @@
   pd_conjoint_oops_atomic((const oop*)from, (oop*)to, count);
 }
 
-#endif // OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP
+#endif // OS_CPU_WINDOWS_X86_COPY_WINDOWS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/windows_x86/globals_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/globals_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_GLOBALS_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_GLOBALS_WINDOWS_X86_HPP
 
 // Sets the default values for platform dependent flags used by the runtime system.
 // (see globals.hpp)
@@ -48,4 +48,4 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(size_t, HeapBaseMinAddress,     2*G);
 
-#endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_GLOBALS_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/orderAccess_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/orderAccess_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_ORDERACCESS_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_ORDERACCESS_WINDOWS_X86_HPP
 
 // Included in orderAccess.hpp header file.
 
@@ -110,4 +110,4 @@
 };
 #endif // AMD64
 
-#endif // OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_ORDERACCESS_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/os_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/os_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_HPP
 
   //
   // NOTE: we are back in class os here, not win32
@@ -70,4 +70,4 @@
                                         char *buf, int buf_size);
 #endif
 
-#endif // OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/os_windows_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/os_windows_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_INLINE_HPP
-#define OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_INLINE_HPP
+#ifndef OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_INLINE_HPP
+#define OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_INLINE_HPP
 
 #include "runtime/os.hpp"
 
@@ -35,4 +35,4 @@
   return (jlong)res;
 }
 
-#endif // OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_INLINE_HPP
+#endif // OS_CPU_WINDOWS_X86_OS_WINDOWS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/windows_x86/prefetch_windows_x86.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/prefetch_windows_x86.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP
-#define OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP
+#ifndef OS_CPU_WINDOWS_X86_PREFETCH_WINDOWS_X86_INLINE_HPP
+#define OS_CPU_WINDOWS_X86_PREFETCH_WINDOWS_X86_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 
 inline void Prefetch::read (void *loc, intx interval) {}
 inline void Prefetch::write(void *loc, intx interval) {}
 
-#endif // OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP
+#endif // OS_CPU_WINDOWS_X86_PREFETCH_WINDOWS_X86_INLINE_HPP
--- a/src/hotspot/os_cpu/windows_x86/thread_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/thread_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_THREAD_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_THREAD_WINDOWS_X86_HPP
 
  private:
   // On windows, in the stubGenerator, there's nowhere to save callee saved regs
@@ -71,4 +71,4 @@
   static void enable_register_stack_guard() {}
   static void disable_register_stack_guard() {}
 
-#endif // OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_THREAD_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/unwind_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/unwind_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_UNWIND_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_UNWIND_WINDOWS_X86_HPP
 
 
 #ifdef AMD64
@@ -95,4 +95,4 @@
 
 #endif // AMD64
 
-#endif // OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_UNWIND_WINDOWS_X86_HPP
--- a/src/hotspot/os_cpu/windows_x86/vmStructs_windows_x86.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/os_cpu/windows_x86/vmStructs_windows_x86.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP
-#define OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP
+#ifndef OS_CPU_WINDOWS_X86_VMSTRUCTS_WINDOWS_X86_HPP
+#define OS_CPU_WINDOWS_X86_VMSTRUCTS_WINDOWS_X86_HPP
 
 // These are the OS and CPU-specific fields, types and integer
 // constants required by the Serviceability Agent. This file is
@@ -46,4 +46,4 @@
 
 #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant)
 
-#endif // OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP
+#endif // OS_CPU_WINDOWS_X86_VMSTRUCTS_WINDOWS_X86_HPP
--- a/src/hotspot/share/adlc/adlc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/adlc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_ADLC_HPP
-#define SHARE_VM_ADLC_ADLC_HPP
+#ifndef SHARE_ADLC_ADLC_HPP
+#define SHARE_ADLC_ADLC_HPP
 
 //
 // Standard include file for ADLC parser
@@ -108,4 +108,4 @@
 // it everywhere it needs to be available.
 extern ArchDesc* globalAD;
 
-#endif // SHARE_VM_ADLC_ADLC_HPP
+#endif // SHARE_ADLC_ADLC_HPP
--- a/src/hotspot/share/adlc/adlparse.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/adlparse.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_ADLPARSE_HPP
-#define SHARE_VM_ADLC_ADLPARSE_HPP
+#ifndef SHARE_ADLC_ADLPARSE_HPP
+#define SHARE_ADLC_ADLPARSE_HPP
 
 // ADLPARSE.HPP - Definitions for Architecture Description Language Parser
 // Authors: Chris Vick and Mike Paleczny
@@ -289,4 +289,4 @@
   static void trim(char* &token);  // trim leading & trailing spaces
 };
 
-#endif // SHARE_VM_ADLC_ADLPARSE_HPP
+#endif // SHARE_ADLC_ADLPARSE_HPP
--- a/src/hotspot/share/adlc/archDesc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/archDesc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_ARCHDESC_HPP
-#define SHARE_VM_ADLC_ARCHDESC_HPP
+#ifndef SHARE_ADLC_ARCHDESC_HPP
+#define SHARE_ADLC_ARCHDESC_HPP
 
 // Definitions for Error Flags
 #define  WARN   0
@@ -410,4 +410,4 @@
   virtual void record_position(OutputMap::position place, int index) {}
 };
 
-#endif // SHARE_VM_ADLC_ARCHDESC_HPP
+#endif // SHARE_ADLC_ARCHDESC_HPP
--- a/src/hotspot/share/adlc/arena.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/arena.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -34,6 +34,16 @@
   return ptr;
 }
 
+void* ReAllocateHeap(void* old_ptr, size_t size) {
+  unsigned char* ptr = (unsigned char*) realloc(old_ptr, size);
+  if (ptr == NULL && size != 0) {
+    fprintf(stderr, "Error: Out of memory in ADLC\n"); // logging can cause crash!
+    fflush(stderr);
+    exit(1);
+  }
+  return ptr;
+}
+
 void* Chunk::operator new(size_t requested_size, size_t length) throw() {
   return CHeapObj::operator new(requested_size + length);
 }
--- a/src/hotspot/share/adlc/arena.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/arena.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,10 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_ARENA_HPP
-#define SHARE_VM_ADLC_ARENA_HPP
+#ifndef SHARE_ADLC_ARENA_HPP
+#define SHARE_ADLC_ARENA_HPP
 
 void* AllocateHeap(size_t size);
+void* ReAllocateHeap(void* old_ptr, size_t size);
 
 // All classes in adlc may be derived
 // from one of the following allocation classes:
@@ -151,4 +152,4 @@
   void   set_size_in_bytes(size_t size)  { _size_in_bytes = size;   }
 };
 
-#endif // SHARE_VM_ADLC_ARENA_HPP
+#endif // SHARE_ADLC_ARENA_HPP
--- a/src/hotspot/share/adlc/dict2.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/dict2.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_DICT2_HPP
-#define SHARE_VM_ADLC_DICT2_HPP
+#ifndef SHARE_ADLC_DICT2_HPP
+#define SHARE_ADLC_DICT2_HPP
 
 // Dictionaries - An Abstract Data Type
 
@@ -118,4 +118,4 @@
   int test(void) { return _i<_d->_size;} // Test for end of iteration
 };
 
-#endif // SHARE_VM_ADLC_DICT2_HPP
+#endif // SHARE_ADLC_DICT2_HPP
--- a/src/hotspot/share/adlc/filebuff.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/filebuff.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_FILEBUFF_HPP
-#define SHARE_VM_ADLC_FILEBUFF_HPP
+#ifndef SHARE_ADLC_FILEBUFF_HPP
+#define SHARE_ADLC_FILEBUFF_HPP
 
 // FILEBUFF.HPP - Definitions for parser file buffering routines
 
@@ -78,4 +78,4 @@
   // when the pointer is valid (i.e. just obtained from getline()).
   long getoff(const char* s) { return _bufoff + (long)(s - _buf); }
 };
-#endif // SHARE_VM_ADLC_FILEBUFF_HPP
+#endif // SHARE_ADLC_FILEBUFF_HPP
--- a/src/hotspot/share/adlc/forms.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/forms.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -48,7 +48,9 @@
 }
 
 void   NameList::addName(const char *name) {
-  if (_cur == _max) _names =(const char**)realloc(_names,(_max *=2)*sizeof(char*));
+  if (_cur == _max) {
+    _names = (const char**) ReAllocateHeap(_names, (_max *=2)*sizeof(char*));
+  }
   _names[_cur++] = name;
 }
 
--- a/src/hotspot/share/adlc/forms.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/forms.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_FORMS_HPP
-#define SHARE_VM_ADLC_FORMS_HPP
+#ifndef SHARE_ADLC_FORMS_HPP
+#define SHARE_ADLC_FORMS_HPP
 
 // FORMS.HPP - ADL Parser Generic and Utility Forms Classes
 
@@ -596,4 +596,4 @@
   void dump();
 };
 
-#endif // SHARE_VM_ADLC_FORMS_HPP
+#endif // SHARE_ADLC_FORMS_HPP
--- a/src/hotspot/share/adlc/formsopt.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/formsopt.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_FORMSOPT_HPP
-#define SHARE_VM_ADLC_FORMSOPT_HPP
+#ifndef SHARE_ADLC_FORMSOPT_HPP
+#define SHARE_ADLC_FORMSOPT_HPP
 
 // FORMSOPT.HPP - ADL Parser Target Specific Optimization Forms Classes
 
@@ -674,4 +674,4 @@
   void output(FILE *fp);
 };
 
-#endif // SHARE_VM_ADLC_FORMSOPT_HPP
+#endif // SHARE_ADLC_FORMSOPT_HPP
--- a/src/hotspot/share/adlc/formssel.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/adlc/formssel.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ADLC_FORMSSEL_HPP
-#define SHARE_VM_ADLC_FORMSSEL_HPP
+#ifndef SHARE_ADLC_FORMSSEL_HPP
+#define SHARE_ADLC_FORMSSEL_HPP
 
 // FORMSSEL.HPP - ADL Parser Instruction Selection Forms Classes
 
@@ -1093,4 +1093,4 @@
   void output(FILE *fp);
 };
 
-#endif // SHARE_VM_ADLC_FORMSSEL_HPP
+#endif // SHARE_ADLC_FORMSSEL_HPP
--- a/src/hotspot/share/aot/aotCodeHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/aot/aotCodeHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_AOT_AOTCODEHEAP_HPP
-#define SHARE_VM_AOT_AOTCODEHEAP_HPP
+#ifndef SHARE_AOT_AOTCODEHEAP_HPP
+#define SHARE_AOT_AOTCODEHEAP_HPP
 
 #include "aot/aotCompiledMethod.hpp"
 #include "classfile/symbolTable.hpp"
@@ -311,4 +311,4 @@
 
 };
 
-#endif // SHARE_VM_AOT_AOTCODEHEAP_HPP
+#endif // SHARE_AOT_AOTCODEHEAP_HPP
--- a/src/hotspot/share/aot/aotCompiledMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/aot/aotCompiledMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_AOT_AOTCOMPILEDMETHOD_HPP
-#define SHARE_VM_AOT_AOTCOMPILEDMETHOD_HPP
+#ifndef SHARE_AOT_AOTCOMPILEDMETHOD_HPP
+#define SHARE_AOT_AOTCOMPILEDMETHOD_HPP
 
 #include "code/codeCache.hpp"
 #include "code/compiledIC.hpp"
@@ -314,4 +314,4 @@
   }
 };
 
-#endif //SHARE_VM_AOT_AOTCOMPILEDMETHOD_HPP
+#endif // SHARE_AOT_AOTCOMPILEDMETHOD_HPP
--- a/src/hotspot/share/aot/aotLoader.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/aot/aotLoader.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_AOT_AOTLOADER_HPP
-#define SHARE_VM_AOT_AOTLOADER_HPP
+#ifndef SHARE_AOT_AOTLOADER_HPP
+#define SHARE_AOT_AOTLOADER_HPP
 
 #include "runtime/globals_extension.hpp"
 #include "runtime/handles.hpp"
@@ -69,4 +69,4 @@
   static bool reconcile_dynamic_invoke(InstanceKlass* holder, int index, Method* adapter_method, Klass *appendix_klass) NOT_AOT({ return true; });
 };
 
-#endif // SHARE_VM_AOT_AOTLOADER_HPP
+#endif // SHARE_AOT_AOTLOADER_HPP
--- a/src/hotspot/share/aot/aotLoader.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/aot/aotLoader.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_AOT_AOTLOADER_INLLINE_HPP
-#define SHARE_VM_AOT_AOTLOADER_INLLINE_HPP
+#ifndef SHARE_AOT_AOTLOADER_INLINE_HPP
+#define SHARE_AOT_AOTLOADER_INLINE_HPP
 
 #include "aot/aotLoader.hpp"
 #include "utilities/growableArray.hpp"
@@ -36,4 +36,4 @@
 void AOTLoader::add_library(AOTLib *lib) { libraries()->append(lib); }
 #endif
 
-#endif // SHARE_VM_AOT_AOTLOADER_INLLINE_HPP
+#endif // SHARE_AOT_AOTLOADER_INLINE_HPP
--- a/src/hotspot/share/aot/compiledIC_aot.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/aot/compiledIC_aot.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_AOT_COMPILEDIC_AOT_HPP
-#define SHARE_VM_AOT_COMPILEDIC_AOT_HPP
+#ifndef SHARE_AOT_COMPILEDIC_AOT_HPP
+#define SHARE_AOT_COMPILEDIC_AOT_HPP
 
 #include "code/compiledIC.hpp"
 #include "code/nativeInst.hpp"
@@ -80,4 +80,4 @@
   virtual const char* name() const { return "CompiledPltStaticCall"; }
 };
 
-#endif // SHARE_VM_AOT_COMPILEDIC_AOT_HPP
+#endif // SHARE_AOT_COMPILEDIC_AOT_HPP
--- a/src/hotspot/share/asm/assembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/assembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_ASSEMBLER_HPP
-#define SHARE_VM_ASM_ASSEMBLER_HPP
+#ifndef SHARE_ASM_ASSEMBLER_HPP
+#define SHARE_ASM_ASSEMBLER_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "asm/register.hpp"
@@ -458,4 +458,4 @@
 
 #include CPU_HEADER(assembler)
 
-#endif // SHARE_VM_ASM_ASSEMBLER_HPP
+#endif // SHARE_ASM_ASSEMBLER_HPP
--- a/src/hotspot/share/asm/assembler.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/assembler.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,11 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_ASSEMBLER_INLINE_HPP
-#define SHARE_VM_ASM_ASSEMBLER_INLINE_HPP
+#ifndef SHARE_ASM_ASSEMBLER_INLINE_HPP
+#define SHARE_ASM_ASSEMBLER_INLINE_HPP
 
 #include "asm/assembler.hpp"
 
 #include CPU_HEADER_INLINE(assembler)
 
-#endif // SHARE_VM_ASM_ASSEMBLER_INLINE_HPP
+#endif // SHARE_ASM_ASSEMBLER_INLINE_HPP
--- a/src/hotspot/share/asm/codeBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/codeBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_CODEBUFFER_HPP
-#define SHARE_VM_ASM_CODEBUFFER_HPP
+#ifndef SHARE_ASM_CODEBUFFER_HPP
+#define SHARE_ASM_CODEBUFFER_HPP
 
 #include "code/oopRecorder.hpp"
 #include "code/relocInfo.hpp"
@@ -670,4 +670,4 @@
   return false;
 }
 
-#endif // SHARE_VM_ASM_CODEBUFFER_HPP
+#endif // SHARE_ASM_CODEBUFFER_HPP
--- a/src/hotspot/share/asm/macroAssembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/macroAssembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_MACROASSEMBLER_HPP
-#define SHARE_VM_ASM_MACROASSEMBLER_HPP
+#ifndef SHARE_ASM_MACROASSEMBLER_HPP
+#define SHARE_ASM_MACROASSEMBLER_HPP
 
 #include "asm/assembler.hpp"
 #include "utilities/macros.hpp"
 
 #include CPU_HEADER(macroAssembler)
 
-#endif // SHARE_VM_ASM_MACROASSEMBLER_HPP
+#endif // SHARE_ASM_MACROASSEMBLER_HPP
--- a/src/hotspot/share/asm/macroAssembler.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/macroAssembler.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,10 +22,10 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_MACROASSEMBLER_INLINE_HPP
-#define SHARE_VM_ASM_MACROASSEMBLER_INLINE_HPP
+#ifndef SHARE_ASM_MACROASSEMBLER_INLINE_HPP
+#define SHARE_ASM_MACROASSEMBLER_INLINE_HPP
 
 #include "asm/macroAssembler.hpp"
 #include CPU_HEADER_INLINE(macroAssembler)
 
-#endif // SHARE_VM_ASM_MACROASSEMBLER_INLINE_HPP
+#endif // SHARE_ASM_MACROASSEMBLER_INLINE_HPP
--- a/src/hotspot/share/asm/register.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/asm/register.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ASM_REGISTER_HPP
-#define SHARE_VM_ASM_REGISTER_HPP
+#ifndef SHARE_ASM_REGISTER_HPP
+#define SHARE_ASM_REGISTER_HPP
 
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -358,4 +358,4 @@
   );
 }
 
-#endif // SHARE_VM_ASM_REGISTER_HPP
+#endif // SHARE_ASM_REGISTER_HPP
--- a/src/hotspot/share/c1/c1_CFGPrinter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_CFGPrinter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_CFGPRINTER_HPP
-#define SHARE_VM_C1_C1_CFGPRINTER_HPP
+#ifndef SHARE_C1_C1_CFGPRINTER_HPP
+#define SHARE_C1_C1_CFGPRINTER_HPP
 
 #include "c1/c1_Compilation.hpp"
 #include "c1/c1_Instruction.hpp"
@@ -88,4 +88,4 @@
 
 #endif
 
-#endif // SHARE_VM_C1_C1_CFGPRINTER_HPP
+#endif // SHARE_C1_C1_CFGPRINTER_HPP
--- a/src/hotspot/share/c1/c1_Canonicalizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Canonicalizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_CANONICALIZER_HPP
-#define SHARE_VM_C1_C1_CANONICALIZER_HPP
+#ifndef SHARE_C1_C1_CANONICALIZER_HPP
+#define SHARE_C1_C1_CANONICALIZER_HPP
 
 #include "c1/c1_Instruction.hpp"
 
@@ -116,4 +116,4 @@
 #endif
 };
 
-#endif // SHARE_VM_C1_C1_CANONICALIZER_HPP
+#endif // SHARE_C1_C1_CANONICALIZER_HPP
--- a/src/hotspot/share/c1/c1_CodeStubs.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_CodeStubs.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_CODESTUBS_HPP
-#define SHARE_VM_C1_C1_CODESTUBS_HPP
+#ifndef SHARE_C1_C1_CODESTUBS_HPP
+#define SHARE_C1_C1_CODESTUBS_HPP
 
 #include "c1/c1_FrameMap.hpp"
 #include "c1/c1_IR.hpp"
@@ -536,4 +536,4 @@
 #endif // PRODUCT
 };
 
-#endif // SHARE_VM_C1_C1_CODESTUBS_HPP
+#endif // SHARE_C1_C1_CODESTUBS_HPP
--- a/src/hotspot/share/c1/c1_Compilation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Compilation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_COMPILATION_HPP
-#define SHARE_VM_C1_C1_COMPILATION_HPP
+#ifndef SHARE_C1_C1_COMPILATION_HPP
+#define SHARE_C1_C1_COMPILATION_HPP
 
 #include "ci/ciEnv.hpp"
 #include "ci/ciMethodData.hpp"
@@ -347,4 +347,4 @@
   XHandlers* exception_handlers()                { return _exception_handlers; }
 };
 
-#endif // SHARE_VM_C1_C1_COMPILATION_HPP
+#endif // SHARE_C1_C1_COMPILATION_HPP
--- a/src/hotspot/share/c1/c1_Compiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Compiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_COMPILER_HPP
-#define SHARE_VM_C1_C1_COMPILER_HPP
+#ifndef SHARE_C1_C1_COMPILER_HPP
+#define SHARE_C1_C1_COMPILER_HPP
 
 #include "compiler/abstractCompiler.hpp"
 #include "compiler/compilerDirectives.hpp"
@@ -63,4 +63,4 @@
   static int code_buffer_size();
 };
 
-#endif // SHARE_VM_C1_C1_COMPILER_HPP
+#endif // SHARE_C1_C1_COMPILER_HPP
--- a/src/hotspot/share/c1/c1_Decorators.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Decorators.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_DECORATORS_HPP
-#define SHARE_VM_C1_C1_DECORATORS_HPP
+#ifndef SHARE_C1_C1_DECORATORS_HPP
+#define SHARE_C1_C1_DECORATORS_HPP
 
 #include "oops/accessDecorators.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -35,4 +35,4 @@
 // needs to be masked.
 const DecoratorSet C1_MASK_BOOLEAN   = DECORATOR_LAST << 2;
 
-#endif // SHARE_VM_C1_C1_DECORATORS_HPP
+#endif // SHARE_C1_C1_DECORATORS_HPP
--- a/src/hotspot/share/c1/c1_Defs.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Defs.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_DEFS_HPP
-#define SHARE_VM_C1_C1_DEFS_HPP
+#ifndef SHARE_C1_C1_DEFS_HPP
+#define SHARE_C1_C1_DEFS_HPP
 
 #include "asm/register.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -56,4 +56,4 @@
   float_saved_as_double = pd_float_saved_as_double
 };
 
-#endif // SHARE_VM_C1_C1_DEFS_HPP
+#endif // SHARE_C1_C1_DEFS_HPP
--- a/src/hotspot/share/c1/c1_FpuStackSim.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_FpuStackSim.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_FPUSTACKSIM_HPP
-#define SHARE_VM_C1_C1_FPUSTACKSIM_HPP
+#ifndef SHARE_C1_C1_FPUSTACKSIM_HPP
+#define SHARE_C1_C1_FPUSTACKSIM_HPP
 
 #include "c1/c1_FrameMap.hpp"
 #include "utilities/macros.hpp"
@@ -34,4 +34,4 @@
 
 #include CPU_HEADER(c1_FpuStackSim)
 
-#endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP
+#endif // SHARE_C1_C1_FPUSTACKSIM_HPP
--- a/src/hotspot/share/c1/c1_FrameMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_FrameMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_FRAMEMAP_HPP
-#define SHARE_VM_C1_C1_FRAMEMAP_HPP
+#ifndef SHARE_C1_C1_FRAMEMAP_HPP
+#define SHARE_C1_C1_FRAMEMAP_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "c1/c1_Defs.hpp"
@@ -280,4 +280,4 @@
 #endif // PRODUCT
 };
 
-#endif // SHARE_VM_C1_C1_FRAMEMAP_HPP
+#endif // SHARE_C1_C1_FRAMEMAP_HPP
--- a/src/hotspot/share/c1/c1_GraphBuilder.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_GraphBuilder.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_GRAPHBUILDER_HPP
-#define SHARE_VM_C1_C1_GRAPHBUILDER_HPP
+#ifndef SHARE_C1_C1_GRAPHBUILDER_HPP
+#define SHARE_C1_C1_GRAPHBUILDER_HPP
 
 #include "c1/c1_IR.hpp"
 #include "c1/c1_Instruction.hpp"
@@ -424,4 +424,4 @@
   BlockBegin* start() const                      { return _start; }
 };
 
-#endif // SHARE_VM_C1_C1_GRAPHBUILDER_HPP
+#endif // SHARE_C1_C1_GRAPHBUILDER_HPP
--- a/src/hotspot/share/c1/c1_IR.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_IR.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_IR_HPP
-#define SHARE_VM_C1_C1_IR_HPP
+#ifndef SHARE_C1_C1_IR_HPP
+#define SHARE_C1_C1_IR_HPP
 
 #include "c1/c1_Instruction.hpp"
 #include "ci/ciExceptionHandler.hpp"
@@ -356,4 +356,4 @@
   virtual void block_do(BlockBegin* block);
 };
 
-#endif // SHARE_VM_C1_C1_IR_HPP
+#endif // SHARE_C1_C1_IR_HPP
--- a/src/hotspot/share/c1/c1_Instruction.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Instruction.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_INSTRUCTION_HPP
-#define SHARE_VM_C1_C1_INSTRUCTION_HPP
+#ifndef SHARE_C1_C1_INSTRUCTION_HPP
+#define SHARE_C1_C1_INSTRUCTION_HPP
 
 #include "c1/c1_Compilation.hpp"
 #include "c1/c1_LIR.hpp"
@@ -2632,4 +2632,4 @@
 
 #undef ASSERT_VALUES
 
-#endif // SHARE_VM_C1_C1_INSTRUCTION_HPP
+#endif // SHARE_C1_C1_INSTRUCTION_HPP
--- a/src/hotspot/share/c1/c1_InstructionPrinter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_InstructionPrinter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP
-#define SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP
+#ifndef SHARE_C1_C1_INSTRUCTIONPRINTER_HPP
+#define SHARE_C1_C1_INSTRUCTIONPRINTER_HPP
 
 #include "c1/c1_IR.hpp"
 #include "c1/c1_Instruction.hpp"
@@ -141,4 +141,4 @@
 };
 #endif // PRODUCT
 
-#endif // SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP
+#endif // SHARE_C1_C1_INSTRUCTIONPRINTER_HPP
--- a/src/hotspot/share/c1/c1_LIR.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_LIR.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_LIR_HPP
-#define SHARE_VM_C1_C1_LIR_HPP
+#ifndef SHARE_C1_C1_LIR_HPP
+#define SHARE_C1_C1_LIR_HPP
 
 #include "c1/c1_Defs.hpp"
 #include "c1/c1_ValueType.hpp"
@@ -949,7 +949,6 @@
       , lir_ushr
       , lir_alloc_array
       , lir_throw
-      , lir_compare_to
       , lir_xadd
       , lir_xchg
   , end_op2
@@ -2129,10 +2128,6 @@
     append(new LIR_Op1(lir_unwind, exceptionOop));
   }
 
-  void compare_to (LIR_Opr left, LIR_Opr right, LIR_Opr dst) {
-    append(new LIR_Op2(lir_compare_to,  left, right, dst));
-  }
-
   void push(LIR_Opr opr)                                   { append(new LIR_Op1(lir_push, opr)); }
   void pop(LIR_Opr reg)                                    { append(new LIR_Op1(lir_pop,  reg)); }
 
@@ -2469,4 +2464,4 @@
 
 inline LIR_Opr LIR_OprDesc::illegalOpr()   { return LIR_OprFact::illegalOpr; };
 
-#endif // SHARE_VM_C1_C1_LIR_HPP
+#endif // SHARE_C1_C1_LIR_HPP
--- a/src/hotspot/share/c1/c1_LIRAssembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_LIRAssembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_LIRASSEMBLER_HPP
-#define SHARE_VM_C1_C1_LIRASSEMBLER_HPP
+#ifndef SHARE_C1_C1_LIRASSEMBLER_HPP
+#define SHARE_C1_C1_LIRASSEMBLER_HPP
 
 #include "c1/c1_CodeStubs.hpp"
 #include "ci/ciMethodData.hpp"
@@ -279,4 +279,4 @@
   }
 };
 
-#endif // SHARE_VM_C1_C1_LIRASSEMBLER_HPP
+#endif // SHARE_C1_C1_LIRASSEMBLER_HPP
--- a/src/hotspot/share/c1/c1_LIRGenerator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_LIRGenerator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_LIRGENERATOR_HPP
-#define SHARE_VM_C1_C1_LIRGENERATOR_HPP
+#ifndef SHARE_C1_C1_LIRGENERATOR_HPP
+#define SHARE_C1_C1_LIRGENERATOR_HPP
 
 #include "c1/c1_Decorators.hpp"
 #include "c1/c1_Instruction.hpp"
@@ -686,4 +686,4 @@
   jint      get_address_constant() const;
 };
 
-#endif // SHARE_VM_C1_C1_LIRGENERATOR_HPP
+#endif // SHARE_C1_C1_LIRGENERATOR_HPP
--- a/src/hotspot/share/c1/c1_LinearScan.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_LinearScan.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_LINEARSCAN_HPP
-#define SHARE_VM_C1_C1_LINEARSCAN_HPP
+#ifndef SHARE_C1_C1_LINEARSCAN_HPP
+#define SHARE_C1_C1_LINEARSCAN_HPP
 
 #include "c1/c1_FpuStackSim.hpp"
 #include "c1/c1_FrameMap.hpp"
@@ -964,4 +964,4 @@
 // Pick up platform-dependent implementation details
 #include CPU_HEADER(c1_LinearScan)
 
-#endif // SHARE_VM_C1_C1_LINEARSCAN_HPP
+#endif // SHARE_C1_C1_LINEARSCAN_HPP
--- a/src/hotspot/share/c1/c1_MacroAssembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_MacroAssembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_MACROASSEMBLER_HPP
-#define SHARE_VM_C1_C1_MACROASSEMBLER_HPP
+#ifndef SHARE_C1_C1_MACROASSEMBLER_HPP
+#define SHARE_C1_C1_MACROASSEMBLER_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "utilities/macros.hpp"
@@ -93,4 +93,4 @@
   void epilogue();
 };
 
-#endif // SHARE_VM_C1_C1_MACROASSEMBLER_HPP
+#endif // SHARE_C1_C1_MACROASSEMBLER_HPP
--- a/src/hotspot/share/c1/c1_Optimizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Optimizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_OPTIMIZER_HPP
-#define SHARE_VM_C1_C1_OPTIMIZER_HPP
+#ifndef SHARE_C1_C1_OPTIMIZER_HPP
+#define SHARE_C1_C1_OPTIMIZER_HPP
 
 #include "c1/c1_IR.hpp"
 #include "c1/c1_Instruction.hpp"
@@ -42,4 +42,4 @@
   void eliminate_null_checks();
 };
 
-#endif // SHARE_VM_C1_C1_OPTIMIZER_HPP
+#endif // SHARE_C1_C1_OPTIMIZER_HPP
--- a/src/hotspot/share/c1/c1_RangeCheckElimination.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_RangeCheckElimination.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_RANGECHECKELIMINATION_HPP
-#define SHARE_VM_C1_C1_RANGECHECKELIMINATION_HPP
+#ifndef SHARE_C1_C1_RANGECHECKELIMINATION_HPP
+#define SHARE_C1_C1_RANGECHECKELIMINATION_HPP
 
 #include "c1/c1_Instruction.hpp"
 
@@ -240,4 +240,4 @@
   static void print_statistics();
 };
 
-#endif // SHARE_VM_C1_C1_RANGECHECKELIMINATION_HPP
+#endif // SHARE_C1_C1_RANGECHECKELIMINATION_HPP
--- a/src/hotspot/share/c1/c1_Runtime1.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_Runtime1.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_RUNTIME1_HPP
-#define SHARE_VM_C1_C1_RUNTIME1_HPP
+#ifndef SHARE_C1_C1_RUNTIME1_HPP
+#define SHARE_C1_C1_RUNTIME1_HPP
 
 #include "c1/c1_FrameMap.hpp"
 #include "code/stubs.hpp"
@@ -199,4 +199,4 @@
   static void print_statistics()                 PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_C1_C1_RUNTIME1_HPP
+#endif // SHARE_C1_C1_RUNTIME1_HPP
--- a/src/hotspot/share/c1/c1_ValueMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_ValueMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_VALUEMAP_HPP
-#define SHARE_VM_C1_C1_VALUEMAP_HPP
+#ifndef SHARE_C1_C1_VALUEMAP_HPP
+#define SHARE_C1_C1_VALUEMAP_HPP
 
 #include "c1/c1_Instruction.hpp"
 #include "c1/c1_ValueSet.hpp"
@@ -257,4 +257,4 @@
   void          substitute(Instruction* instr);  // substitute instruction if it is contained in current value map
 };
 
-#endif // SHARE_VM_C1_C1_VALUEMAP_HPP
+#endif // SHARE_C1_C1_VALUEMAP_HPP
--- a/src/hotspot/share/c1/c1_ValueSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_ValueSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_VALUESET_HPP
-#define SHARE_VM_C1_C1_VALUESET_HPP
+#ifndef SHARE_C1_C1_VALUESET_HPP
+#define SHARE_C1_C1_VALUESET_HPP
 
 #include "c1/c1_Instruction.hpp"
 #include "memory/allocation.hpp"
@@ -52,4 +52,4 @@
   bool equals  (ValueSet* other);
 };
 
-#endif // SHARE_VM_C1_C1_VALUESET_HPP
+#endif // SHARE_C1_C1_VALUESET_HPP
--- a/src/hotspot/share/c1/c1_ValueSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_ValueSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_VALUESET_INLINE_HPP
-#define SHARE_VM_C1_C1_VALUESET_INLINE_HPP
+#ifndef SHARE_C1_C1_VALUESET_INLINE_HPP
+#define SHARE_C1_C1_VALUESET_INLINE_HPP
 
 #include "c1/c1_Instruction.hpp"
 #include "c1/c1_ValueSet.hpp"
@@ -70,4 +70,4 @@
   return _map.is_same(other->_map);
 }
 
-#endif // SHARE_VM_C1_C1_VALUESET_INLINE_HPP
+#endif // SHARE_C1_C1_VALUESET_INLINE_HPP
--- a/src/hotspot/share/c1/c1_ValueStack.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_ValueStack.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_VALUESTACK_HPP
-#define SHARE_VM_C1_C1_VALUESTACK_HPP
+#ifndef SHARE_C1_C1_VALUESTACK_HPP
+#define SHARE_C1_C1_VALUESTACK_HPP
 
 #include "c1/c1_Instruction.hpp"
 
@@ -331,4 +331,4 @@
   }                                                                                            \
 }
 
-#endif // SHARE_VM_C1_C1_VALUESTACK_HPP
+#endif // SHARE_C1_C1_VALUESTACK_HPP
--- a/src/hotspot/share/c1/c1_ValueType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_ValueType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_VALUETYPE_HPP
-#define SHARE_VM_C1_C1_VALUETYPE_HPP
+#ifndef SHARE_C1_C1_VALUETYPE_HPP
+#define SHARE_C1_C1_VALUETYPE_HPP
 
 #include "c1/c1_Compilation.hpp"
 #include "ci/ciConstant.hpp"
@@ -515,4 +515,4 @@
 
 inline ValueType* as_ValueType(ciType* type) { return as_ValueType(type->basic_type()); }
 
-#endif // SHARE_VM_C1_C1_VALUETYPE_HPP
+#endif // SHARE_C1_C1_VALUETYPE_HPP
--- a/src/hotspot/share/c1/c1_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/c1/c1_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_C1_C1_GLOBALS_HPP
-#define SHARE_VM_C1_C1_GLOBALS_HPP
+#ifndef SHARE_C1_C1_GLOBALS_HPP
+#define SHARE_C1_C1_GLOBALS_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/macros.hpp"
@@ -337,4 +337,4 @@
          IGNORE_CONSTRAINT, \
          IGNORE_WRITEABLE)
 
-#endif // SHARE_VM_C1_C1_GLOBALS_HPP
+#endif // SHARE_C1_C1_GLOBALS_HPP
--- a/src/hotspot/share/ci/bcEscapeAnalyzer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/bcEscapeAnalyzer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_BCESCAPEANALYZER_HPP
-#define SHARE_VM_CI_BCESCAPEANALYZER_HPP
+#ifndef SHARE_CI_BCESCAPEANALYZER_HPP
+#define SHARE_CI_BCESCAPEANALYZER_HPP
 
 #ifdef COMPILER2
 #include "ci/ciObject.hpp"
@@ -162,4 +162,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CI_BCESCAPEANALYZER_HPP
+#endif // SHARE_CI_BCESCAPEANALYZER_HPP
--- a/src/hotspot/share/ci/ciArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIARRAY_HPP
-#define SHARE_VM_CI_CIARRAY_HPP
+#ifndef SHARE_CI_CIARRAY_HPP
+#define SHARE_CI_CIARRAY_HPP
 
 #include "ci/ciArrayKlass.hpp"
 #include "ci/ciConstant.hpp"
@@ -76,4 +76,4 @@
   bool is_java_object()  { return true; }
 };
 
-#endif // SHARE_VM_CI_CIARRAY_HPP
+#endif // SHARE_CI_CIARRAY_HPP
--- a/src/hotspot/share/ci/ciArrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciArrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIARRAYKLASS_HPP
-#define SHARE_VM_CI_CIARRAYKLASS_HPP
+#ifndef SHARE_CI_CIARRAYKLASS_HPP
+#define SHARE_CI_CIARRAYKLASS_HPP
 
 #include "ci/ciKlass.hpp"
 
@@ -59,4 +59,4 @@
   static ciArrayKlass* make(ciType* element_type);
 };
 
-#endif // SHARE_VM_CI_CIARRAYKLASS_HPP
+#endif // SHARE_CI_CIARRAYKLASS_HPP
--- a/src/hotspot/share/ci/ciBaseObject.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciBaseObject.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIBASEOBJECT_HPP
-#define SHARE_VM_CI_CIBASEOBJECT_HPP
+#ifndef SHARE_CI_CIBASEOBJECT_HPP
+#define SHARE_CI_CIBASEOBJECT_HPP
 
 #include "ci/ciClassList.hpp"
 #include "memory/allocation.hpp"
@@ -87,4 +87,4 @@
     return (ciMetadata*)this;
   }
 };
-#endif // SHARE_VM_CI_CIBASEOBJECT_HPP
+#endif // SHARE_CI_CIBASEOBJECT_HPP
--- a/src/hotspot/share/ci/ciCallProfile.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciCallProfile.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CICALLPROFILE_HPP
-#define SHARE_VM_CI_CICALLPROFILE_HPP
+#ifndef SHARE_CI_CICALLPROFILE_HPP
+#define SHARE_CI_CICALLPROFILE_HPP
 
 #include "ci/ciClassList.hpp"
 #include "memory/allocation.hpp"
@@ -92,4 +92,4 @@
   }
 };
 
-#endif // SHARE_VM_CI_CICALLPROFILE_HPP
+#endif // SHARE_CI_CICALLPROFILE_HPP
--- a/src/hotspot/share/ci/ciCallSite.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciCallSite.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CICALLSITE_HPP
-#define SHARE_VM_CI_CICALLSITE_HPP
+#ifndef SHARE_CI_CICALLSITE_HPP
+#define SHARE_CI_CICALLSITE_HPP
 
 #include "ci/ciInstance.hpp"
 
@@ -47,4 +47,4 @@
   void print();
 };
 
-#endif // SHARE_VM_CI_CICALLSITE_HPP
+#endif // SHARE_CI_CICALLSITE_HPP
--- a/src/hotspot/share/ci/ciClassList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciClassList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CICLASSLIST_HPP
-#define SHARE_VM_CI_CICLASSLIST_HPP
+#ifndef SHARE_CI_CICLASSLIST_HPP
+#define SHARE_CI_CICLASSLIST_HPP
 
 class ciEnv;
 class ciObjectFactory;
@@ -118,4 +118,4 @@
 friend class ciObjArrayKlass;          \
 friend class ciTypeArrayKlass;         \
 
-#endif // SHARE_VM_CI_CICLASSLIST_HPP
+#endif // SHARE_CI_CICLASSLIST_HPP
--- a/src/hotspot/share/ci/ciConstant.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciConstant.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CICONSTANT_HPP
-#define SHARE_VM_CI_CICONSTANT_HPP
+#ifndef SHARE_CI_CICONSTANT_HPP
+#define SHARE_CI_CICONSTANT_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciNullObject.hpp"
@@ -131,4 +131,4 @@
   void print();
 };
 
-#endif // SHARE_VM_CI_CICONSTANT_HPP
+#endif // SHARE_CI_CICONSTANT_HPP
--- a/src/hotspot/share/ci/ciConstantPoolCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciConstantPoolCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP
-#define SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP
+#ifndef SHARE_CI_CICONSTANTPOOLCACHE_HPP
+#define SHARE_CI_CICONSTANTPOOLCACHE_HPP
 
 #include "memory/resourceArea.hpp"
 #include "utilities/growableArray.hpp"
@@ -52,4 +52,4 @@
   void print();
 };
 
-#endif // SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP
+#endif // SHARE_CI_CICONSTANTPOOLCACHE_HPP
--- a/src/hotspot/share/ci/ciEnv.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciEnv.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -233,10 +233,6 @@
   _jvmti_can_pop_frame                  = JvmtiExport::can_pop_frame();
 }
 
-bool ciEnv::should_retain_local_variables() const {
-  return _jvmti_can_access_local_variables || _jvmti_can_pop_frame;
-}
-
 bool ciEnv::jvmti_state_changed() const {
   if (!_jvmti_can_access_local_variables &&
       JvmtiExport::can_access_local_variables()) {
--- a/src/hotspot/share/ci/ciEnv.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciEnv.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIENV_HPP
-#define SHARE_VM_CI_CIENV_HPP
+#ifndef SHARE_CI_CIENV_HPP
+#define SHARE_CI_CIENV_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciObjectFactory.hpp"
@@ -46,6 +46,7 @@
 
   friend class CompileBroker;
   friend class Dependencies;  // for get_object, during logging
+  friend class PrepareExtraDataClosure;
 
 private:
   Arena*           _arena;       // Alias for _ciEnv_arena except in init_shared_objects()
@@ -188,6 +189,10 @@
     }
   }
 
+  ciMetadata* cached_metadata(Metadata* o) {
+    return _factory->cached_metadata(o);
+  }
+
   ciInstance* get_instance(oop o) {
     if (o == NULL) return NULL;
     return get_object(o)->as_instance();
@@ -338,7 +343,9 @@
   // Cache Jvmti state
   void  cache_jvmti_state();
   bool  jvmti_state_changed() const;
-  bool  should_retain_local_variables() const;
+  bool  should_retain_local_variables() const {
+    return _jvmti_can_access_local_variables || _jvmti_can_pop_frame;
+  }
   bool  jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint; }
   bool  jvmti_can_post_on_exceptions()         const { return _jvmti_can_post_on_exceptions; }
 
@@ -466,4 +473,4 @@
   void dump_compile_data(outputStream* out);
 };
 
-#endif // SHARE_VM_CI_CIENV_HPP
+#endif // SHARE_CI_CIENV_HPP
--- a/src/hotspot/share/ci/ciExceptionHandler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciExceptionHandler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP
-#define SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP
+#ifndef SHARE_CI_CIEXCEPTIONHANDLER_HPP
+#define SHARE_CI_CIEXCEPTIONHANDLER_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciInstanceKlass.hpp"
@@ -80,4 +80,4 @@
   void      print();
 };
 
-#endif // SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP
+#endif // SHARE_CI_CIEXCEPTIONHANDLER_HPP
--- a/src/hotspot/share/ci/ciField.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciField.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIFIELD_HPP
-#define SHARE_VM_CI_CIFIELD_HPP
+#ifndef SHARE_CI_CIFIELD_HPP
+#define SHARE_CI_CIFIELD_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciConstant.hpp"
@@ -201,4 +201,4 @@
   void print_name_on(outputStream* st);
 };
 
-#endif // SHARE_VM_CI_CIFIELD_HPP
+#endif // SHARE_CI_CIFIELD_HPP
--- a/src/hotspot/share/ci/ciFlags.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciFlags.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIFLAGS_HPP
-#define SHARE_VM_CI_CIFLAGS_HPP
+#ifndef SHARE_CI_CIFLAGS_HPP
+#define SHARE_CI_CIFLAGS_HPP
 
 #include "jvm.h"
 #include "ci/ciClassList.hpp"
@@ -74,4 +74,4 @@
   void print(outputStream* st = tty);
 };
 
-#endif // SHARE_VM_CI_CIFLAGS_HPP
+#endif // SHARE_CI_CIFLAGS_HPP
--- a/src/hotspot/share/ci/ciInstance.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciInstance.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIINSTANCE_HPP
-#define SHARE_VM_CI_CIINSTANCE_HPP
+#ifndef SHARE_CI_CIINSTANCE_HPP
+#define SHARE_CI_CIINSTANCE_HPP
 
 #include "ci/ciObject.hpp"
 #include "oops/instanceOop.hpp"
@@ -72,4 +72,4 @@
   ciKlass* java_lang_Class_klass();
 };
 
-#endif // SHARE_VM_CI_CIINSTANCE_HPP
+#endif // SHARE_CI_CIINSTANCE_HPP
--- a/src/hotspot/share/ci/ciInstanceKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciInstanceKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIINSTANCEKLASS_HPP
-#define SHARE_VM_CI_CIINSTANCEKLASS_HPP
+#ifndef SHARE_CI_CIINSTANCEKLASS_HPP
+#define SHARE_CI_CIINSTANCEKLASS_HPP
 
 #include "ci/ciConstantPoolCache.hpp"
 #include "ci/ciFlags.hpp"
@@ -281,4 +281,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CI_CIINSTANCEKLASS_HPP
+#endif // SHARE_CI_CIINSTANCEKLASS_HPP
--- a/src/hotspot/share/ci/ciKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIKLASS_HPP
-#define SHARE_VM_CI_CIKLASS_HPP
+#ifndef SHARE_CI_CIKLASS_HPP
+#define SHARE_CI_CIKLASS_HPP
 
 #include "ci/ciType.hpp"
 #include "oops/klass.hpp"
@@ -131,4 +131,4 @@
   const char* external_name() const;
 };
 
-#endif // SHARE_VM_CI_CIKLASS_HPP
+#endif // SHARE_CI_CIKLASS_HPP
--- a/src/hotspot/share/ci/ciMemberName.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMemberName.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMEMBERNAME_HPP
-#define SHARE_VM_CI_CIMEMBERNAME_HPP
+#ifndef SHARE_CI_CIMEMBERNAME_HPP
+#define SHARE_CI_CIMEMBERNAME_HPP
 
 #include "ci/ciCallProfile.hpp"
 #include "ci/ciInstance.hpp"
@@ -41,4 +41,4 @@
   ciMethod* get_vmtarget() const;
 };
 
-#endif // SHARE_VM_CI_CIMEMBERNAME_HPP
+#endif // SHARE_CI_CIMEMBERNAME_HPP
--- a/src/hotspot/share/ci/ciMetadata.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMetadata.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETADATA_HPP
-#define SHARE_VM_CI_CIMETADATA_HPP
+#ifndef SHARE_CI_CIMETADATA_HPP
+#define SHARE_CI_CIMETADATA_HPP
 
 #include "ci/ciBaseObject.hpp"
 #include "ci/ciClassList.hpp"
@@ -117,4 +117,4 @@
   void print_metadata(outputStream* st = tty);
 
 };
-#endif // SHARE_VM_CI_CIMETADATA_HPP
+#endif // SHARE_CI_CIMETADATA_HPP
--- a/src/hotspot/share/ci/ciMethod.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethod.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -402,12 +402,14 @@
 // will return true for all locals in some cases to improve debug
 // information.
 MethodLivenessResult ciMethod::liveness_at_bci(int bci) {
-  MethodLivenessResult result = raw_liveness_at_bci(bci);
   if (CURRENT_ENV->should_retain_local_variables() || DeoptimizeALot) {
     // Keep all locals live for the user's edification and amusement.
-    result.at_put_range(0, result.size(), true);
+    MethodLivenessResult result(_max_locals);
+    result.set_range(0, _max_locals);
+    result.set_is_valid();
+    return result;
   }
-  return result;
+  return raw_liveness_at_bci(bci);
 }
 
 // ciMethod::live_local_oops_at_bci
--- a/src/hotspot/share/ci/ciMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETHOD_HPP
-#define SHARE_VM_CI_CIMETHOD_HPP
+#ifndef SHARE_CI_CIMETHOD_HPP
+#define SHARE_CI_CIMETHOD_HPP
 
 #include "ci/ciFlags.hpp"
 #include "ci/ciInstanceKlass.hpp"
@@ -363,4 +363,4 @@
   static bool is_consistent_info(ciMethod* declared_method, ciMethod* resolved_method);
 };
 
-#endif // SHARE_VM_CI_CIMETHOD_HPP
+#endif // SHARE_CI_CIMETHOD_HPP
--- a/src/hotspot/share/ci/ciMethodBlocks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethodBlocks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETHODBLOCKS_HPP
-#define SHARE_VM_CI_CIMETHODBLOCKS_HPP
+#ifndef SHARE_CI_CIMETHODBLOCKS_HPP
+#define SHARE_CI_CIMETHODBLOCKS_HPP
 
 #include "ci/ciMethod.hpp"
 #include "memory/resourceArea.hpp"
@@ -129,4 +129,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CI_CIMETHODBLOCKS_HPP
+#endif // SHARE_CI_CIMETHODBLOCKS_HPP
--- a/src/hotspot/share/ci/ciMethodData.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethodData.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -78,10 +78,81 @@
   _parameters = NULL;
 }
 
+// Check for entries that reference an unloaded method
+class PrepareExtraDataClosure : public CleanExtraDataClosure {
+  MethodData*            _mdo;
+  uint64_t               _safepoint_counter;
+  GrowableArray<Method*> _uncached_methods;
+
+public:
+  PrepareExtraDataClosure(MethodData* mdo)
+    : _mdo(mdo),
+      _safepoint_counter(SafepointSynchronize::safepoint_counter()),
+      _uncached_methods()
+  { }
+
+  bool is_live(Method* m) {
+    if (!m->method_holder()->is_loader_alive()) {
+      return false;
+    }
+    if (CURRENT_ENV->cached_metadata(m) == NULL) {
+      // Uncached entries need to be pre-populated.
+      _uncached_methods.append(m);
+    }
+    return true;
+  }
+
+  bool has_safepointed() {
+    return SafepointSynchronize::safepoint_counter() != _safepoint_counter;
+  }
+
+  bool finish() {
+    if (_uncached_methods.length() == 0) {
+      // Preparation finished iff all Methods* were already cached.
+      return true;
+    }
+    // Holding locks through safepoints is bad practice.
+    MutexUnlocker mu(_mdo->extra_data_lock());
+    for (int i = 0; i < _uncached_methods.length(); ++i) {
+      if (has_safepointed()) {
+        // The metadata in the growable array might contain stale
+        // entries after a safepoint.
+        return false;
+      }
+      Method* method = _uncached_methods.at(i);
+      // Populating ciEnv caches may cause safepoints due
+      // to taking the Compile_lock with safepoint checks.
+      (void)CURRENT_ENV->get_method(method);
+    }
+    return false;
+  }
+};
+
+void ciMethodData::prepare_metadata() {
+  MethodData* mdo = get_MethodData();
+
+  for (;;) {
+    ResourceMark rm;
+    PrepareExtraDataClosure cl(mdo);
+    mdo->clean_extra_data(&cl);
+    if (cl.finish()) {
+      // When encountering uncached metadata, the Compile_lock might be
+      // acquired when creating ciMetadata handles, causing safepoints
+      // which requires a new round of preparation to clean out potentially
+      // new unloading metadata.
+      return;
+    }
+  }
+}
+
 void ciMethodData::load_extra_data() {
   MethodData* mdo = get_MethodData();
-
   MutexLocker ml(mdo->extra_data_lock());
+  // Deferred metadata cleaning due to concurrent class unloading.
+  prepare_metadata();
+  // After metadata preparation, there is no stale metadata,
+  // and no safepoints can introduce more stale metadata.
+  NoSafepointVerifier no_safepoint;
 
   // speculative trap entries also hold a pointer to a Method so need to be translated
   DataLayout* dp_src  = mdo->extra_data_base();
@@ -94,22 +165,21 @@
     // New traps in the MDO may have been added since we copied the
     // data (concurrent deoptimizations before we acquired
     // extra_data_lock above) or can be removed (a safepoint may occur
-    // in the translate_from call below) as we translate the copy:
+    // in the prepare_metadata call above) as we translate the copy:
     // update the copy as we go.
     int tag = dp_src->tag();
-    if (tag != DataLayout::arg_info_data_tag) {
-      memcpy(dp_dst, dp_src, ((intptr_t)MethodData::next_extra(dp_src)) - ((intptr_t)dp_src));
+    size_t entry_size = DataLayout::header_size_in_bytes();
+    if (tag != DataLayout::no_tag) {
+      ProfileData* src_data = dp_src->data_in();
+      entry_size = src_data->size_in_bytes();
     }
+    memcpy(dp_dst, dp_src, entry_size);
 
     switch(tag) {
     case DataLayout::speculative_trap_data_tag: {
       ciSpeculativeTrapData data_dst(dp_dst);
       SpeculativeTrapData   data_src(dp_src);
-
-      { // During translation a safepoint can happen or VM lock can be taken (e.g., Compile_lock).
-        MutexUnlocker ml(mdo->extra_data_lock());
-        data_dst.translate_from(&data_src);
-      }
+      data_dst.translate_from(&data_src);
       break;
     }
     case DataLayout::bit_data_tag:
--- a/src/hotspot/share/ci/ciMethodData.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethodData.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETHODDATA_HPP
-#define SHARE_VM_CI_CIMETHODDATA_HPP
+#ifndef SHARE_CI_CIMETHODDATA_HPP
+#define SHARE_CI_CIMETHODDATA_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciKlass.hpp"
@@ -475,6 +475,7 @@
     return (address) _data;
   }
 
+  void prepare_metadata();
   void load_extra_data();
   ciProfileData* bci_to_extra_data(int bci, ciMethod* m, bool& two_free_slots);
 
@@ -602,4 +603,4 @@
   void dump_replay_data(outputStream* out);
 };
 
-#endif // SHARE_VM_CI_CIMETHODDATA_HPP
+#endif // SHARE_CI_CIMETHODDATA_HPP
--- a/src/hotspot/share/ci/ciMethodHandle.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethodHandle.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETHODHANDLE_HPP
-#define SHARE_VM_CI_CIMETHODHANDLE_HPP
+#ifndef SHARE_CI_CIMETHODHANDLE_HPP
+#define SHARE_CI_CIMETHODHANDLE_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciInstance.hpp"
@@ -41,4 +41,4 @@
   ciMethod* get_vmtarget() const;
 };
 
-#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP
+#endif // SHARE_CI_CIMETHODHANDLE_HPP
--- a/src/hotspot/share/ci/ciMethodType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciMethodType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIMETHODTYPE_HPP
-#define SHARE_VM_CI_CIMETHODTYPE_HPP
+#ifndef SHARE_CI_CIMETHODTYPE_HPP
+#define SHARE_CI_CIMETHODTYPE_HPP
 
 #include "ci/ciInstance.hpp"
 
@@ -48,4 +48,4 @@
   ciType* ptype_at(int index) const;
 };
 
-#endif // SHARE_VM_CI_CIMETHODTYPE_HPP
+#endif // SHARE_CI_CIMETHODTYPE_HPP
--- a/src/hotspot/share/ci/ciNullObject.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciNullObject.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CINULLOBJECT_HPP
-#define SHARE_VM_CI_CINULLOBJECT_HPP
+#ifndef SHARE_CI_CINULLOBJECT_HPP
+#define SHARE_CI_CINULLOBJECT_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciObject.hpp"
@@ -54,4 +54,4 @@
   static ciNullObject* make();
 };
 
-#endif // SHARE_VM_CI_CINULLOBJECT_HPP
+#endif // SHARE_CI_CINULLOBJECT_HPP
--- a/src/hotspot/share/ci/ciObjArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciObjArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIOBJARRAY_HPP
-#define SHARE_VM_CI_CIOBJARRAY_HPP
+#ifndef SHARE_CI_CIOBJARRAY_HPP
+#define SHARE_CI_CIOBJARRAY_HPP
 
 #include "ci/ciArray.hpp"
 #include "ci/ciClassList.hpp"
@@ -54,4 +54,4 @@
   ciObject* obj_at(int index);
 };
 
-#endif // SHARE_VM_CI_CIOBJARRAY_HPP
+#endif // SHARE_CI_CIOBJARRAY_HPP
--- a/src/hotspot/share/ci/ciObjArrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciObjArrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIOBJARRAYKLASS_HPP
-#define SHARE_VM_CI_CIOBJARRAYKLASS_HPP
+#ifndef SHARE_CI_CIOBJARRAYKLASS_HPP
+#define SHARE_CI_CIOBJARRAYKLASS_HPP
 
 #include "ci/ciArrayKlass.hpp"
 
@@ -77,4 +77,4 @@
   virtual ciKlass* exact_klass();
 };
 
-#endif // SHARE_VM_CI_CIOBJARRAYKLASS_HPP
+#endif // SHARE_CI_CIOBJARRAYKLASS_HPP
--- a/src/hotspot/share/ci/ciObject.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciObject.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIOBJECT_HPP
-#define SHARE_VM_CI_CIOBJECT_HPP
+#ifndef SHARE_CI_CIOBJECT_HPP
+#define SHARE_CI_CIOBJECT_HPP
 
 #include "ci/ciBaseObject.hpp"
 #include "ci/ciClassList.hpp"
@@ -185,4 +185,4 @@
   void print_oop(outputStream* st = tty);
 };
 
-#endif // SHARE_VM_CI_CIOBJECT_HPP
+#endif // SHARE_CI_CIOBJECT_HPP
--- a/src/hotspot/share/ci/ciObjectFactory.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciObjectFactory.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -266,6 +266,24 @@
 }
 
 // ------------------------------------------------------------------
+// ciObjectFactory::cached_metadata
+//
+// Get the ciMetadata corresponding to some Metadata. If the ciMetadata has
+// already been created, it is returned. Otherwise, null is returned.
+ciMetadata* ciObjectFactory::cached_metadata(Metadata* key) {
+  ASSERT_IN_VM;
+
+  bool found = false;
+  int index = _ci_metadata->find_sorted<Metadata*, ciObjectFactory::metadata_compare>(key, found);
+
+  if (!found) {
+    return NULL;
+  }
+  return _ci_metadata->at(index)->as_metadata();
+}
+
+
+// ------------------------------------------------------------------
 // ciObjectFactory::get_metadata
 //
 // Get the ciMetadata corresponding to some Metadata. If the ciMetadata has
--- a/src/hotspot/share/ci/ciObjectFactory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciObjectFactory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIOBJECTFACTORY_HPP
-#define SHARE_VM_CI_CIOBJECTFACTORY_HPP
+#ifndef SHARE_CI_CIOBJECTFACTORY_HPP
+#define SHARE_CI_CIOBJECTFACTORY_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciObject.hpp"
@@ -100,6 +100,7 @@
   // Get the ciObject corresponding to some oop.
   ciObject* get(oop key);
   ciMetadata* get_metadata(Metadata* key);
+  ciMetadata* cached_metadata(Metadata* key);
   ciSymbol* get_symbol(Symbol* key);
 
   // Get the ciSymbol corresponding to one of the vmSymbols.
@@ -145,4 +146,4 @@
   void print();
 };
 
-#endif // SHARE_VM_CI_CIOBJECTFACTORY_HPP
+#endif // SHARE_CI_CIOBJECTFACTORY_HPP
--- a/src/hotspot/share/ci/ciReplay.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciReplay.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIREPLAY_HPP
-#define SHARE_VM_CI_CIREPLAY_HPP
+#ifndef SHARE_CI_CIREPLAY_HPP
+#define SHARE_CI_CIREPLAY_HPP
 
 #include "ci/ciMethod.hpp"
 
@@ -125,4 +125,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CI_CIREPLAY_HPP
+#endif // SHARE_CI_CIREPLAY_HPP
--- a/src/hotspot/share/ci/ciSignature.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciSignature.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CISIGNATURE_HPP
-#define SHARE_VM_CI_CISIGNATURE_HPP
+#ifndef SHARE_CI_CISIGNATURE_HPP
+#define SHARE_CI_CISIGNATURE_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciSymbol.hpp"
@@ -72,4 +72,4 @@
   void print();
 };
 
-#endif // SHARE_VM_CI_CISIGNATURE_HPP
+#endif // SHARE_CI_CISIGNATURE_HPP
--- a/src/hotspot/share/ci/ciStreams.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciStreams.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CISTREAMS_HPP
-#define SHARE_VM_CI_CISTREAMS_HPP
+#ifndef SHARE_CI_CISTREAMS_HPP
+#define SHARE_CI_CISTREAMS_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciExceptionHandler.hpp"
@@ -438,4 +438,4 @@
 Bytecode_lookupswitch::Bytecode_lookupswitch(const ciBytecodeStream* stream): Bytecode(stream) { verify(); }
 Bytecode_tableswitch::Bytecode_tableswitch(const ciBytecodeStream* stream): Bytecode(stream) { verify(); }
 
-#endif // SHARE_VM_CI_CISTREAMS_HPP
+#endif // SHARE_CI_CISTREAMS_HPP
--- a/src/hotspot/share/ci/ciSymbol.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciSymbol.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CISYMBOL_HPP
-#define SHARE_VM_CI_CISYMBOL_HPP
+#ifndef SHARE_CI_CISYMBOL_HPP
+#define SHARE_CI_CISYMBOL_HPP
 
 #include "ci/ciBaseObject.hpp"
 #include "ci/ciObject.hpp"
@@ -114,4 +114,4 @@
   bool is_signature_polymorphic_name() const;
 };
 
-#endif // SHARE_VM_CI_CISYMBOL_HPP
+#endif // SHARE_CI_CISYMBOL_HPP
--- a/src/hotspot/share/ci/ciType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CITYPE_HPP
-#define SHARE_VM_CI_CITYPE_HPP
+#ifndef SHARE_CI_CITYPE_HPP
+#define SHARE_CI_CITYPE_HPP
 
 #include "ci/ciMetadata.hpp"
 
@@ -112,4 +112,4 @@
   static ciReturnAddress* make(int bci);
 };
 
-#endif // SHARE_VM_CI_CITYPE_HPP
+#endif // SHARE_CI_CITYPE_HPP
--- a/src/hotspot/share/ci/ciTypeArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciTypeArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CITYPEARRAY_HPP
-#define SHARE_VM_CI_CITYPEARRAY_HPP
+#ifndef SHARE_CI_CITYPEARRAY_HPP
+#define SHARE_CI_CITYPEARRAY_HPP
 
 #include "ci/ciArray.hpp"
 #include "ci/ciClassList.hpp"
@@ -61,4 +61,4 @@
 
 };
 
-#endif // SHARE_VM_CI_CITYPEARRAY_HPP
+#endif // SHARE_CI_CITYPEARRAY_HPP
--- a/src/hotspot/share/ci/ciTypeArrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciTypeArrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CITYPEARRAYKLASS_HPP
-#define SHARE_VM_CI_CITYPEARRAYKLASS_HPP
+#ifndef SHARE_CI_CITYPEARRAYKLASS_HPP
+#define SHARE_CI_CITYPEARRAYKLASS_HPP
 
 #include "ci/ciArrayKlass.hpp"
 
@@ -63,4 +63,4 @@
   }
 };
 
-#endif // SHARE_VM_CI_CITYPEARRAYKLASS_HPP
+#endif // SHARE_CI_CITYPEARRAYKLASS_HPP
--- a/src/hotspot/share/ci/ciTypeFlow.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciTypeFlow.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CITYPEFLOW_HPP
-#define SHARE_VM_CI_CITYPEFLOW_HPP
+#ifndef SHARE_CI_CITYPEFLOW_HPP
+#define SHARE_CI_CITYPEFLOW_HPP
 
 #ifdef COMPILER2
 #include "ci/ciEnv.hpp"
@@ -950,4 +950,4 @@
   void rpo_print_on(outputStream* st) const PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_CI_CITYPEFLOW_HPP
+#endif // SHARE_CI_CITYPEFLOW_HPP
--- a/src/hotspot/share/ci/ciUtilities.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciUtilities.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIUTILITIES_HPP
-#define SHARE_VM_CI_CIUTILITIES_HPP
+#ifndef SHARE_CI_CIUTILITIES_HPP
+#define SHARE_CI_CIUTILITIES_HPP
 
 #include "ci/ciEnv.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -56,4 +56,4 @@
   return reinterpret_cast<T>(ci_card_table_address());
 }
 
-#endif // SHARE_VM_CI_CIUTILITIES_HPP
+#endif // SHARE_CI_CIUTILITIES_HPP
--- a/src/hotspot/share/ci/ciUtilities.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/ciUtilities.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_CIUTILITIES_INLINE_HPP
-#define SHARE_VM_CI_CIUTILITIES_INLINE_HPP
+#ifndef SHARE_CI_CIUTILITIES_INLINE_HPP
+#define SHARE_CI_CIUTILITIES_INLINE_HPP
 
 #include "ci/ciUtilities.hpp"
 #include "runtime/interfaceSupport.inline.hpp"
@@ -89,5 +89,4 @@
   }                                              \
 (void)(0
 
-#endif // SHARE_VM_CI_CIUTILITIES_INLINE_HPP
-
+#endif // SHARE_CI_CIUTILITIES_INLINE_HPP
--- a/src/hotspot/share/ci/compilerInterface.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/ci/compilerInterface.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CI_COMPILERINTERFACE_HPP
-#define SHARE_VM_CI_COMPILERINTERFACE_HPP
+#ifndef SHARE_CI_COMPILERINTERFACE_HPP
+#define SHARE_CI_COMPILERINTERFACE_HPP
 
 #include "ci/ciArray.hpp"
 #include "ci/ciArrayKlass.hpp"
@@ -50,4 +50,4 @@
 // This is a dummy file used for including the complete
 // compiler interface.
 
-#endif // SHARE_VM_CI_COMPILERINTERFACE_HPP
+#endif // SHARE_CI_COMPILERINTERFACE_HPP
--- a/src/hotspot/share/classfile/altHashing.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/altHashing.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_ALTHASHING_HPP
-#define SHARE_VM_CLASSFILE_ALTHASHING_HPP
+#ifndef SHARE_CLASSFILE_ALTHASHING_HPP
+#define SHARE_CLASSFILE_ALTHASHING_HPP
 
 #include "jni.h"
 #include "classfile/symbolTable.hpp"
@@ -51,4 +51,4 @@
   static juint murmur3_32(juint seed, const jbyte* data, int len);
   static juint murmur3_32(juint seed, const jchar* data, int len);
 };
-#endif // SHARE_VM_CLASSFILE_ALTHASHING_HPP
+#endif // SHARE_CLASSFILE_ALTHASHING_HPP
--- a/src/hotspot/share/classfile/bytecodeAssembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/bytecodeAssembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP
-#define SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP
+#ifndef SHARE_CLASSFILE_BYTECODEASSEMBLER_HPP
+#define SHARE_CLASSFILE_BYTECODEASSEMBLER_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/method.hpp"
@@ -211,4 +211,4 @@
   void _return(BasicType bt);
 };
 
-#endif // SHARE_VM_CLASSFILE_BYTECODEASSEMBLER_HPP
+#endif // SHARE_CLASSFILE_BYTECODEASSEMBLER_HPP
--- a/src/hotspot/share/classfile/classFileParser.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classFileParser.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -4486,33 +4486,6 @@
   }
 }
 
-// Attach super classes and interface classes to class loader data
-static void record_defined_class_dependencies(const InstanceKlass* defined_klass,
-                                              TRAPS) {
-  assert(defined_klass != NULL, "invariant");
-
-  ClassLoaderData* const defining_loader_data = defined_klass->class_loader_data();
-  if (defining_loader_data->is_the_null_class_loader_data()) {
-      // Dependencies to null class loader data are implicit.
-      return;
-  } else {
-    // add super class dependency
-    Klass* const super = defined_klass->super();
-    if (super != NULL) {
-      defining_loader_data->record_dependency(super);
-    }
-
-    // add super interface dependencies
-    const Array<InstanceKlass*>* const local_interfaces = defined_klass->local_interfaces();
-    if (local_interfaces != NULL) {
-      const int length = local_interfaces->length();
-      for (int i = 0; i < length; i++) {
-        defining_loader_data->record_dependency(local_interfaces->at(i));
-      }
-    }
-  }
-}
-
 // utility methods for appending an array with check for duplicates
 
 static void append_interfaces(GrowableArray<InstanceKlass*>* result,
@@ -5719,9 +5692,6 @@
     }
   }
 
-  // Update the loader_data graph.
-  record_defined_class_dependencies(ik, CHECK);
-
   ClassLoadingService::notify_class_loaded(ik, false /* not shared class */);
 
   if (!is_internal()) {
--- a/src/hotspot/share/classfile/classFileParser.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classFileParser.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP
-#define SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP
+#ifndef SHARE_CLASSFILE_CLASSFILEPARSER_HPP
+#define SHARE_CLASSFILE_CLASSFILEPARSER_HPP
 
 #include "memory/referenceType.hpp"
 #include "oops/annotations.hpp"
@@ -546,4 +546,4 @@
 
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP
+#endif // SHARE_CLASSFILE_CLASSFILEPARSER_HPP
--- a/src/hotspot/share/classfile/classFileStream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classFileStream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP
-#define SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP
+#ifndef SHARE_CLASSFILE_CLASSFILESTREAM_HPP
+#define SHARE_CLASSFILE_CLASSFILESTREAM_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/bytes.hpp"
@@ -143,4 +143,4 @@
   uint64_t compute_fingerprint() const;
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP
+#endif // SHARE_CLASSFILE_CLASSFILESTREAM_HPP
--- a/src/hotspot/share/classfile/classListParser.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classListParser.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -47,7 +47,15 @@
   assert(_instance == NULL, "must be singleton");
   _instance = this;
   _classlist_file = file;
-  _file = fopen(file, "r");
+  _file = NULL;
+  // Use os::open() because neither fopen() nor os::fopen()
+  // can handle long path name on Windows.
+  int fd = os::open(file, O_RDONLY, S_IREAD);
+  if (fd != -1) {
+    // Obtain a File* from the file descriptor so that fgets()
+    // can be used in parse_one_line()
+    _file = os::open(fd, "r");
+  }
   if (_file == NULL) {
     char errmsg[JVM_MAXPATHLEN];
     os::lasterror(errmsg, JVM_MAXPATHLEN);
--- a/src/hotspot/share/classfile/classListParser.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classListParser.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_CLASSLISTPARSER_HPP
-#define SHARE_VM_MEMORY_CLASSLISTPARSER_HPP
+#ifndef SHARE_CLASSFILE_CLASSLISTPARSER_HPP
+#define SHARE_CLASSFILE_CLASSLISTPARSER_HPP
 
 #include "utilities/exceptions.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -127,4 +127,4 @@
   InstanceKlass* lookup_super_for_current_class(Symbol* super_name);
   InstanceKlass* lookup_interface_for_current_class(Symbol* interface_name);
 };
-#endif
+#endif // SHARE_CLASSFILE_CLASSLISTPARSER_HPP
--- a/src/hotspot/share/classfile/classLoader.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoader.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADER_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADER_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADER_HPP
+#define SHARE_CLASSFILE_CLASSLOADER_HPP
 
 #include "jimage.hpp"
 #include "runtime/handles.hpp"
@@ -506,4 +506,4 @@
   void initialize();
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADER_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADER_HPP
--- a/src/hotspot/share/classfile/classLoader.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoader.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADER_INLINE_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADER_INLINE_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADER_INLINE_HPP
+#define SHARE_CLASSFILE_CLASSLOADER_INLINE_HPP
 
 #include "classfile/classLoader.hpp"
 #include "runtime/orderAccess.hpp"
@@ -96,4 +96,4 @@
 
 #endif // INCLUDE_CDS
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADER_INLINE_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADER_INLINE_HPP
--- a/src/hotspot/share/classfile/classLoaderData.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderData.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADERDATA_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADERDATA_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADERDATA_HPP
+#define SHARE_CLASSFILE_CLASSLOADERDATA_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
@@ -327,4 +327,4 @@
   JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADERDATA_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADERDATA_HPP
--- a/src/hotspot/share/classfile/classLoaderData.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderData.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
+#define SHARE_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "classfile/javaClasses.hpp"
@@ -55,4 +55,4 @@
   return loader_data;
 }
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADERDATA_INLINE_HPP
--- a/src/hotspot/share/classfile/classLoaderDataGraph.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -561,11 +561,6 @@
 
   ClassLoaderData* data = _head;
   while (data != NULL) {
-    // Remove entries in the dictionary of live class loader that have
-    // initiated loading classes in a dead class loader.
-    if (data->dictionary() != NULL) {
-      data->dictionary()->do_unloading();
-    }
     // Walk a ModuleEntry's reads, and a PackageEntry's exports
     // lists to determine if there are modules on those lists that are now
     // dead and should be removed.  A module's life cycle is equivalent
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
+#define SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "memory/allocation.hpp"
@@ -185,4 +185,4 @@
   bool repeat() { return _data != NULL; }
   ClassLoaderMetaspace* get_next();
 };
-#endif // SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_HPP
--- a/src/hotspot/share/classfile/classLoaderDataGraph.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
+#define SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
 
 #include "classfile/classLoaderDataGraph.hpp"
 #include "classfile/javaClasses.hpp"
@@ -79,4 +79,4 @@
   return do_cleaning;
 }
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADERDATAGRAPH_INLINE_HPP
--- a/src/hotspot/share/classfile/classLoaderExt.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderExt.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADEREXT_HPP
+#define SHARE_CLASSFILE_CLASSLOADEREXT_HPP
 
 #include "classfile/classLoader.hpp"
 #include "classfile/moduleEntry.hpp"
@@ -124,4 +124,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADEREXT_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADEREXT_HPP
--- a/src/hotspot/share/classfile/classLoaderHierarchyDCmd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderHierarchyDCmd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef HOTSPOT_SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP_
-#define HOTSPOT_SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP_
+#ifndef SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP
+#define SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP
 
 #include "services/diagnosticCommand.hpp"
 
@@ -56,4 +56,4 @@
 
 };
 
-#endif /* HOTSPOT_SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP_ */
+#endif // SHARE_CLASSFILE_CLASSLOADERHIERARCHYDCMD_HPP
--- a/src/hotspot/share/classfile/classLoaderStats.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/classLoaderStats.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_CLASSLOADERSTATS_HPP
-#define SHARE_VM_CLASSFILE_CLASSLOADERSTATS_HPP
+#ifndef SHARE_CLASSFILE_CLASSLOADERSTATS_HPP
+#define SHARE_CLASSFILE_CLASSLOADERSTATS_HPP
 
 
 #include "classfile/classLoaderData.hpp"
@@ -150,4 +150,4 @@
   void doit();
 };
 
-#endif // SHARE_VM_CLASSFILE_CLASSLOADERSTATS_HPP
+#endif // SHARE_CLASSFILE_CLASSLOADERSTATS_HPP
--- a/src/hotspot/share/classfile/compactHashtable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/compactHashtable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_COMPACTHASHTABLE_HPP
-#define SHARE_VM_CLASSFILE_COMPACTHASHTABLE_HPP
+#ifndef SHARE_CLASSFILE_COMPACTHASHTABLE_HPP
+#define SHARE_CLASSFILE_COMPACTHASHTABLE_HPP
 
 #include "oops/array.hpp"
 #include "oops/symbol.hpp"
@@ -428,4 +428,4 @@
   static void put_utf8(outputStream* st, const char* utf8_string, int utf8_length);
 };
 
-#endif // SHARE_VM_CLASSFILE_COMPACTHASHTABLE_HPP
+#endif // SHARE_CLASSFILE_COMPACTHASHTABLE_HPP
--- a/src/hotspot/share/classfile/defaultMethods.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/defaultMethods.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP
-#define SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP
+#ifndef SHARE_CLASSFILE_DEFAULTMETHODS_HPP
+#define SHARE_CLASSFILE_DEFAULTMETHODS_HPP
 
 #include "runtime/handles.hpp"
 #include "utilities/growableArray.hpp"
@@ -45,4 +45,4 @@
   static void generate_default_methods(
       InstanceKlass* klass, const GrowableArray<Method*>* mirandas, TRAPS);
 };
-#endif // SHARE_VM_CLASSFILE_DEFAULTMETHODS_HPP
+#endif // SHARE_CLASSFILE_DEFAULTMETHODS_HPP
--- a/src/hotspot/share/classfile/dictionary.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/dictionary.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -233,40 +233,6 @@
   }
 }
 
-
-void Dictionary::do_unloading() {
-  assert_locked_or_safepoint(SystemDictionary_lock);
-
-  // The NULL class loader doesn't initiate loading classes from other class loaders
-  if (loader_data() == ClassLoaderData::the_null_class_loader_data()) {
-    return;
-  }
-
-  // Remove unloaded entries and classes from this dictionary
-  DictionaryEntry* probe = NULL;
-  for (int index = 0; index < table_size(); index++) {
-    for (DictionaryEntry** p = bucket_addr(index); *p != NULL; ) {
-      probe = *p;
-      InstanceKlass* ik = probe->instance_klass();
-      ClassLoaderData* k_def_class_loader_data = ik->class_loader_data();
-
-      // If the klass that this loader initiated is dead,
-      // (determined by checking the defining class loader)
-      // remove this entry.
-      if (k_def_class_loader_data->is_unloading()) {
-        assert(k_def_class_loader_data != loader_data(),
-               "cannot have live defining loader and unreachable klass");
-        *p = probe->next();
-        free_entry(probe);
-        continue;
-      }
-      // Clean pd_set
-      clean_cached_protection_domains(probe);
-      p = probe->next_addr();
-    }
-  }
-}
-
 //   Just the classes from defining class loaders
 void Dictionary::classes_do(void f(InstanceKlass*)) {
   for (int index = 0; index < table_size(); index++) {
--- a/src/hotspot/share/classfile/dictionary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/dictionary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_DICTIONARY_HPP
-#define SHARE_VM_CLASSFILE_DICTIONARY_HPP
+#ifndef SHARE_CLASSFILE_DICTIONARY_HPP
+#define SHARE_CLASSFILE_DICTIONARY_HPP
 
 #include "classfile/protectionDomainCache.hpp"
 #include "classfile/systemDictionary.hpp"
@@ -74,9 +74,6 @@
 
   void unlink();
 
-  // Unload classes whose defining loaders are unloaded
-  void do_unloading();
-
   // Protection domains
   InstanceKlass* find(unsigned int hash, Symbol* name, Handle protection_domain);
   bool is_valid_protection_domain(unsigned int hash,
@@ -307,4 +304,4 @@
     return (SymbolPropertyEntry*) Hashtable<Symbol*, mtSymbol>::bucket(i);
   }
 };
-#endif // SHARE_VM_CLASSFILE_DICTIONARY_HPP
+#endif // SHARE_CLASSFILE_DICTIONARY_HPP
--- a/src/hotspot/share/classfile/dictionary.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/dictionary.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_DICTIONARY_INLINE_HPP
-#define SHARE_VM_CLASSFILE_DICTIONARY_INLINE_HPP
+#ifndef SHARE_CLASSFILE_DICTIONARY_INLINE_HPP
+#define SHARE_CLASSFILE_DICTIONARY_INLINE_HPP
 
 #include "classfile/dictionary.hpp"
 #include "runtime/orderAccess.hpp"
@@ -36,4 +36,4 @@
   OrderAccess::release_store(&_pd_set, new_head);
 }
 
-#endif // SHARE_VM_CLASSFILE_DICTIONARY_INLINE_HPP
+#endif // SHARE_CLASSFILE_DICTIONARY_INLINE_HPP
--- a/src/hotspot/share/classfile/javaAssertions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/javaAssertions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP
-#define SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP
+#ifndef SHARE_CLASSFILE_JAVAASSERTIONS_HPP
+#define SHARE_CLASSFILE_JAVAASSERTIONS_HPP
 
 #include "oops/objArrayOop.hpp"
 #include "oops/typeArrayOop.hpp"
@@ -104,4 +104,4 @@
   _sysDefault = enabled;
 }
 
-#endif // SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP
+#endif // SHARE_CLASSFILE_JAVAASSERTIONS_HPP
--- a/src/hotspot/share/classfile/javaClasses.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/javaClasses.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -421,7 +421,7 @@
   oop          obj    = java_string();
   // Typical usage is to convert all '/' to '.' in string.
   typeArrayOop value  = java_lang_String::value(obj);
-  int          length = java_lang_String::length(obj);
+  int          length = java_lang_String::length(obj, value);
   bool      is_latin1 = java_lang_String::is_latin1(obj);
 
   // First check if any from_char exist
@@ -485,7 +485,7 @@
 
 jchar* java_lang_String::as_unicode_string(oop java_string, int& length, TRAPS) {
   typeArrayOop value  = java_lang_String::value(java_string);
-               length = java_lang_String::length(java_string);
+               length = java_lang_String::length(java_string, value);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
 
   jchar* result = NEW_RESOURCE_ARRAY_RETURN_NULL(jchar, length);
@@ -506,11 +506,11 @@
 }
 
 unsigned int java_lang_String::hash_code(oop java_string) {
-  int          length = java_lang_String::length(java_string);
+  typeArrayOop value  = java_lang_String::value(java_string);
+  int          length = java_lang_String::length(java_string, value);
   // Zero length string will hash to zero with String.hashCode() function.
   if (length == 0) return 0;
 
-  typeArrayOop value  = java_lang_String::value(java_string);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
 
   if (is_latin1) {
@@ -522,7 +522,7 @@
 
 char* java_lang_String::as_quoted_ascii(oop java_string) {
   typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
+  int          length = java_lang_String::length(java_string, value);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
 
   if (length == 0) return NULL;
@@ -547,7 +547,7 @@
 
 Symbol* java_lang_String::as_symbol(oop java_string, TRAPS) {
   typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
+  int          length = java_lang_String::length(java_string, value);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
   if (!is_latin1) {
     jchar* base = (length == 0) ? NULL : value->char_at_addr(0);
@@ -564,7 +564,7 @@
 
 Symbol* java_lang_String::as_symbol_or_null(oop java_string) {
   typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
+  int          length = java_lang_String::length(java_string, value);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
   if (!is_latin1) {
     jchar* base = (length == 0) ? NULL : value->char_at_addr(0);
@@ -577,23 +577,28 @@
   }
 }
 
-int java_lang_String::utf8_length(oop java_string) {
-  typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
-  bool      is_latin1 = java_lang_String::is_latin1(java_string);
+int java_lang_String::utf8_length(oop java_string, typeArrayOop value) {
+  assert(oopDesc::equals_raw(value, java_lang_String::value(java_string)),
+         "value must be same as java_lang_String::value(java_string)");
+  int length = java_lang_String::length(java_string, value);
   if (length == 0) {
     return 0;
   }
-  if (!is_latin1) {
+  if (!java_lang_String::is_latin1(java_string)) {
     return UNICODE::utf8_length(value->char_at_addr(0), length);
   } else {
     return UNICODE::utf8_length(value->byte_at_addr(0), length);
   }
 }
 
+int java_lang_String::utf8_length(oop java_string) {
+  typeArrayOop value = java_lang_String::value(java_string);
+  return utf8_length(java_string, value);
+}
+
 char* java_lang_String::as_utf8_string(oop java_string) {
   typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
+  int          length = java_lang_String::length(java_string, value);
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
   if (!is_latin1) {
     jchar* position = (length == 0) ? NULL : value->char_at_addr(0);
@@ -604,10 +609,11 @@
   }
 }
 
-char* java_lang_String::as_utf8_string(oop java_string, char* buf, int buflen) {
-  typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
-  bool      is_latin1 = java_lang_String::is_latin1(java_string);
+char* java_lang_String::as_utf8_string(oop java_string, typeArrayOop value, char* buf, int buflen) {
+  assert(oopDesc::equals_raw(value, java_lang_String::value(java_string)),
+         "value must be same as java_lang_String::value(java_string)");
+  int     length = java_lang_String::length(java_string, value);
+  bool is_latin1 = java_lang_String::is_latin1(java_string);
   if (!is_latin1) {
     jchar* position = (length == 0) ? NULL : value->char_at_addr(0);
     return UNICODE::as_utf8(position, length, buf, buflen);
@@ -617,11 +623,15 @@
   }
 }
 
+char* java_lang_String::as_utf8_string(oop java_string, char* buf, int buflen) {
+  typeArrayOop value = java_lang_String::value(java_string);
+  return as_utf8_string(java_string, value, buf, buflen);
+}
+
 char* java_lang_String::as_utf8_string(oop java_string, int start, int len) {
   typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
-  assert(start + len <= length, "just checking");
   bool      is_latin1 = java_lang_String::is_latin1(java_string);
+  assert(start + len <= java_lang_String::length(java_string), "just checking");
   if (!is_latin1) {
     jchar* position = value->char_at_addr(start);
     return UNICODE::as_utf8(position, len);
@@ -631,11 +641,11 @@
   }
 }
 
-char* java_lang_String::as_utf8_string(oop java_string, int start, int len, char* buf, int buflen) {
-  typeArrayOop value  = java_lang_String::value(java_string);
-  int          length = java_lang_String::length(java_string);
-  assert(start + len <= length, "just checking");
-  bool      is_latin1 = java_lang_String::is_latin1(java_string);
+char* java_lang_String::as_utf8_string(oop java_string, typeArrayOop value, int start, int len, char* buf, int buflen) {
+  assert(oopDesc::equals_raw(value, java_lang_String::value(java_string)),
+         "value must be same as java_lang_String::value(java_string)");
+  assert(start + len <= java_lang_String::length(java_string), "just checking");
+  bool is_latin1 = java_lang_String::is_latin1(java_string);
   if (!is_latin1) {
     jchar* position = value->char_at_addr(start);
     return UNICODE::as_utf8(position, len, buf, buflen);
@@ -649,7 +659,7 @@
   assert(java_string->klass() == SystemDictionary::String_klass(),
          "must be java_string");
   typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
-  int length = java_lang_String::length(java_string);
+  int length = java_lang_String::length(java_string, value);
   if (length != len) {
     return false;
   }
@@ -676,10 +686,10 @@
   assert(str2->klass() == SystemDictionary::String_klass(),
          "must be java String");
   typeArrayOop value1    = java_lang_String::value_no_keepalive(str1);
-  int          length1   = java_lang_String::length(str1);
+  int          length1   = java_lang_String::length(str1, value1);
   bool         is_latin1 = java_lang_String::is_latin1(str1);
   typeArrayOop value2    = java_lang_String::value_no_keepalive(str2);
-  int          length2   = java_lang_String::length(str2);
+  int          length2   = java_lang_String::length(str2, value2);
   bool         is_latin2 = java_lang_String::is_latin1(str2);
 
   if ((length1 != length2) || (is_latin1 != is_latin2)) {
@@ -707,7 +717,7 @@
     return;
   }
 
-  int length = java_lang_String::length(java_string);
+  int length = java_lang_String::length(java_string, value);
   bool is_latin1 = java_lang_String::is_latin1(java_string);
 
   st->print("\"");
@@ -1257,12 +1267,6 @@
   return size;
 }
 
-int  java_lang_Class::oop_size_raw(oop java_class) {
-  assert(_oop_size_offset != 0, "must be set");
-  int size = java_class->int_field_raw(_oop_size_offset);
-  assert(size > 0, "Oop size must be greater than zero, not %d", size);
-  return size;
-}
 
 void java_lang_Class::set_oop_size(HeapWord* java_class, int size) {
   assert(_oop_size_offset != 0, "must be set");
@@ -1354,6 +1358,16 @@
   return o;
 }
 
+oop java_lang_Class::source_file(oop java_class) {
+  assert(_source_file_offset != 0, "must be set");
+  return java_class->obj_field(_source_file_offset);
+}
+
+void java_lang_Class::set_source_file(oop java_class, oop source_file) {
+  assert(_source_file_offset != 0, "must be set");
+  java_class->obj_field_put(_source_file_offset, source_file);
+}
+
 oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS) {
   // This should be improved by adding a field at the Java level or by
   // introducing a new VM klass (see comment in ClassFileParser)
@@ -2602,10 +2616,26 @@
   } else {
     // Fill in source file name and line number.
     Symbol* source = Backtrace::get_source_file_name(holder, version);
-    if (ShowHiddenFrames && source == NULL)
-      source = vmSymbols::unknown_class_name();
-    oop filename = StringTable::intern(source, CHECK);
-    java_lang_StackTraceElement::set_fileName(element(), filename);
+    oop source_file = java_lang_Class::source_file(java_class());
+    if (source != NULL) {
+      // Class was not redefined. We can trust its cache if set,
+      // else we have to initialize it.
+      if (source_file == NULL) {
+        source_file = StringTable::intern(source, CHECK);
+        java_lang_Class::set_source_file(java_class(), source_file);
+      }
+    } else {
+      // Class was redefined. Dump the cache if it was set.
+      if (source_file != NULL) {
+        source_file = NULL;
+        java_lang_Class::set_source_file(java_class(), source_file);
+      }
+      if (ShowHiddenFrames) {
+        source = vmSymbols::unknown_class_name();
+        source_file = StringTable::intern(source, CHECK);
+      }
+    }
+    java_lang_StackTraceElement::set_fileName(element(), source_file);
 
     int line_number = Backtrace::get_line_number(method, bci);
     java_lang_StackTraceElement::set_lineNumber(element(), line_number);
@@ -3980,6 +4010,7 @@
 int java_lang_Class::_init_lock_offset;
 int java_lang_Class::_signers_offset;
 int java_lang_Class::_name_offset;
+int java_lang_Class::_source_file_offset;
 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
 GrowableArray<Klass*>* java_lang_Class::_fixup_module_field_list = NULL;
 int java_lang_Throwable::backtrace_offset;
--- a/src/hotspot/share/classfile/javaClasses.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/javaClasses.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_JAVACLASSES_HPP
-#define SHARE_VM_CLASSFILE_JAVACLASSES_HPP
+#ifndef SHARE_CLASSFILE_JAVACLASSES_HPP
+#define SHARE_CLASSFILE_JAVACLASSES_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "jvmtifiles/jvmti.h"
@@ -147,13 +147,16 @@
   static inline unsigned int hash(oop java_string);
   static inline bool is_latin1(oop java_string);
   static inline int length(oop java_string);
+  static inline int length(oop java_string, typeArrayOop string_value);
   static int utf8_length(oop java_string);
+  static int utf8_length(oop java_string, typeArrayOop string_value);
 
   // String converters
   static char*  as_utf8_string(oop java_string);
   static char*  as_utf8_string(oop java_string, char* buf, int buflen);
   static char*  as_utf8_string(oop java_string, int start, int len);
-  static char*  as_utf8_string(oop java_string, int start, int len, char* buf, int buflen);
+  static char*  as_utf8_string(oop java_string, typeArrayOop value, char* buf, int buflen);
+  static char*  as_utf8_string(oop java_string, typeArrayOop value, int start, int len, char* buf, int buflen);
   static char*  as_platform_dependent_str(Handle java_string, TRAPS);
   static jchar* as_unicode_string(oop java_string, int& length, TRAPS);
   // produce an ascii string with all other values quoted using \u####
@@ -219,7 +222,8 @@
   macro(java_lang_Class, oop_size,               int_signature,     false) \
   macro(java_lang_Class, static_oop_field_count, int_signature,     false) \
   macro(java_lang_Class, protection_domain,      object_signature,  false) \
-  macro(java_lang_Class, signers,                object_signature,  false)
+  macro(java_lang_Class, signers,                object_signature,  false) \
+  macro(java_lang_Class, source_file,            object_signature,  false) \
 
 class java_lang_Class : AllStatic {
   friend class VMStructs;
@@ -241,6 +245,7 @@
   static int _module_offset;
   static int _component_mirror_offset;
   static int _name_offset;
+  static int _source_file_offset;
 
   static bool offsets_computed;
   static int classRedefinedCount_offset;
@@ -313,6 +318,9 @@
 
   static oop name(Handle java_class, TRAPS);
 
+  static oop source_file(oop java_class);
+  static void set_source_file(oop java_class, oop source_file);
+
   static int oop_size(oop java_class);
   static int oop_size_raw(oop java_class);
   static void set_oop_size(HeapWord* java_class, int size);
@@ -1541,4 +1549,4 @@
 
 #undef DECLARE_INJECTED_FIELD_ENUM
 
-#endif // SHARE_VM_CLASSFILE_JAVACLASSES_HPP
+#endif // SHARE_CLASSFILE_JAVACLASSES_HPP
--- a/src/hotspot/share/classfile/javaClasses.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/javaClasses.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_JAVACLASSES_INLINE_HPP
-#define SHARE_VM_CLASSFILE_JAVACLASSES_INLINE_HPP
+#ifndef SHARE_CLASSFILE_JAVACLASSES_INLINE_HPP
+#define SHARE_CLASSFILE_JAVACLASSES_INLINE_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "oops/access.inline.hpp"
@@ -71,10 +71,11 @@
   assert(CompactStrings || coder == CODER_UTF16, "Must be UTF16 without CompactStrings");
   return coder == CODER_LATIN1;
 }
-int java_lang_String::length(oop java_string) {
+int java_lang_String::length(oop java_string, typeArrayOop value) {
   assert(initialized, "Must be initialized");
   assert(is_instance(java_string), "must be java_string");
-  typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
+  assert(oopDesc::equals_raw(value, java_lang_String::value(java_string)),
+         "value must be same as java_lang_String::value(java_string)");
   if (value == NULL) {
     return 0;
   }
@@ -85,6 +86,12 @@
   }
   return arr_length;
 }
+int java_lang_String::length(oop java_string) {
+  assert(initialized, "Must be initialized");
+  assert(is_instance(java_string), "must be java_string");
+  typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
+  return length(java_string, value);
+}
 
 bool java_lang_String::is_instance_inlined(oop obj) {
   return obj != NULL && obj->klass() == SystemDictionary::String_klass();
@@ -190,6 +197,13 @@
   return is_primitive;
 }
 
+inline int java_lang_Class::oop_size_raw(oop java_class) {
+  assert(_oop_size_offset != 0, "must be set");
+  int size = java_class->int_field_raw(_oop_size_offset);
+  assert(size > 0, "Oop size must be greater than zero, not %d", size);
+  return size;
+}
+
 inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
   return obj != NULL && is_subclass(obj->klass());
 }
@@ -258,4 +272,4 @@
   }
 }
 
-#endif // SHARE_VM_CLASSFILE_JAVACLASSES_INLINE_HPP
+#endif // SHARE_CLASSFILE_JAVACLASSES_INLINE_HPP
--- a/src/hotspot/share/classfile/klassFactory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/klassFactory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+* 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_CLASSFILE_KLASSFACTORY_HPP
-#define SHARE_VM_CLASSFILE_KLASSFACTORY_HPP
+#ifndef SHARE_CLASSFILE_KLASSFACTORY_HPP
+#define SHARE_CLASSFILE_KLASSFACTORY_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -83,4 +83,4 @@
                                           Handle protection_domain, TRAPS);
 };
 
-#endif // SHARE_VM_CLASSFILE_KLASSFACTORY_HPP
+#endif // SHARE_CLASSFILE_KLASSFACTORY_HPP
--- a/src/hotspot/share/classfile/loaderConstraints.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/loaderConstraints.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
-#define SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
+#ifndef SHARE_CLASSFILE_LOADERCONSTRAINTS_HPP
+#define SHARE_CLASSFILE_LOADERCONSTRAINTS_HPP
 
 #include "classfile/placeholders.hpp"
 #include "utilities/hashtable.hpp"
@@ -130,4 +130,4 @@
   void set_loader(int i, oop p);
 };
 
-#endif // SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
+#endif // SHARE_CLASSFILE_LOADERCONSTRAINTS_HPP
--- a/src/hotspot/share/classfile/metadataOnStackMark.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/metadataOnStackMark.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
-#define SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
+#ifndef SHARE_CLASSFILE_METADATAONSTACKMARK_HPP
+#define SHARE_CLASSFILE_METADATAONSTACKMARK_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/chunkedList.hpp"
@@ -55,4 +55,4 @@
   static void retire_current_buffer();
 };
 
-#endif // SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
+#endif // SHARE_CLASSFILE_METADATAONSTACKMARK_HPP
--- a/src/hotspot/share/classfile/moduleEntry.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/moduleEntry.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_MODULEENTRY_HPP
-#define SHARE_VM_CLASSFILE_MODULEENTRY_HPP
+#ifndef SHARE_CLASSFILE_MODULEENTRY_HPP
+#define SHARE_CLASSFILE_MODULEENTRY_HPP
 
 #include "jni.h"
 #include "classfile/classLoaderData.hpp"
@@ -264,4 +264,4 @@
   void verify();
 };
 
-#endif // SHARE_VM_CLASSFILE_MODULEENTRY_HPP
+#endif // SHARE_CLASSFILE_MODULEENTRY_HPP
--- a/src/hotspot/share/classfile/modules.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/modules.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_CLASSFILE_MODULES_HPP
-#define SHARE_VM_CLASSFILE_MODULES_HPP
+#ifndef SHARE_CLASSFILE_MODULES_HPP
+#define SHARE_CLASSFILE_MODULES_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -126,4 +126,4 @@
   static ModuleEntryTable* get_module_entry_table(Handle h_loader);
 };
 
-#endif // SHARE_VM_CLASSFILE_MODULES_HPP
+#endif // SHARE_CLASSFILE_MODULES_HPP
--- a/src/hotspot/share/classfile/packageEntry.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/packageEntry.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_PACKAGEENTRY_HPP
-#define SHARE_VM_CLASSFILE_PACKAGEENTRY_HPP
+#ifndef SHARE_CLASSFILE_PACKAGEENTRY_HPP
+#define SHARE_CLASSFILE_PACKAGEENTRY_HPP
 
 #include "classfile/moduleEntry.hpp"
 #include "oops/symbol.hpp"
@@ -265,4 +265,4 @@
   void verify();
 };
 
-#endif // SHARE_VM_CLASSFILE_PACKAGEENTRY_HPP
+#endif // SHARE_CLASSFILE_PACKAGEENTRY_HPP
--- a/src/hotspot/share/classfile/placeholders.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/placeholders.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
-#define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
+#ifndef SHARE_CLASSFILE_PLACEHOLDERS_HPP
+#define SHARE_CLASSFILE_PLACEHOLDERS_HPP
 
 #include "runtime/thread.hpp"
 #include "utilities/hashtable.hpp"
@@ -321,4 +321,4 @@
   void verify() const;
 };
 
-#endif // SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
+#endif // SHARE_CLASSFILE_PLACEHOLDERS_HPP
--- a/src/hotspot/share/classfile/protectionDomainCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/protectionDomainCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
-#define SHARE_VM_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
+#ifndef SHARE_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
+#define SHARE_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
 
 #include "oops/oop.hpp"
 #include "oops/weakHandle.hpp"
@@ -120,4 +120,4 @@
   oop object();
   oop object_no_keepalive();
 };
-#endif // SHARE_VM_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
+#endif // SHARE_CLASSFILE_PROTECTIONDOMAINCACHE_HPP
--- a/src/hotspot/share/classfile/resolutionErrors.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/resolutionErrors.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP
-#define SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP
+#ifndef SHARE_CLASSFILE_RESOLUTIONERRORS_HPP
+#define SHARE_CLASSFILE_RESOLUTIONERRORS_HPP
 
 #include "oops/constantPool.hpp"
 #include "utilities/hashtable.hpp"
@@ -117,4 +117,4 @@
   }
 };
 
-#endif // SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP
+#endif // SHARE_CLASSFILE_RESOLUTIONERRORS_HPP
--- a/src/hotspot/share/classfile/sharedPathsMiscInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/sharedPathsMiscInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_SHAREDPATHSMISCINFO_HPP
-#define SHARE_VM_CLASSFILE_SHAREDPATHSMISCINFO_HPP
+#ifndef SHARE_CLASSFILE_SHAREDPATHSMISCINFO_HPP
+#define SHARE_CLASSFILE_SHAREDPATHSMISCINFO_HPP
 
 #include "classfile/classLoader.hpp"
 #include "runtime/os.hpp"
@@ -165,4 +165,4 @@
   bool check();
 };
 
-#endif // SHARE_VM_CLASSFILE_SHAREDPATHSMISCINFO_HPP
+#endif // SHARE_CLASSFILE_SHAREDPATHSMISCINFO_HPP
--- a/src/hotspot/share/classfile/stackMapFrame.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/stackMapFrame.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP
-#define SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP
+#ifndef SHARE_CLASSFILE_STACKMAPFRAME_HPP
+#define SHARE_CLASSFILE_STACKMAPFRAME_HPP
 
 #include "classfile/verificationType.hpp"
 #include "classfile/verifier.hpp"
@@ -295,4 +295,4 @@
   void print_on(outputStream* str) const;
 };
 
-#endif // SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP
+#endif // SHARE_CLASSFILE_STACKMAPFRAME_HPP
--- a/src/hotspot/share/classfile/stackMapTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/stackMapTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP
-#define SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP
+#ifndef SHARE_CLASSFILE_STACKMAPTABLE_HPP
+#define SHARE_CLASSFILE_STACKMAPTABLE_HPP
 
 #include "classfile/stackMapFrame.hpp"
 #include "classfile/verifier.hpp"
@@ -155,4 +155,4 @@
   }
 };
 
-#endif // SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP
+#endif // SHARE_CLASSFILE_STACKMAPTABLE_HPP
--- a/src/hotspot/share/classfile/stackMapTableFormat.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/stackMapTableFormat.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP
-#define SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP
+#ifndef SHARE_CLASSFILE_STACKMAPTABLEFORMAT_HPP
+#define SHARE_CLASSFILE_STACKMAPTABLEFORMAT_HPP
 
 #include "classfile/verificationType.hpp"
 
@@ -963,4 +963,4 @@
 
 #undef FOR_EACH_STACKMAP_FRAME_TYPE
 
-#endif // SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP
+#endif // SHARE_CLASSFILE_STACKMAPTABLEFORMAT_HPP
--- a/src/hotspot/share/classfile/stringTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/stringTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_STRINGTABLE_HPP
-#define SHARE_VM_CLASSFILE_STRINGTABLE_HPP
+#ifndef SHARE_CLASSFILE_STRINGTABLE_HPP
+#define SHARE_CLASSFILE_STRINGTABLE_HPP
 
 #include "gc/shared/oopStorage.hpp"
 #include "gc/shared/oopStorageParState.hpp"
@@ -177,4 +177,4 @@
   static void verify();
 };
 
-#endif // SHARE_VM_CLASSFILE_STRINGTABLE_HPP
+#endif // SHARE_CLASSFILE_STRINGTABLE_HPP
--- a/src/hotspot/share/classfile/symbolTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/symbolTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP
-#define SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP
+#ifndef SHARE_CLASSFILE_SYMBOLTABLE_HPP
+#define SHARE_CLASSFILE_SYMBOLTABLE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/padded.hpp"
@@ -259,4 +259,4 @@
   static void print_histogram() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP
+#endif // SHARE_CLASSFILE_SYMBOLTABLE_HPP
--- a/src/hotspot/share/classfile/systemDictionary.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -860,8 +860,15 @@
         check_constraints(d_hash, k, class_loader, false, THREAD);
 
         // Need to check for a PENDING_EXCEPTION again; check_constraints
-        // can throw and doesn't use the CHECK macro.
+        // can throw but we may have to remove entry from the placeholder table below.
         if (!HAS_PENDING_EXCEPTION) {
+          // Record dependency for non-parent delegation.
+          // This recording keeps the defining class loader of the klass (k) found
+          // from being unloaded while the initiating class loader is loaded
+          // even if the reference to the defining class loader is dropped
+          // before references to the initiating class loader.
+          loader_data->record_dependency(k);
+
           { // Grabbing the Compile_lock prevents systemDictionary updates
             // during compilations.
             MutexLocker mu(Compile_lock, THREAD);
@@ -2179,6 +2186,7 @@
     InstanceKlass* sd_check = find_class(d_hash, name, dictionary);
     if (sd_check == NULL) {
       dictionary->add_klass(d_hash, name, k);
+
       notice_modification();
     }
   #ifdef ASSERT
--- a/src/hotspot/share/classfile/systemDictionary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/systemDictionary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP
-#define SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP
+#ifndef SHARE_CLASSFILE_SYSTEMDICTIONARY_HPP
+#define SHARE_CLASSFILE_SYSTEMDICTIONARY_HPP
 
 #include "classfile/classLoader.hpp"
 #include "jvmci/systemDictionary_jvmci.hpp"
@@ -703,4 +703,4 @@
   static bool _has_checkPackageAccess;
 };
 
-#endif // SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP
+#endif // SHARE_CLASSFILE_SYSTEMDICTIONARY_HPP
--- a/src/hotspot/share/classfile/systemDictionaryShared.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -503,26 +503,33 @@
 Handle SystemDictionaryShared::get_shared_protection_domain(Handle class_loader,
                                                             ModuleEntry* mod, TRAPS) {
   ClassLoaderData *loader_data = mod->loader_data();
-  Handle protection_domain;
   if (mod->shared_protection_domain() == NULL) {
     Symbol* location = mod->location();
     if (location != NULL) {
-      Handle url_string = java_lang_String::create_from_symbol(
-                                 location, CHECK_(protection_domain));
+      Handle location_string = java_lang_String::create_from_symbol(
+                                     location, CHECK_NH);
+      Handle url;
       JavaValue result(T_OBJECT);
-      Klass* classLoaders_klass =
-        SystemDictionary::jdk_internal_loader_ClassLoaders_klass();
-      JavaCalls::call_static(&result, classLoaders_klass, vmSymbols::toFileURL_name(),
+      if (location->starts_with("jrt:/")) {
+        url = JavaCalls::construct_new_instance(SystemDictionary::URL_klass(),
+                                                vmSymbols::string_void_signature(),
+                                                location_string, CHECK_NH);
+      } else {
+        Klass* classLoaders_klass =
+          SystemDictionary::jdk_internal_loader_ClassLoaders_klass();
+        JavaCalls::call_static(&result, classLoaders_klass, vmSymbols::toFileURL_name(),
                                vmSymbols::toFileURL_signature(),
-                               url_string, CHECK_(protection_domain));
-      Handle url = Handle(THREAD, (oop)result.get_jobject());
+                               location_string, CHECK_NH);
+        url = Handle(THREAD, (oop)result.get_jobject());
+      }
 
-      Handle pd = get_protection_domain_from_classloader(class_loader, url, THREAD);
+      Handle pd = get_protection_domain_from_classloader(class_loader, url,
+                                                         CHECK_NH);
       mod->set_shared_protection_domain(loader_data, pd);
     }
   }
 
-  protection_domain = Handle(THREAD, mod->shared_protection_domain());
+  Handle protection_domain(THREAD, mod->shared_protection_domain());
   assert(protection_domain.not_null(), "sanity");
   return protection_domain;
 }
--- a/src/hotspot/share/classfile/systemDictionaryShared.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/systemDictionaryShared.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
-#define SHARE_VM_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
+#ifndef SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
+#define SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
 
 #include "oops/klass.hpp"
 #include "classfile/dictionary.hpp"
@@ -300,4 +300,4 @@
   DEBUG_ONLY(static bool checked_excluded_classes() {return _checked_excluded_classes;})
 };
 
-#endif // SHARE_VM_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
+#endif // SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
--- a/src/hotspot/share/classfile/verificationType.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/verificationType.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -50,7 +50,6 @@
   Klass* this_class = SystemDictionary::resolve_or_fail(
       name, Handle(THREAD, klass->class_loader()),
       Handle(THREAD, klass->protection_domain()), true, CHECK_false);
-  klass->class_loader_data()->record_dependency(this_class);
   if (log_is_enabled(Debug, class, resolve)) {
     Verifier::trace_class_resolution(this_class, klass);
   }
@@ -68,7 +67,6 @@
     Klass* from_class = SystemDictionary::resolve_or_fail(
         from_name, Handle(THREAD, klass->class_loader()),
         Handle(THREAD, klass->protection_domain()), true, CHECK_false);
-    klass->class_loader_data()->record_dependency(from_class);
     if (log_is_enabled(Debug, class, resolve)) {
       Verifier::trace_class_resolution(from_class, klass);
     }
--- a/src/hotspot/share/classfile/verificationType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/verificationType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP
-#define SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP
+#ifndef SHARE_CLASSFILE_VERIFICATIONTYPE_HPP
+#define SHARE_CLASSFILE_VERIFICATIONTYPE_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "oops/instanceKlass.hpp"
@@ -341,4 +341,4 @@
                                               TRAPS);
 };
 
-#endif // SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP
+#endif // SHARE_CLASSFILE_VERIFICATIONTYPE_HPP
--- a/src/hotspot/share/classfile/verifier.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/verifier.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -2015,7 +2015,6 @@
     true, THREAD);
 
   if (kls != NULL) {
-    current_class()->class_loader_data()->record_dependency(kls);
     if (log_is_enabled(Debug, class, resolve)) {
       Verifier::trace_class_resolution(kls, current_class());
     }
--- a/src/hotspot/share/classfile/verifier.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/verifier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_VERIFIER_HPP
-#define SHARE_VM_CLASSFILE_VERIFIER_HPP
+#ifndef SHARE_CLASSFILE_VERIFIER_HPP
+#define SHARE_CLASSFILE_VERIFIER_HPP
 
 #include "classfile/verificationType.hpp"
 #include "oops/klass.hpp"
@@ -463,4 +463,4 @@
   }
 }
 
-#endif // SHARE_VM_CLASSFILE_VERIFIER_HPP
+#endif // SHARE_CLASSFILE_VERIFIER_HPP
--- a/src/hotspot/share/classfile/vmSymbols.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/classfile/vmSymbols.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
-#define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
+#ifndef SHARE_CLASSFILE_VMSYMBOLS_HPP
+#define SHARE_CLASSFILE_VMSYMBOLS_HPP
 
 #include "classfile/moduleEntry.hpp"
 #include "jfr/support/jfrIntrinsics.hpp"
@@ -425,6 +425,7 @@
   template(static_oop_field_count_name,               "static_oop_field_count")                   \
   template(protection_domain_name,                    "protection_domain")                        \
   template(signers_name,                              "signers_name")                             \
+  template(source_file_name,                          "source_file")                              \
   template(loader_data_name,                          "loader_data")                              \
   template(vmdependencies_name,                       "vmdependencies")                           \
   template(last_cleanup_name,                         "last_cleanup")                             \
@@ -1656,4 +1657,4 @@
   static bool is_intrinsic_available(vmIntrinsics::ID id);
 };
 
-#endif // SHARE_VM_CLASSFILE_VMSYMBOLS_HPP
+#endif // SHARE_CLASSFILE_VMSYMBOLS_HPP
--- a/src/hotspot/share/code/codeBlob.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/codeBlob.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_CODEBLOB_HPP
-#define SHARE_VM_CODE_CODEBLOB_HPP
+#ifndef SHARE_CODE_CODEBLOB_HPP
+#define SHARE_CODE_CODEBLOB_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "compiler/compilerDefinitions.hpp"
@@ -732,4 +732,4 @@
   bool is_safepoint_stub() const                 { return true; }
 };
 
-#endif // SHARE_VM_CODE_CODEBLOB_HPP
+#endif // SHARE_CODE_CODEBLOB_HPP
--- a/src/hotspot/share/code/codeCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/codeCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_CODECACHE_HPP
-#define SHARE_VM_CODE_CODECACHE_HPP
+#ifndef SHARE_CODE_CODECACHE_HPP
+#define SHARE_CODE_CODECACHE_HPP
 
 #include "code/codeBlob.hpp"
 #include "code/nmethod.hpp"
@@ -430,4 +430,4 @@
 typedef CodeBlobIterator<CompiledMethod, CompiledMethodFilter> CompiledMethodIterator;
 typedef CodeBlobIterator<nmethod, NMethodFilter> NMethodIterator;
 
-#endif // SHARE_VM_CODE_CODECACHE_HPP
+#endif // SHARE_CODE_CODECACHE_HPP
--- a/src/hotspot/share/code/codeHeapState.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/codeHeapState.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2018 SAP SE. All rights reserved.
+ * Copyright (c) 2018, 2019 SAP SE. 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
@@ -40,15 +40,17 @@
 // contain enough detail to gain initial insight while keeping the
 // internal structure sizes in check.
 //
-// The CodeHeap is a living thing. Therefore, the aggregate is collected
-// under the CodeCache_lock. The subsequent print steps are only locked
-// against concurrent aggregations. That keeps the impact on
-// "normal operation" (JIT compiler and sweeper activity) to a minimum.
-//
 // The second part, which consists of several, independent steps,
 // prints the previously collected information with emphasis on
 // various aspects.
 //
+// The CodeHeap is a living thing. Therefore, protection against concurrent
+// modification (by acquiring the CodeCache_lock) is necessary. It has
+// to be provided by the caller of the analysis functions.
+// If the CodeCache_lock is not held, the analysis functions may print
+// less detailed information or may just do nothing. It is by intention
+// that an unprotected invocation is not abnormally terminated.
+//
 // Data collection and printing is done on an "on request" basis.
 // While no request is being processed, there is no impact on performance.
 // The CodeHeap state analytics do have some memory footprint.
@@ -456,7 +458,7 @@
   bool  done             = false;
   const int min_granules = 256;
   const int max_granules = 512*K; // limits analyzable CodeHeap (with segment_granules) to 32M..128M
-                                  // results in StatArray size of 20M (= max_granules * 40 Bytes per element)
+                                  // results in StatArray size of 24M (= max_granules * 48 Bytes per element)
                                   // For a 1GB CodeHeap, the granule size must be at least 2kB to not violate the max_granles limit.
   const char* heapName   = get_heapName(heap);
   STRINGSTREAM_DECL(ast, out)
@@ -495,6 +497,12 @@
     return;
   }
 
+  if (!CodeCache_lock->owned_by_self()) {
+    printBox(ast, '-', "aggregate function called without holding the CodeCache_lock for ", heapName);
+    STRINGSTREAM_FLUSH("")
+    return;
+  }
+
   // Calculate granularity of analysis (and output).
   //   The CodeHeap is managed (allocated) in segments (units) of CodeCacheSegmentSize.
   //   The CodeHeap can become fairly large, in particular in productive real-life systems.
@@ -1028,6 +1036,7 @@
       STRINGSTREAM_FLUSH("\n")
 
       // This loop is intentionally printing directly to "out".
+      // It should not print anything, anyway.
       out->print("Verifying collected data...");
       size_t granule_segs = granule_size>>log2_seg_size;
       for (unsigned int ix = 0; ix < granules; ix++) {
@@ -1071,6 +1080,7 @@
       }
 
       // This loop is intentionally printing directly to "out".
+      // It should not print anything, anyway.
       if (used_topSizeBlocks > 0) {
         unsigned int j = 0;
         if (TopSizeArray[0].len != currMax) {
@@ -1166,6 +1176,7 @@
   //---<  calculate and fill remaining fields  >---
   if (FreeArray != NULL) {
     // This loop is intentionally printing directly to "out".
+    // It should not print anything, anyway.
     for (unsigned int ix = 0; ix < alloc_freeBlocks-1; ix++) {
       size_t lenSum = 0;
       FreeArray[ix].gap = (unsigned int)((address)FreeArray[ix+1].start - ((address)FreeArray[ix].start + FreeArray[ix].len));
@@ -1223,6 +1234,7 @@
   //----------------------------
   {
     char*     low_bound = heap->low_boundary();
+    bool      have_CodeCache_lock = CodeCache_lock->owned_by_self();
 
     printBox(ast, '-', "Largest Used Blocks in ", heapName);
     print_blobType_legend(ast);
@@ -1241,12 +1253,19 @@
       unsigned int printed_topSizeBlocks = 0;
       for (unsigned int i = 0; i != tsbStopper; i = TopSizeArray[i].index) {
         printed_topSizeBlocks++;
-        CodeBlob*   this_blob = (CodeBlob*)(heap->find_start(TopSizeArray[i].start));
         nmethod*           nm = NULL;
-        const char* blob_name = "unnamed blob";
-        if (this_blob != NULL) {
-          blob_name = this_blob->name();
-          nm        = this_blob->as_nmethod_or_null();
+        const char* blob_name = "unnamed blob or blob name unavailable";
+        // heap->find_start() is safe. Only works on _segmap.
+        // Returns NULL or void*. Returned CodeBlob may be uninitialized.
+        HeapBlock* heapBlock = TopSizeArray[i].start;
+        CodeBlob*  this_blob = (CodeBlob*)(heap->find_start(heapBlock));
+        bool    blob_is_safe = blob_access_is_safe(this_blob, NULL);
+        if (blob_is_safe) {
+          //---<  access these fields only if we own the CodeCache_lock  >---
+          if (have_CodeCache_lock) {
+            blob_name = this_blob->name();
+            nm        = this_blob->as_nmethod_or_null();
+          }
           //---<  blob address  >---
           ast->print(INTPTR_FORMAT, p2i(this_blob));
           ast->fill_to(19);
@@ -1262,10 +1281,18 @@
           ast->fill_to(33);
         }
 
-
         //---<  print size, name, and signature (for nMethods)  >---
-        if ((nm != NULL) && (nm->method() != NULL)) {
+        // access nmethod and Method fields only if we own the CodeCache_lock.
+        // This fact is implicitly transported via nm != NULL.
+        if (CompiledMethod::nmethod_access_is_safe(nm)) {
           ResourceMark rm;
+          Method* method = nm->method();
+          if (nm->is_in_use()) {
+            blob_name = method->name_and_sig_as_C_string();
+          }
+          if (nm->is_not_entrant()) {
+            blob_name = method->name_and_sig_as_C_string();
+          }
           //---<  nMethod size in hex  >---
           unsigned int total_size = nm->total_size();
           ast->print(PTR32_FORMAT, total_size);
@@ -1280,10 +1307,12 @@
           ast->print("%5d", nm->hotness_counter());
           //---<  name and signature  >---
           ast->fill_to(67+6);
-          if (nm->is_in_use())        {blob_name = nm->method()->name_and_sig_as_C_string(); }
-          if (nm->is_not_entrant())   {blob_name = nm->method()->name_and_sig_as_C_string(); }
-          if (nm->is_not_installed()) {ast->print("%s", " not (yet) installed method "); }
-          if (nm->is_zombie())        {ast->print("%s", " zombie method "); }
+          if (nm->is_not_installed()) {
+            ast->print(" not (yet) installed method ");
+          }
+          if (nm->is_zombie()) {
+            ast->print(" zombie method ");
+          }
           ast->print("%s", blob_name);
         } else {
           //---<  block size in hex  >---
@@ -2083,10 +2112,11 @@
   }
   STRINGSTREAM_DECL(ast, out)
 
-  unsigned int granules_per_line  = 128;
-  char*        low_bound          = heap->low_boundary();
-  CodeBlob*    last_blob          = NULL;
-  bool         name_in_addr_range = true;
+  unsigned int granules_per_line   = 128;
+  char*        low_bound           = heap->low_boundary();
+  CodeBlob*    last_blob           = NULL;
+  bool         name_in_addr_range  = true;
+  bool         have_CodeCache_lock = CodeCache_lock->owned_by_self();
 
   //---<  print at least 128K per block (i.e. between headers)  >---
   if (granules_per_line*granule_size < 128*K) {
@@ -2121,16 +2151,14 @@
                            StatArray[ix].stub_count + StatArray[ix].dead_count;
     if (nBlobs > 0 ) {
     for (unsigned int is = 0; is < granule_size; is+=(unsigned int)seg_size) {
-      // heap->find_start() is safe. Only working with _segmap. Returns NULL or void*. Returned CodeBlob may be uninitialized.
-      CodeBlob* this_blob = (CodeBlob *)(heap->find_start(low_bound+ix*granule_size+is));
-      bool blob_initialized = (this_blob != NULL) && (this_blob->header_size() >= 0) && (this_blob->relocation_size() >= 0) &&
-                              ((address)this_blob + this_blob->header_size() == (address)(this_blob->relocation_begin())) &&
-                              ((address)this_blob + CodeBlob::align_code_offset(this_blob->header_size() + this_blob->relocation_size()) == (address)(this_blob->content_begin())) &&
-                              os::is_readable_pointer((address)(this_blob->relocation_begin())) &&
-                              os::is_readable_pointer(this_blob->content_begin());
+      // heap->find_start() is safe. Only works on _segmap.
+      // Returns NULL or void*. Returned CodeBlob may be uninitialized.
+      char*     this_seg  = low_bound + ix*granule_size + is;
+      CodeBlob* this_blob = (CodeBlob*)(heap->find_start(this_seg));
+      bool   blob_is_safe = blob_access_is_safe(this_blob, NULL);
       // blob could have been flushed, freed, and merged.
       // this_blob < last_blob is an indicator for that.
-      if (blob_initialized && (this_blob > last_blob)) {
+      if (blob_is_safe && (this_blob > last_blob)) {
         last_blob          = this_blob;
 
         //---<  get type and name  >---
@@ -2138,12 +2166,22 @@
         if (segment_granules) {
           cbType = (blobType)StatArray[ix].type;
         } else {
-          cbType = get_cbType(this_blob);
+          //---<  access these fields only if we own the CodeCache_lock  >---
+          if (have_CodeCache_lock) {
+            cbType = get_cbType(this_blob);
+          }
         }
-        // this_blob->name() could return NULL if no name was given to CTOR. Inlined, maybe invisible on stack
-        const char* blob_name = this_blob->name();
-        if ((blob_name == NULL) || !os::is_readable_pointer(blob_name)) {
-          blob_name = "<unavailable>";
+
+        //---<  access these fields only if we own the CodeCache_lock  >---
+        const char* blob_name = "<unavailable>";
+        nmethod*           nm = NULL;
+        if (have_CodeCache_lock) {
+          blob_name = this_blob->name();
+          nm        = this_blob->as_nmethod_or_null();
+          // this_blob->name() could return NULL if no name was given to CTOR. Inlined, maybe invisible on stack
+          if ((blob_name == NULL) || !os::is_readable_pointer(blob_name)) {
+            blob_name = "<unavailable>";
+          }
         }
 
         //---<  print table header for new print range  >---
@@ -2163,8 +2201,8 @@
         ast->print("(+" PTR32_FORMAT ")", (unsigned int)((char*)this_blob-low_bound));
         ast->fill_to(33);
 
-        // this_blob->as_nmethod_or_null() is safe. Inlined, maybe invisible on stack.
-        nmethod*    nm     = this_blob->as_nmethod_or_null();
+        // access nmethod and Method fields only if we own the CodeCache_lock.
+        // This fact is implicitly transported via nm != NULL.
         if (CompiledMethod::nmethod_access_is_safe(nm)) {
           Method* method = nm->method();
           ResourceMark rm;
@@ -2201,14 +2239,17 @@
           } else {
             ast->print("%s", blob_name);
           }
-        } else {
+        } else if (blob_is_safe) {
           ast->fill_to(62+6);
           ast->print("%s", blobTypeName[cbType]);
           ast->fill_to(82+6);
           ast->print("%s", blob_name);
+        } else {
+          ast->fill_to(62+6);
+          ast->print("<stale blob>");
         }
         STRINGSTREAM_FLUSH_LOCKED("\n")
-      } else if (!blob_initialized && (this_blob != last_blob) && (this_blob != NULL)) {
+      } else if (!blob_is_safe && (this_blob != last_blob) && (this_blob != NULL)) {
         last_blob          = this_blob;
         STRINGSTREAM_FLUSH_LOCKED("\n")
       }
@@ -2375,16 +2416,31 @@
     if (cb->is_method_handles_adapter_blob()) return mh_adapterBlob;
     if (cb->is_buffer_blob())                 return bufferBlob;
 
-    nmethod*  nm = cb->as_nmethod_or_null();
-    if (nm != NULL) { // no is_readable check required, nm = (nmethod*)cb.
-      if (nm->is_not_installed()) return nMethod_inconstruction;
-      if (nm->is_zombie())        return nMethod_dead;
-      if (nm->is_unloaded())      return nMethod_unloaded;
-      if (nm->is_in_use())        return nMethod_inuse;
-      if (nm->is_alive() && !(nm->is_not_entrant()))   return nMethod_notused;
-      if (nm->is_alive())         return nMethod_alive;
-      return nMethod_dead;
+    //---<  access these fields only if we own the CodeCache_lock  >---
+    // Should be ensured by caller. aggregate() amd print_names() do that.
+    if (CodeCache_lock->owned_by_self()) {
+      nmethod*  nm = cb->as_nmethod_or_null();
+      if (nm != NULL) { // no is_readable check required, nm = (nmethod*)cb.
+        if (nm->is_not_installed()) return nMethod_inconstruction;
+        if (nm->is_zombie())        return nMethod_dead;
+        if (nm->is_unloaded())      return nMethod_unloaded;
+        if (nm->is_in_use())        return nMethod_inuse;
+        if (nm->is_alive() && !(nm->is_not_entrant()))   return nMethod_notused;
+        if (nm->is_alive())         return nMethod_alive;
+        return nMethod_dead;
+      }
     }
   }
   return noType;
 }
+
+bool CodeHeapState::blob_access_is_safe(CodeBlob* this_blob, CodeBlob* prev_blob) {
+  return (this_blob != NULL) && // a blob must have been found, obviously
+         ((this_blob == prev_blob) || (prev_blob == NULL)) &&  // when re-checking, the same blob must have been found
+         (this_blob->header_size() >= 0) &&
+         (this_blob->relocation_size() >= 0) &&
+         ((address)this_blob + this_blob->header_size() == (address)(this_blob->relocation_begin())) &&
+         ((address)this_blob + CodeBlob::align_code_offset(this_blob->header_size() + this_blob->relocation_size()) == (address)(this_blob->content_begin())) &&
+         os::is_readable_pointer((address)(this_blob->relocation_begin())) &&
+         os::is_readable_pointer(this_blob->content_begin());
+}
--- a/src/hotspot/share/code/codeHeapState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/codeHeapState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2018 SAP SE. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019 SAP SE. 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
@@ -95,6 +95,7 @@
   static void print_line_delim(outputStream* out, bufferedStream *sst, char* low_bound, unsigned int ix, unsigned int gpl);
   static void print_line_delim(outputStream* out, outputStream *sst, char* low_bound, unsigned int ix, unsigned int gpl);
   static blobType get_cbType(CodeBlob* cb);
+  static bool blob_access_is_safe(CodeBlob* this_blob, CodeBlob* prev_blob);
 
  public:
   static void discard(outputStream* out, CodeHeap* heap);
--- a/src/hotspot/share/code/compiledIC.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/compiledIC.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -482,10 +482,10 @@
     if (TraceICs) {
       ResourceMark rm(thread);
       assert(info.cached_metadata() == NULL || info.cached_metadata()->is_klass(), "must be");
-      tty->print_cr ("IC@" INTPTR_FORMAT ": monomorphic to compiled (rcvr klass) %s: %s",
+      tty->print_cr ("IC@" INTPTR_FORMAT ": monomorphic to compiled (rcvr klass = %s) %s",
         p2i(instruction_address()),
-        ((Klass*)info.cached_metadata())->print_value_string(),
-        (safe) ? "" : "via stub");
+        (info.cached_metadata() != NULL) ? ((Klass*)info.cached_metadata())->print_value_string() : "NULL",
+        (safe) ? "" : " via stub");
     }
   }
   // We can't check this anymore. With lazy deopt we could have already
--- a/src/hotspot/share/code/compiledIC.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/compiledIC.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_COMPILEDIC_HPP
-#define SHARE_VM_CODE_COMPILEDIC_HPP
+#ifndef SHARE_CODE_COMPILEDIC_HPP
+#define SHARE_CODE_COMPILEDIC_HPP
 
 #include "code/nativeInst.hpp"
 #include "interpreter/linkResolver.hpp"
@@ -454,4 +454,4 @@
   virtual const char* name() const { return "CompiledDirectStaticCall"; }
 };
 
-#endif // SHARE_VM_CODE_COMPILEDIC_HPP
+#endif // SHARE_CODE_COMPILEDIC_HPP
--- a/src/hotspot/share/code/compiledMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/compiledMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_COMPILEDMETHOD_HPP
-#define SHARE_VM_CODE_COMPILEDMETHOD_HPP
+#ifndef SHARE_CODE_COMPILEDMETHOD_HPP
+#define SHARE_CODE_COMPILEDMETHOD_HPP
 
 #include "code/codeBlob.hpp"
 #include "code/pcDesc.hpp"
@@ -414,4 +414,4 @@
   nmethod* _scavenge_root_link; // from CodeCache::scavenge_root_nmethods
 };
 
-#endif //SHARE_VM_CODE_COMPILEDMETHOD_HPP
+#endif // SHARE_CODE_COMPILEDMETHOD_HPP
--- a/src/hotspot/share/code/compiledMethod.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/compiledMethod.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_COMPILEDMETHOD_INLINE_HPP
-#define SHARE_VM_CODE_COMPILEDMETHOD_INLINE_HPP
+#ifndef SHARE_CODE_COMPILEDMETHOD_INLINE_HPP
+#define SHARE_CODE_COMPILEDMETHOD_INLINE_HPP
 
 #include "code/compiledMethod.hpp"
 #include "code/nativeInst.hpp"
@@ -77,4 +77,4 @@
 inline void ExceptionCache::increment_count() { OrderAccess::release_store(&_count, _count + 1); }
 
 
-#endif //SHARE_VM_CODE_COMPILEDMETHOD_INLINE_HPP
+#endif // SHARE_CODE_COMPILEDMETHOD_INLINE_HPP
--- a/src/hotspot/share/code/compressedStream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/compressedStream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_COMPRESSEDSTREAM_HPP
-#define SHARE_VM_CODE_COMPRESSEDSTREAM_HPP
+#ifndef SHARE_CODE_COMPRESSEDSTREAM_HPP
+#define SHARE_CODE_COMPRESSEDSTREAM_HPP
 
 #include "memory/allocation.hpp"
 
@@ -157,4 +157,4 @@
   void write_long(jlong value);        // write_signed_int(<low,high>)
 };
 
-#endif // SHARE_VM_CODE_COMPRESSEDSTREAM_HPP
+#endif // SHARE_CODE_COMPRESSEDSTREAM_HPP
--- a/src/hotspot/share/code/debugInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/debugInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_DEBUGINFO_HPP
-#define SHARE_VM_CODE_DEBUGINFO_HPP
+#ifndef SHARE_CODE_DEBUGINFO_HPP
+#define SHARE_CODE_DEBUGINFO_HPP
 
 #include "code/compressedStream.hpp"
 #include "code/location.hpp"
@@ -301,4 +301,4 @@
   void write_metadata(Metadata* m);
 };
 
-#endif // SHARE_VM_CODE_DEBUGINFO_HPP
+#endif // SHARE_CODE_DEBUGINFO_HPP
--- a/src/hotspot/share/code/debugInfoRec.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/debugInfoRec.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_DEBUGINFOREC_HPP
-#define SHARE_VM_CODE_DEBUGINFOREC_HPP
+#ifndef SHARE_CODE_DEBUGINFOREC_HPP
+#define SHARE_CODE_DEBUGINFOREC_HPP
 
 #include "ci/ciClassList.hpp"
 #include "ci/ciInstanceKlass.hpp"
@@ -208,4 +208,4 @@
   enum { serialized_null = 0 };
 };
 
-#endif // SHARE_VM_CODE_DEBUGINFOREC_HPP
+#endif // SHARE_CODE_DEBUGINFOREC_HPP
--- a/src/hotspot/share/code/dependencies.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/dependencies.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_DEPENDENCIES_HPP
-#define SHARE_VM_CODE_DEPENDENCIES_HPP
+#ifndef SHARE_CODE_DEPENDENCIES_HPP
+#define SHARE_CODE_DEPENDENCIES_HPP
 
 #include "ci/ciCallSite.hpp"
 #include "ci/ciKlass.hpp"
@@ -799,4 +799,4 @@
   oop method_handle() const { return _method_handle(); }
 };
 
-#endif // SHARE_VM_CODE_DEPENDENCIES_HPP
+#endif // SHARE_CODE_DEPENDENCIES_HPP
--- a/src/hotspot/share/code/dependencyContext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/dependencyContext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_DEPENDENCYCONTEXT_HPP
-#define SHARE_VM_CODE_DEPENDENCYCONTEXT_HPP
+#ifndef SHARE_CODE_DEPENDENCYCONTEXT_HPP
+#define SHARE_CODE_DEPENDENCYCONTEXT_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
@@ -132,4 +132,4 @@
   bool is_dependent_nmethod(nmethod* nm);
 #endif //PRODUCT
 };
-#endif // SHARE_VM_CODE_DEPENDENCYCONTEXT_HPP
+#endif // SHARE_CODE_DEPENDENCYCONTEXT_HPP
--- a/src/hotspot/share/code/exceptionHandlerTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/exceptionHandlerTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP
-#define SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP
+#ifndef SHARE_CODE_EXCEPTIONHANDLERTABLE_HPP
+#define SHARE_CODE_EXCEPTIONHANDLERTABLE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/method.hpp"
@@ -163,4 +163,4 @@
   void verify(nmethod *nm) const;
 };
 
-#endif // SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP
+#endif // SHARE_CODE_EXCEPTIONHANDLERTABLE_HPP
--- a/src/hotspot/share/code/icBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/icBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_ICBUFFER_HPP
-#define SHARE_VM_CODE_ICBUFFER_HPP
+#ifndef SHARE_CODE_ICBUFFER_HPP
+#define SHARE_CODE_ICBUFFER_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "code/stubs.hpp"
@@ -178,4 +178,4 @@
   static void*   cached_value_for(CompiledIC *ic);
 };
 
-#endif // SHARE_VM_CODE_ICBUFFER_HPP
+#endif // SHARE_CODE_ICBUFFER_HPP
--- a/src/hotspot/share/code/location.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/location.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_LOCATION_HPP
-#define SHARE_VM_CODE_LOCATION_HPP
+#ifndef SHARE_CODE_LOCATION_HPP
+#define SHARE_CODE_LOCATION_HPP
 
 #include "asm/assembler.hpp"
 #include "code/vmreg.hpp"
@@ -123,4 +123,4 @@
   static bool legal_offset_in_bytes(int offset_in_bytes);
 };
 
-#endif // SHARE_VM_CODE_LOCATION_HPP
+#endif // SHARE_CODE_LOCATION_HPP
--- a/src/hotspot/share/code/nativeInst.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/nativeInst.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,11 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_NATIVEINST_HPP
-#define SHARE_VM_CODE_NATIVEINST_HPP
+#ifndef SHARE_CODE_NATIVEINST_HPP
+#define SHARE_CODE_NATIVEINST_HPP
 
 #include "utilities/macros.hpp"
 
 #include CPU_HEADER(nativeInst)
 
-#endif // SHARE_VM_CODE_NATIVEINST_HPP
+#endif // SHARE_CODE_NATIVEINST_HPP
--- a/src/hotspot/share/code/nmethod.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/nmethod.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1159,6 +1159,19 @@
   }
 }
 
+void nmethod::unlink_from_method(bool acquire_lock) {
+  // We need to check if both the _code and _from_compiled_code_entry_point
+  // refer to this nmethod because there is a race in setting these two fields
+  // in Method* as seen in bugid 4947125.
+  // If the vep() points to the zombie nmethod, the memory for the nmethod
+  // could be flushed and the compiler and vtable stubs could still call
+  // through it.
+  if (method() != NULL && (method()->code() == this ||
+                           method()->from_compiled_entry() == verified_entry_point())) {
+    method()->clear_code(acquire_lock);
+  }
+}
+
 /**
  * Common functionality for both make_not_entrant and make_zombie
  */
@@ -1246,17 +1259,7 @@
     JVMCI_ONLY(maybe_invalidate_installed_code());
 
     // Remove nmethod from method.
-    // We need to check if both the _code and _from_compiled_code_entry_point
-    // refer to this nmethod because there is a race in setting these two fields
-    // in Method* as seen in bugid 4947125.
-    // If the vep() points to the zombie nmethod, the memory for the nmethod
-    // could be flushed and the compiler and vtable stubs could still call
-    // through it.
-    if (method() != NULL && (method()->code() == this ||
-                             method()->from_compiled_entry() == verified_entry_point())) {
-      HandleMark hm;
-      method()->clear_code(false /* already owns Patching_lock */);
-    }
+    unlink_from_method(false /* already owns Patching_lock */);
   } // leave critical region under Patching_lock
 
 #ifdef ASSERT
--- a/src/hotspot/share/code/nmethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/nmethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_NMETHOD_HPP
-#define SHARE_VM_CODE_NMETHOD_HPP
+#ifndef SHARE_CODE_NMETHOD_HPP
+#define SHARE_CODE_NMETHOD_HPP
 
 #include "code/compiledMethod.hpp"
 
@@ -377,6 +377,8 @@
 
   int   comp_level() const                        { return _comp_level; }
 
+  void unlink_from_method(bool acquire_lock);
+
   // Support for oops in scopes and relocs:
   // Note: index 0 is reserved for null.
   oop   oop_at(int index) const;
@@ -668,4 +670,4 @@
   }
 };
 
-#endif // SHARE_VM_CODE_NMETHOD_HPP
+#endif // SHARE_CODE_NMETHOD_HPP
--- a/src/hotspot/share/code/oopRecorder.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/oopRecorder.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_OOPRECORDER_HPP
-#define SHARE_VM_CODE_OOPRECORDER_HPP
+#ifndef SHARE_CODE_OOPRECORDER_HPP
+#define SHARE_CODE_OOPRECORDER_HPP
 
 #include "memory/universe.hpp"
 #include "runtime/handles.hpp"
@@ -257,4 +257,4 @@
 };
 
 
-#endif // SHARE_VM_CODE_OOPRECORDER_HPP
+#endif // SHARE_CODE_OOPRECORDER_HPP
--- a/src/hotspot/share/code/pcDesc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/pcDesc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_PCDESC_HPP
-#define SHARE_VM_CODE_PCDESC_HPP
+#ifndef SHARE_CODE_PCDESC_HPP
+#define SHARE_CODE_PCDESC_HPP
 
 
 // PcDescs map a physical PC (given as offset from start of nmethod) to
@@ -96,4 +96,4 @@
   bool verify(CompiledMethod* code);
 };
 
-#endif // SHARE_VM_CODE_PCDESC_HPP
+#endif // SHARE_CODE_PCDESC_HPP
--- a/src/hotspot/share/code/relocInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/relocInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_RELOCINFO_HPP
-#define SHARE_VM_CODE_RELOCINFO_HPP
+#ifndef SHARE_CODE_RELOCINFO_HPP
+#define SHARE_CODE_RELOCINFO_HPP
 
 #include "runtime/os.hpp"
 #include "utilities/macros.hpp"
@@ -1392,4 +1392,4 @@
   initialize(nm, begin, limit);
 }
 
-#endif // SHARE_VM_CODE_RELOCINFO_HPP
+#endif // SHARE_CODE_RELOCINFO_HPP
--- a/src/hotspot/share/code/relocInfo_ext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/relocInfo_ext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_RELOCINFO_EXT_HPP
-#define SHARE_VM_CODE_RELOCINFO_EXT_HPP
+#ifndef SHARE_CODE_RELOCINFO_EXT_HPP
+#define SHARE_CODE_RELOCINFO_EXT_HPP
 
 // symbolic_Relocation allows to anotate some addresses in the generated code.
 //
@@ -58,4 +58,4 @@
   static address symbolic_value(symbolic_reference t);
 };
 
-#endif // SHARE_VM_CODE_RELOCINFO_EXT_HPP
+#endif // SHARE_CODE_RELOCINFO_EXT_HPP
--- a/src/hotspot/share/code/scopeDesc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/scopeDesc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_SCOPEDESC_HPP
-#define SHARE_VM_CODE_SCOPEDESC_HPP
+#ifndef SHARE_CODE_SCOPEDESC_HPP
+#define SHARE_CODE_SCOPEDESC_HPP
 
 #include "code/debugInfo.hpp"
 #include "code/pcDesc.hpp"
@@ -141,4 +141,4 @@
 #endif
 };
 
-#endif // SHARE_VM_CODE_SCOPEDESC_HPP
+#endif // SHARE_CODE_SCOPEDESC_HPP
--- a/src/hotspot/share/code/stubs.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/stubs.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_STUBS_HPP
-#define SHARE_VM_CODE_STUBS_HPP
+#ifndef SHARE_CODE_STUBS_HPP
+#define SHARE_CODE_STUBS_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "memory/allocation.hpp"
@@ -215,4 +215,4 @@
 
 };
 
-#endif // SHARE_VM_CODE_STUBS_HPP
+#endif // SHARE_CODE_STUBS_HPP
--- a/src/hotspot/share/code/vmreg.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/vmreg.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_VMREG_HPP
-#define SHARE_VM_CODE_VMREG_HPP
+#ifndef SHARE_CODE_VMREG_HPP
+#define SHARE_CODE_VMREG_HPP
 
 #include "asm/register.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -197,4 +197,4 @@
   VMRegPair() { _second = VMRegImpl::Bad(); _first = VMRegImpl::Bad(); }
 };
 
-#endif // SHARE_VM_CODE_VMREG_HPP
+#endif // SHARE_CODE_VMREG_HPP
--- a/src/hotspot/share/code/vmreg.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/vmreg.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,11 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_VMREG_INLINE_HPP
-#define SHARE_VM_CODE_VMREG_INLINE_HPP
+#ifndef SHARE_CODE_VMREG_INLINE_HPP
+#define SHARE_CODE_VMREG_INLINE_HPP
 
 #include "asm/register.hpp"
 #include "code/vmreg.hpp"
 #include CPU_HEADER_INLINE(vmreg)
 
-#endif // SHARE_VM_CODE_VMREG_INLINE_HPP
+#endif // SHARE_CODE_VMREG_INLINE_HPP
--- a/src/hotspot/share/code/vtableStubs.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/code/vtableStubs.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_CODE_VTABLESTUBS_HPP
-#define SHARE_VM_CODE_VTABLESTUBS_HPP
+#ifndef SHARE_CODE_VTABLESTUBS_HPP
+#define SHARE_CODE_VTABLESTUBS_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "code/vmreg.hpp"
@@ -181,4 +181,4 @@
 
 };
 
-#endif // SHARE_VM_CODE_VTABLESTUBS_HPP
+#endif // SHARE_CODE_VTABLESTUBS_HPP
--- a/src/hotspot/share/compiler/abstractCompiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/abstractCompiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP
-#define SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP
+#ifndef SHARE_COMPILER_ABSTRACTCOMPILER_HPP
+#define SHARE_COMPILER_ABSTRACTCOMPILER_HPP
 
 #include "ci/compilerInterface.hpp"
 #include "compiler/compilerDefinitions.hpp"
@@ -184,4 +184,4 @@
 #endif
 };
 
-#endif // SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP
+#endif // SHARE_COMPILER_ABSTRACTCOMPILER_HPP
--- a/src/hotspot/share/compiler/compileBroker.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compileBroker.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -2045,6 +2045,7 @@
   Method* target_handle = task->method();
   int compilable = ciEnv::MethodCompilable;
   const char* failure_reason = NULL;
+  bool failure_reason_on_C_heap = false;
   const char* retry_message = NULL;
 
   int system_dictionary_modification_counter;
@@ -2071,6 +2072,7 @@
         jvmci->compile_method(method, osr_bci, &env);
 
         failure_reason = env.failure_reason();
+        failure_reason_on_C_heap = env.failure_reason_on_C_heap();
         if (!env.retryable()) {
           retry_message = "not retryable";
           compilable = ciEnv::MethodCompilable_not_at_tier;
@@ -2146,7 +2148,7 @@
   pop_jni_handle_block();
 
   if (failure_reason != NULL) {
-    task->set_failure_reason(failure_reason);
+    task->set_failure_reason(failure_reason, failure_reason_on_C_heap);
     if (_compilation_log != NULL) {
       _compilation_log->log_failure(thread, task, failure_reason, retry_message);
     }
@@ -2212,15 +2214,6 @@
   // the point somewhat) our clearing of the bits must be occurring
   // only after the setting of the bits. See also 14012000 above.
   method->clear_queued_for_compilation();
-
-#ifdef ASSERT
-  if (CollectedHeap::fired_fake_oom()) {
-    // The current compile received a fake OOM during compilation so
-    // go ahead and exit the VM since the test apparently succeeded
-    tty->print_cr("*** Shutting down VM after successful fake OOM");
-    vm_exit(0);
-  }
-#endif
 }
 
 /**
@@ -2672,6 +2665,7 @@
 //       preventing concurrently printing threads from stalling a long time.
 void CompileBroker::print_heapinfo(outputStream* out, const char* function, const char* granularity) {
   TimeStamp ts_total;
+  TimeStamp ts_global;
   TimeStamp ts;
 
   bool allFun = !strcmp(function, "all");
@@ -2701,35 +2695,43 @@
   }
 
   // We hold the CodeHeapStateAnalytics_lock all the time, from here until we leave this function.
-  // That helps us getting a consistent view on the CodeHeap, at least for the "all" function.
+  // That prevents another thread from destroying our view on the CodeHeap.
   // When we request individual parts of the analysis via the jcmd interface, it is possible
   // that in between another thread (another jcmd user or the vm running into CodeCache OOM)
   // updated the aggregated data. That's a tolerable tradeoff because we can't hold a lock
   // across user interaction.
+  // Acquire this lock before acquiring the CodeCache_lock.
+  // CodeHeapStateAnalytics_lock could be held by a concurrent thread for a long time,
+  // leading to an unnecessarily long hold time of the CodeCache_lock.
   ts.update(); // record starting point
   MutexLockerEx mu1(CodeHeapStateAnalytics_lock, Mutex::_no_safepoint_check_flag);
-  out->cr();
-  out->print_cr("__ CodeHeapStateAnalytics lock wait took %10.3f seconds _________", ts.seconds());
-  out->cr();
+  out->print_cr("\n__ CodeHeapStateAnalytics lock wait took %10.3f seconds _________\n", ts.seconds());
+
+  // If we serve an "allFun" call, it is beneficial to hold the CodeCache_lock
+  // for the entire duration of aggregation and printing. That makes sure
+  // we see a consistent picture and do not run into issues caused by
+  // the CodeHeap being altered concurrently.
+  Monitor* global_lock   = allFun ? CodeCache_lock : NULL;
+  Monitor* function_lock = allFun ? NULL : CodeCache_lock;
+  ts_global.update(); // record starting point
+  MutexLockerEx mu2(global_lock, Mutex::_no_safepoint_check_flag);
+  if (global_lock != NULL) {
+    out->print_cr("\n__ CodeCache (global) lock wait took %10.3f seconds _________\n", ts_global.seconds());
+    ts_global.update(); // record starting point
+  }
 
   if (aggregate) {
-    // It is sufficient to hold the CodeCache_lock only for the aggregate step.
-    // All other functions operate on aggregated data - except MethodNames, but that should be safe.
-    // The separate CodeHeapStateAnalytics_lock protects the printing functions against
-    // concurrent aggregate steps. Acquire this lock before acquiring the CodeCache_lock.
-    // CodeHeapStateAnalytics_lock could be held by a concurrent thread for a long time,
-    // leading to an unnecessarily long hold time of the CodeCache_lock.
     ts.update(); // record starting point
-    MutexLockerEx mu2(CodeCache_lock, Mutex::_no_safepoint_check_flag);
-    out->cr();
-    out->print_cr("__ CodeCache lock wait took %10.3f seconds _________", ts.seconds());
-    out->cr();
+    MutexLockerEx mu3(function_lock, Mutex::_no_safepoint_check_flag);
+    if (function_lock != NULL) {
+      out->print_cr("\n__ CodeCache (function) lock wait took %10.3f seconds _________\n", ts.seconds());
+    }
 
     ts.update(); // record starting point
     CodeCache::aggregate(out, granularity);
-    out->cr();
-    out->print_cr("__ CodeCache lock hold took %10.3f seconds _________", ts.seconds());
-    out->cr();
+    if (function_lock != NULL) {
+      out->print_cr("\n__ CodeCache (function) lock hold took %10.3f seconds _________\n", ts.seconds());
+    }
   }
 
   if (usedSpace) CodeCache::print_usedSpace(out);
@@ -2737,10 +2739,16 @@
   if (methodCount) CodeCache::print_count(out);
   if (methodSpace) CodeCache::print_space(out);
   if (methodAge) CodeCache::print_age(out);
-  if (methodNames) CodeCache::print_names(out);
+  if (methodNames) {
+    // print_names() has shown to be sensitive to concurrent CodeHeap modifications.
+    // Therefore, request  the CodeCache_lock before calling...
+    MutexLockerEx mu3(function_lock, Mutex::_no_safepoint_check_flag);
+    CodeCache::print_names(out);
+  }
   if (discard) CodeCache::discard(out);
 
-  out->cr();
-  out->print_cr("__ CodeHeapStateAnalytics total duration %10.3f seconds _________", ts_total.seconds());
-  out->cr();
+  if (global_lock != NULL) {
+    out->print_cr("\n__ CodeCache (global) lock hold took %10.3f seconds _________\n", ts_global.seconds());
+  }
+  out->print_cr("\n__ CodeHeapStateAnalytics total duration %10.3f seconds _________\n", ts_total.seconds());
 }
--- a/src/hotspot/share/compiler/compileBroker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compileBroker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILEBROKER_HPP
-#define SHARE_VM_COMPILER_COMPILEBROKER_HPP
+#ifndef SHARE_COMPILER_COMPILEBROKER_HPP
+#define SHARE_COMPILER_COMPILEBROKER_HPP
 
 #include "ci/compilerInterface.hpp"
 #include "compiler/abstractCompiler.hpp"
@@ -426,4 +426,4 @@
   static void print_heapinfo(outputStream *out, const char* function, const char* granularity );
 };
 
-#endif // SHARE_VM_COMPILER_COMPILEBROKER_HPP
+#endif // SHARE_COMPILER_COMPILEBROKER_HPP
--- a/src/hotspot/share/compiler/compileLog.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compileLog.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILELOG_HPP
-#define SHARE_VM_COMPILER_COMPILELOG_HPP
+#ifndef SHARE_COMPILER_COMPILELOG_HPP
+#define SHARE_COMPILER_COMPILELOG_HPP
 
 #include "utilities/xmlstream.hpp"
 
@@ -97,4 +97,4 @@
   static void finish_log_on_error(outputStream* out, char *buf, int buflen);
 };
 
-#endif // SHARE_VM_COMPILER_COMPILELOG_HPP
+#endif // SHARE_COMPILER_COMPILELOG_HPP
--- a/src/hotspot/share/compiler/compileTask.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compileTask.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -72,6 +72,12 @@
    JNIHandles::destroy_global(task->_method_holder);
    JNIHandles::destroy_global(task->_hot_method_holder);
 
+   if (task->_failure_reason_on_C_heap && task->_failure_reason != NULL) {
+     os::free((void*) task->_failure_reason);
+   }
+   task->_failure_reason = NULL;
+   task->_failure_reason_on_C_heap = false;
+
    task->set_is_free(true);
    task->set_next(_task_free_list);
    _task_free_list = task;
@@ -110,6 +116,7 @@
   _time_queued = 0;  // tidy
   _compile_reason = compile_reason;
   _failure_reason = NULL;
+  _failure_reason_on_C_heap = false;
 
   if (LogCompilation) {
     _time_queued = os::elapsed_counter();
--- a/src/hotspot/share/compiler/compileTask.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compileTask.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILETASK_HPP
-#define SHARE_VM_COMPILER_COMPILETASK_HPP
+#ifndef SHARE_COMPILER_COMPILETASK_HPP
+#define SHARE_COMPILER_COMPILETASK_HPP
 
 #include "ci/ciMethod.hpp"
 #include "code/nmethod.hpp"
@@ -104,9 +104,11 @@
   int          _hot_count;    // information about its invocation counter
   CompileReason _compile_reason;      // more info about the task
   const char*  _failure_reason;
+  // Specifies if _failure_reason is on the C heap.
+  bool         _failure_reason_on_C_heap;
 
  public:
-  CompileTask() {
+  CompileTask() : _failure_reason(NULL), _failure_reason_on_C_heap(false) {
     _lock = new Monitor(Mutex::nonleaf+2, "CompileTaskLock");
   }
 
@@ -199,8 +201,9 @@
   void         log_task_start(CompileLog* log);
   void         log_task_done(CompileLog* log);
 
-  void         set_failure_reason(const char* reason) {
+  void         set_failure_reason(const char* reason, bool on_C_heap = false) {
     _failure_reason = reason;
+    _failure_reason_on_C_heap = on_C_heap;
   }
 
   bool         check_break_at_flags();
@@ -212,4 +215,4 @@
   static void print_inlining_ul(ciMethod* method, int inline_level, int bci, const char* msg = NULL);
 };
 
-#endif // SHARE_VM_COMPILER_COMPILETASK_HPP
+#endif // SHARE_COMPILER_COMPILETASK_HPP
--- a/src/hotspot/share/compiler/compilerDefinitions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compilerDefinitions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILERDEFINITIONS_HPP
-#define SHARE_VM_COMPILER_COMPILERDEFINITIONS_HPP
+#ifndef SHARE_COMPILER_COMPILERDEFINITIONS_HPP
+#define SHARE_COMPILER_COMPILERDEFINITIONS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -132,4 +132,4 @@
   static void set_tiered_flags();
 };
 
-#endif // SHARE_VM_COMPILER_COMPILERDEFINITIONS_HPP
+#endif // SHARE_COMPILER_COMPILERDEFINITIONS_HPP
--- a/src/hotspot/share/compiler/compilerDirectives.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compilerDirectives.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILERDIRECTIVES_HPP
-#define SHARE_VM_COMPILER_COMPILERDIRECTIVES_HPP
+#ifndef SHARE_COMPILER_COMPILERDIRECTIVES_HPP
+#define SHARE_COMPILER_COMPILERDIRECTIVES_HPP
 
 #include "ci/ciMetadata.hpp"
 #include "ci/ciMethod.hpp"
@@ -186,4 +186,4 @@
   DirectiveSet* _c2_store;
 };
 
-#endif // SHARE_VM_COMPILER_COMPILERDIRECTIVES_HPP
+#endif // SHARE_COMPILER_COMPILERDIRECTIVES_HPP
--- a/src/hotspot/share/compiler/compilerOracle.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/compilerOracle.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_COMPILERORACLE_HPP
-#define SHARE_VM_COMPILER_COMPILERORACLE_HPP
+#ifndef SHARE_COMPILER_COMPILERORACLE_HPP
+#define SHARE_COMPILER_COMPILERORACLE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -91,4 +91,4 @@
   static bool should_print_methods();
 };
 
-#endif // SHARE_VM_COMPILER_COMPILERORACLE_HPP
+#endif // SHARE_COMPILER_COMPILERORACLE_HPP
--- a/src/hotspot/share/compiler/directivesParser.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/directivesParser.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -94,11 +94,13 @@
     if (file_handle != -1) {
       // read contents into resource array
       char* buffer = NEW_RESOURCE_ARRAY(char, st.st_size+1);
-      size_t num_read = os::read(file_handle, (char*) buffer, st.st_size);
-      buffer[num_read] = '\0';
-      // close file
-      os::close(file_handle);
-      return parse_string(buffer, stream) > 0;
+      ssize_t num_read = os::read(file_handle, (char*) buffer, st.st_size);
+      if (num_read >= 0) {
+        buffer[num_read] = '\0';
+        // close file
+        os::close(file_handle);
+        return parse_string(buffer, stream) > 0;
+      }
     }
   }
   return false;
--- a/src/hotspot/share/compiler/directivesParser.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/directivesParser.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_DIRECTIVESPARSER_HPP
-#define SHARE_VM_COMPILER_DIRECTIVESPARSER_HPP
+#ifndef SHARE_COMPILER_DIRECTIVESPARSER_HPP
+#define SHARE_COMPILER_DIRECTIVESPARSER_HPP
 
 #include "utilities/json.hpp"
 #include "compiler/compilerDirectives.hpp"
@@ -139,4 +139,4 @@
   static uint mask(keytype kt);
 };
 
-#endif // SHARE_VM_COMPILER_DIRECTIVESPARSER_HPP
+#endif // SHARE_COMPILER_DIRECTIVESPARSER_HPP
--- a/src/hotspot/share/compiler/disassembler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/disassembler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_DISASSEMBLER_HPP
-#define SHARE_VM_COMPILER_DISASSEMBLER_HPP
+#ifndef SHARE_COMPILER_DISASSEMBLER_HPP
+#define SHARE_COMPILER_DISASSEMBLER_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "runtime/globals.hpp"
@@ -90,4 +90,4 @@
   }
 };
 
-#endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP
+#endif // SHARE_COMPILER_DISASSEMBLER_HPP
--- a/src/hotspot/share/compiler/methodLiveness.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/methodLiveness.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -31,7 +31,6 @@
 #include "interpreter/bytecodes.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
-#include "runtime/timerTrace.hpp"
 #include "utilities/bitMap.inline.hpp"
 
 // The MethodLiveness class performs a simple liveness analysis on a method
@@ -71,64 +70,6 @@
 //    a single set (_exception_exit), losing some information but simplifying the
 //    analysis.
 
-
-//--------------------------------------------------------------------------
-// The BitCounter class is used for counting the number of bits set in
-// some BitMap.  It is only used when collecting liveness statistics.
-
-#ifndef PRODUCT
-
-class BitCounter: public BitMapClosure {
- private:
-  int _count;
- public:
-  BitCounter() : _count(0) {}
-
-  // Callback when bit in map is set
-  virtual bool do_bit(size_t offset) {
-    _count++;
-    return true;
-  }
-
-  int count() {
-    return _count;
-  }
-};
-
-
-//--------------------------------------------------------------------------
-
-
-// Counts
-long MethodLiveness::_total_bytes = 0;
-int  MethodLiveness::_total_methods = 0;
-
-long MethodLiveness::_total_blocks = 0;
-int  MethodLiveness::_max_method_blocks = 0;
-
-long MethodLiveness::_total_edges = 0;
-int  MethodLiveness::_max_block_edges = 0;
-
-long MethodLiveness::_total_exc_edges = 0;
-int  MethodLiveness::_max_block_exc_edges = 0;
-
-long MethodLiveness::_total_method_locals = 0;
-int  MethodLiveness::_max_method_locals = 0;
-
-long MethodLiveness::_total_locals_queried = 0;
-long MethodLiveness::_total_live_locals_queried = 0;
-
-long MethodLiveness::_total_visits = 0;
-
-#endif
-
-// Timers
-elapsedTimer MethodLiveness::_time_build_graph;
-elapsedTimer MethodLiveness::_time_gen_kill;
-elapsedTimer MethodLiveness::_time_flow;
-elapsedTimer MethodLiveness::_time_query;
-elapsedTimer MethodLiveness::_time_total;
-
 MethodLiveness::MethodLiveness(Arena* arena, ciMethod* method)
 #ifdef COMPILER1
   : _bci_block_start(arena, method->code_size())
@@ -146,52 +87,11 @@
     tty->print("# Computing liveness information for ");
     method()->print_short_name();
   }
-
-  if (TimeLivenessAnalysis) _time_total.start();
 #endif
 
-  {
-    TraceTime buildGraph(NULL, &_time_build_graph, TimeLivenessAnalysis);
-    init_basic_blocks();
-  }
-  {
-    TraceTime genKill(NULL, &_time_gen_kill, TimeLivenessAnalysis);
-    init_gen_kill();
-  }
-  {
-    TraceTime flow(NULL, &_time_flow, TimeLivenessAnalysis);
-    propagate_liveness();
-  }
-
-#ifndef PRODUCT
-  if (TimeLivenessAnalysis) _time_total.stop();
-
-  if (TimeLivenessAnalysis) {
-    // Collect statistics
-    _total_bytes += method()->code_size();
-    _total_methods++;
-
-    int num_blocks = _block_count;
-    _total_blocks += num_blocks;
-    _max_method_blocks = MAX2(num_blocks,_max_method_blocks);
-
-    for (int i=0; i<num_blocks; i++) {
-      BasicBlock *block = _block_list[i];
-
-      int numEdges = block->_normal_predecessors->length();
-      int numExcEdges = block->_exception_predecessors->length();
-
-      _total_edges += numEdges;
-      _total_exc_edges += numExcEdges;
-      _max_block_edges = MAX2(numEdges,_max_block_edges);
-      _max_block_exc_edges = MAX2(numExcEdges,_max_block_exc_edges);
-    }
-
-    int numLocals = _bit_map_size_bits;
-    _total_method_locals += numLocals;
-    _max_method_locals = MAX2(numLocals,_max_method_locals);
-  }
-#endif
+  init_basic_blocks();
+  init_gen_kill();
+  propagate_liveness();
 }
 
 
@@ -440,7 +340,6 @@
 
   while ((block = work_list_get()) != NULL) {
     block->propagate(this);
-    NOT_PRODUCT(_total_visits++;)
   }
 }
 
@@ -473,8 +372,6 @@
   MethodLivenessResult answer;
 
   if (_block_count > 0) {
-    if (TimeLivenessAnalysis) _time_total.start();
-    if (TimeLivenessAnalysis) _time_query.start();
 
     assert( 0 <= bci && bci < method()->code_size(), "bci out of range" );
     BasicBlock *block = _block_map->at(bci);
@@ -501,73 +398,12 @@
       tty->print(" @ %d : result is ", bci);
       answer.print_on(tty);
     }
-
-    if (TimeLivenessAnalysis) _time_query.stop();
-    if (TimeLivenessAnalysis) _time_total.stop();
 #endif
   }
 
-#ifndef PRODUCT
-  if (TimeLivenessAnalysis) {
-    // Collect statistics.
-    _total_locals_queried += _bit_map_size_bits;
-    BitCounter counter;
-    answer.iterate(&counter);
-    _total_live_locals_queried += counter.count();
-  }
-#endif
-
   return answer;
 }
 
-
-#ifndef PRODUCT
-
-void MethodLiveness::print_times() {
-  tty->print_cr ("Accumulated liveness analysis times/statistics:");
-  tty->print_cr ("-----------------------------------------------");
-  tty->print_cr ("  Total         : %3.3f sec.", _time_total.seconds());
-  tty->print_cr ("    Build graph : %3.3f sec. (%2.2f%%)", _time_build_graph.seconds(),
-                 _time_build_graph.seconds() * 100 / _time_total.seconds());
-  tty->print_cr ("    Gen / Kill  : %3.3f sec. (%2.2f%%)", _time_gen_kill.seconds(),
-                 _time_gen_kill.seconds() * 100 / _time_total.seconds());
-  tty->print_cr ("    Dataflow    : %3.3f sec. (%2.2f%%)", _time_flow.seconds(),
-                 _time_flow.seconds() * 100 / _time_total.seconds());
-  tty->print_cr ("    Query       : %3.3f sec. (%2.2f%%)", _time_query.seconds(),
-                 _time_query.seconds() * 100 / _time_total.seconds());
-  tty->print_cr ("  #bytes   : %8ld (%3.0f bytes per sec)",
-                 _total_bytes,
-                 _total_bytes / _time_total.seconds());
-  tty->print_cr ("  #methods : %8d (%3.0f methods per sec)",
-                 _total_methods,
-                 _total_methods / _time_total.seconds());
-  tty->print_cr ("    avg locals : %3.3f    max locals : %3d",
-                 (float)_total_method_locals / _total_methods,
-                 _max_method_locals);
-  tty->print_cr ("    avg blocks : %3.3f    max blocks : %3d",
-                 (float)_total_blocks / _total_methods,
-                 _max_method_blocks);
-  tty->print_cr ("    avg bytes  : %3.3f",
-                 (float)_total_bytes / _total_methods);
-  tty->print_cr ("  #blocks  : %8ld",
-                 _total_blocks);
-  tty->print_cr ("    avg normal predecessors    : %3.3f  max normal predecessors    : %3d",
-                 (float)_total_edges / _total_blocks,
-                 _max_block_edges);
-  tty->print_cr ("    avg exception predecessors : %3.3f  max exception predecessors : %3d",
-                 (float)_total_exc_edges / _total_blocks,
-                 _max_block_exc_edges);
-  tty->print_cr ("    avg visits                 : %3.3f",
-                 (float)_total_visits / _total_blocks);
-  tty->print_cr ("  #locals queried : %8ld    #live : %8ld   %%live : %2.2f%%",
-                 _total_locals_queried,
-                 _total_live_locals_queried,
-                 100.0 * _total_live_locals_queried / _total_locals_queried);
-}
-
-#endif
-
-
 MethodLiveness::BasicBlock::BasicBlock(MethodLiveness *analyzer, int start, int limit) :
          _entry(analyzer->arena(),          analyzer->bit_map_size_bits()),
          _normal_exit(analyzer->arena(),    analyzer->bit_map_size_bits()),
--- a/src/hotspot/share/compiler/methodLiveness.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/methodLiveness.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_METHODLIVENESS_HPP
-#define SHARE_VM_COMPILER_METHODLIVENESS_HPP
+#ifndef SHARE_COMPILER_METHODLIVENESS_HPP
+#define SHARE_COMPILER_METHODLIVENESS_HPP
 
 #include "utilities/bitMap.hpp"
 #include "utilities/growableArray.hpp"
@@ -222,41 +222,6 @@
   BasicBlock *work_list_get();
   void work_list_add(BasicBlock *block);
 
-  // -- Timing and Statistics.
-
-
-  // Timers
-  static elapsedTimer _time_build_graph;
-  static elapsedTimer _time_gen_kill;
-  static elapsedTimer _time_flow;
-  static elapsedTimer _time_query;
-  static elapsedTimer _time_total;
-
-#ifndef PRODUCT
-
-  // Counts
-  static long _total_bytes;
-  static int  _total_methods;
-
-  static long _total_blocks;
-  static int  _max_method_blocks;
-
-  static long _total_edges;
-  static int  _max_block_edges;
-
-  static long _total_exc_edges;
-  static int  _max_block_exc_edges;
-
-  static long _total_method_locals;
-  static int  _max_method_locals;
-
-  static long _total_locals_queried;
-  static long _total_live_locals_queried;
-
-  static long _total_visits;
-
-#endif
-
  public:
   // Create a liveness analyzer for a method
   MethodLiveness(Arena* arena, ciMethod* method);
@@ -271,7 +236,6 @@
   const BitMap& get_bci_block_start() const { return _bci_block_start; }
 #endif // COMPILER1
 
-  static void print_times() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_COMPILER_METHODLIVENESS_HPP
+#endif // SHARE_COMPILER_METHODLIVENESS_HPP
--- a/src/hotspot/share/compiler/methodMatcher.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/methodMatcher.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_METHODMATCHER_HPP
-#define SHARE_VM_COMPILER_METHODMATCHER_HPP
+#ifndef SHARE_COMPILER_METHODMATCHER_HPP
+#define SHARE_COMPILER_METHODMATCHER_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -123,5 +123,4 @@
   InlineMatcher* clone();
 };
 
-#endif // SHARE_VM_COMPILER_METHODMATCHER_HPP
-
+#endif // SHARE_COMPILER_METHODMATCHER_HPP
--- a/src/hotspot/share/compiler/oopMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/compiler/oopMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_COMPILER_OOPMAP_HPP
-#define SHARE_VM_COMPILER_OOPMAP_HPP
+#ifndef SHARE_COMPILER_OOPMAP_HPP
+#define SHARE_COMPILER_OOPMAP_HPP
 
 #include "code/compressedStream.hpp"
 #include "code/vmreg.hpp"
@@ -467,4 +467,4 @@
 };
 #endif // COMPILER2_OR_JVMCI
 
-#endif // SHARE_VM_COMPILER_OOPMAP_HPP
+#endif // SHARE_COMPILER_OOPMAP_HPP
--- a/src/hotspot/share/gc/cms/adaptiveFreeList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/adaptiveFreeList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_ADAPTIVEFREELIST_HPP
-#define SHARE_VM_GC_CMS_ADAPTIVEFREELIST_HPP
+#ifndef SHARE_GC_CMS_ADAPTIVEFREELIST_HPP
+#define SHARE_GC_CMS_ADAPTIVEFREELIST_HPP
 
 #include "gc/cms/allocationStats.hpp"
 #include "memory/freeList.hpp"
@@ -226,4 +226,4 @@
 #endif  // NOT PRODUCT
 };
 
-#endif // SHARE_VM_GC_CMS_ADAPTIVEFREELIST_HPP
+#endif // SHARE_GC_CMS_ADAPTIVEFREELIST_HPP
--- a/src/hotspot/share/gc/cms/allocationStats.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/allocationStats.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_ALLOCATIONSTATS_HPP
-#define SHARE_VM_GC_CMS_ALLOCATIONSTATS_HPP
+#ifndef SHARE_GC_CMS_ALLOCATIONSTATS_HPP
+#define SHARE_GC_CMS_ALLOCATIONSTATS_HPP
 
 #include "gc/shared/gcUtil.hpp"
 #include "logging/log.hpp"
@@ -150,4 +150,4 @@
   )
 };
 
-#endif // SHARE_VM_GC_CMS_ALLOCATIONSTATS_HPP
+#endif // SHARE_GC_CMS_ALLOCATIONSTATS_HPP
--- a/src/hotspot/share/gc/cms/cmsCollectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsCollectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSCOLLECTORPOLICY_HPP
-#define SHARE_VM_GC_CMS_CMSCOLLECTORPOLICY_HPP
+#ifndef SHARE_GC_CMS_CMSCOLLECTORPOLICY_HPP
+#define SHARE_GC_CMS_CMSCOLLECTORPOLICY_HPP
 
 #include "gc/shared/collectorPolicy.hpp"
 
@@ -35,4 +35,4 @@
   ConcurrentMarkSweepPolicy() {}
 };
 
-#endif // SHARE_VM_GC_CMS_CMSCOLLECTORPOLICY_HPP
+#endif // SHARE_GC_CMS_CMSCOLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/cms/cmsHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSHEAP_HPP
-#define SHARE_VM_GC_CMS_CMSHEAP_HPP
+#ifndef SHARE_GC_CMS_CMSHEAP_HPP
+#define SHARE_GC_CMS_CMSHEAP_HPP
 
 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
 #include "gc/cms/parNewGeneration.hpp"
@@ -139,4 +139,4 @@
   void collect_mostly_concurrent(GCCause::Cause cause);
 };
 
-#endif // SHARE_VM_GC_CMS_CMSHEAP_HPP
+#endif // SHARE_GC_CMS_CMSHEAP_HPP
--- a/src/hotspot/share/gc/cms/cmsLockVerifier.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsLockVerifier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSLOCKVERIFIER_HPP
-#define SHARE_VM_GC_CMS_CMSLOCKVERIFIER_HPP
+#ifndef SHARE_GC_CMS_CMSLOCKVERIFIER_HPP
+#define SHARE_GC_CMS_CMSLOCKVERIFIER_HPP
 
 #include "runtime/mutex.hpp"
 
@@ -44,4 +44,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_CMS_CMSLOCKVERIFIER_HPP
+#endif // SHARE_GC_CMS_CMSLOCKVERIFIER_HPP
--- a/src/hotspot/share/gc/cms/cmsOopClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsOopClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSOOPCLOSURES_HPP
-#define SHARE_VM_GC_CMS_CMSOOPCLOSURES_HPP
+#ifndef SHARE_GC_CMS_CMSOOPCLOSURES_HPP
+#define SHARE_GC_CMS_CMSOOPCLOSURES_HPP
 
 #include "gc/shared/genOopClosures.hpp"
 #include "gc/shared/taskqueue.hpp"
@@ -330,4 +330,4 @@
   virtual void do_oop(narrowOop* p);
 };
 
-#endif // SHARE_VM_GC_CMS_CMSOOPCLOSURES_HPP
+#endif // SHARE_GC_CMS_CMSOOPCLOSURES_HPP
--- a/src/hotspot/share/gc/cms/cmsOopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsOopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
+#define SHARE_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
 
 #include "gc/cms/cmsOopClosures.hpp"
 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
@@ -85,4 +85,4 @@
 DO_OOP_WORK_IMPL(CMSInnerParMarkAndPushClosure)
 DO_OOP_WORK_IMPL(CMSParKeepAliveClosure)
 
-#endif // SHARE_VM_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
+#endif // SHARE_GC_CMS_CMSOOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/cms/cmsVMOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/cmsVMOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CMSVMOPERATIONS_HPP
-#define SHARE_VM_GC_CMS_CMSVMOPERATIONS_HPP
+#ifndef SHARE_GC_CMS_CMSVMOPERATIONS_HPP
+#define SHARE_GC_CMS_CMSVMOPERATIONS_HPP
 
 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
 #include "gc/shared/gcCause.hpp"
@@ -143,4 +143,4 @@
   virtual bool evaluate_at_safepoint() const;
 };
 
-#endif // SHARE_VM_GC_CMS_CMSVMOPERATIONS_HPP
+#endif // SHARE_GC_CMS_CMSVMOPERATIONS_HPP
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
-#define SHARE_VM_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
+#ifndef SHARE_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
+#define SHARE_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
 
 #include "gc/cms/adaptiveFreeList.hpp"
 #include "gc/cms/promotionInfo.hpp"
@@ -741,4 +741,4 @@
   return CompactibleFreeListSpace::adjustObjectSize(sz);
 }
 
-#endif // SHARE_VM_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
+#endif // SHARE_GC_CMS_COMPACTIBLEFREELISTSPACE_HPP
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
-#define SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
+#ifndef SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
+#define SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
 
 #include "gc/cms/cmsOopClosures.hpp"
 #include "gc/cms/gSpaceCounters.hpp"
@@ -1793,4 +1793,4 @@
 };
 
 
-#endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
+#endif // SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_HPP
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
-#define SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
+#ifndef SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
+#define SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
 
 #include "gc/cms/cmsHeap.hpp"
 #include "gc/cms/cmsLockVerifier.hpp"
@@ -469,4 +469,4 @@
   _t->par_mark_range(mr2);
 }
 
-#endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
+#endif // SHARE_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
-#define SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
+#ifndef SHARE_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
+#define SHARE_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
 
 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
 #include "gc/shared/concurrentGCThread.hpp"
@@ -166,4 +166,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
+#endif // SHARE_GC_CMS_CONCURRENTMARKSWEEPTHREAD_HPP
--- a/src/hotspot/share/gc/cms/freeChunk.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/freeChunk.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_FREECHUNK_HPP
-#define SHARE_VM_GC_CMS_FREECHUNK_HPP
+#ifndef SHARE_GC_CMS_FREECHUNK_HPP
+#define SHARE_GC_CMS_FREECHUNK_HPP
 
 #include "memory/memRegion.hpp"
 #include "oops/markOop.hpp"
@@ -147,4 +147,4 @@
 extern size_t MinChunkSize;
 
 
-#endif // SHARE_VM_GC_CMS_FREECHUNK_HPP
+#endif // SHARE_GC_CMS_FREECHUNK_HPP
--- a/src/hotspot/share/gc/cms/gSpaceCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/gSpaceCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_GSPACECOUNTERS_HPP
-#define SHARE_VM_GC_CMS_GSPACECOUNTERS_HPP
+#ifndef SHARE_GC_CMS_GSPACECOUNTERS_HPP
+#define SHARE_GC_CMS_GSPACECOUNTERS_HPP
 
 #include "gc/shared/generation.hpp"
 #include "gc/shared/generationCounters.hpp"
@@ -107,4 +107,4 @@
     }
 };
 
-#endif // SHARE_VM_GC_CMS_GSPACECOUNTERS_HPP
+#endif // SHARE_GC_CMS_GSPACECOUNTERS_HPP
--- a/src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_CMS_COMMANDLINEFLAGCONSTRAINTSCMS_HPP
-#define SHARE_GC_CMS_COMMANDLINEFLAGCONSTRAINTSCMS_HPP
+#ifndef SHARE_GC_CMS_JVMFLAGCONSTRAINTSCMS_HPP
+#define SHARE_GC_CMS_JVMFLAGCONSTRAINTSCMS_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -45,4 +45,4 @@
 JVMFlag::Error ParallelGCThreadsConstraintFuncCMS(uint value, bool verbose);
 JVMFlag::Error OldPLABSizeConstraintFuncCMS(size_t value, bool verbose);
 
-#endif // SHARE_GC_CMS_COMMANDLINEFLAGCONSTRAINTSCMS_HPP
+#endif // SHARE_GC_CMS_JVMFLAGCONSTRAINTSCMS_HPP
--- a/src/hotspot/share/gc/cms/parNewGeneration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/parNewGeneration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_PARNEWGENERATION_HPP
-#define SHARE_VM_GC_CMS_PARNEWGENERATION_HPP
+#ifndef SHARE_GC_CMS_PARNEWGENERATION_HPP
+#define SHARE_GC_CMS_PARNEWGENERATION_HPP
 
 #include "gc/cms/parOopClosures.hpp"
 #include "gc/serial/defNewGeneration.hpp"
@@ -415,4 +415,4 @@
   static oop real_forwardee(oop obj);
 };
 
-#endif // SHARE_VM_GC_CMS_PARNEWGENERATION_HPP
+#endif // SHARE_GC_CMS_PARNEWGENERATION_HPP
--- a/src/hotspot/share/gc/cms/parNewGeneration.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/parNewGeneration.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_PARNEWGENERATION_INLINE_HPP
-#define SHARE_VM_GC_CMS_PARNEWGENERATION_INLINE_HPP
+#ifndef SHARE_GC_CMS_PARNEWGENERATION_INLINE_HPP
+#define SHARE_GC_CMS_PARNEWGENERATION_INLINE_HPP
 
 #include "gc/cms/parNewGeneration.hpp"
 #include "gc/shared/plab.inline.hpp"
@@ -34,4 +34,4 @@
   if (obj != NULL) return obj;
   else return alloc_in_to_space_slow(word_sz);
 }
-#endif // SHARE_VM_GC_CMS_PARNEWGENERATION_INLINE_HPP
+#endif // SHARE_GC_CMS_PARNEWGENERATION_INLINE_HPP
--- a/src/hotspot/share/gc/cms/parOopClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/parOopClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
-#define SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
+#ifndef SHARE_GC_CMS_PAROOPCLOSURES_HPP
+#define SHARE_GC_CMS_PAROOPCLOSURES_HPP
 
 #include "gc/shared/genOopClosures.hpp"
 #include "gc/shared/taskqueue.hpp"
@@ -143,4 +143,4 @@
   virtual void do_void();
 };
 
-#endif // SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
+#endif // SHARE_GC_CMS_PAROOPCLOSURES_HPP
--- a/src/hotspot/share/gc/cms/parOopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/parOopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_PAROOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_CMS_PAROOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_CMS_PAROOPCLOSURES_INLINE_HPP
+#define SHARE_GC_CMS_PAROOPCLOSURES_INLINE_HPP
 
 #include "gc/cms/cmsHeap.hpp"
 #include "gc/cms/parNewGeneration.hpp"
@@ -143,4 +143,4 @@
 inline void ParScanWithoutBarrierClosure::do_oop(oop* p)       { ParScanClosure::do_oop_work(p, false, false); }
 inline void ParScanWithoutBarrierClosure::do_oop(narrowOop* p) { ParScanClosure::do_oop_work(p, false, false); }
 
-#endif // SHARE_VM_GC_CMS_PAROOPCLOSURES_INLINE_HPP
+#endif // SHARE_GC_CMS_PAROOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/cms/promotionInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/promotionInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_PROMOTIONINFO_HPP
-#define SHARE_VM_GC_CMS_PROMOTIONINFO_HPP
+#ifndef SHARE_GC_CMS_PROMOTIONINFO_HPP
+#define SHARE_GC_CMS_PROMOTIONINFO_HPP
 
 #include "gc/cms/freeChunk.hpp"
 
@@ -185,4 +185,4 @@
 };
 
 
-#endif // SHARE_VM_GC_CMS_PROMOTIONINFO_HPP
+#endif // SHARE_GC_CMS_PROMOTIONINFO_HPP
--- a/src/hotspot/share/gc/cms/promotionInfo.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/promotionInfo.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -74,4 +74,4 @@
   assert(_firstIndex == _nextIndex, "empty buffer");
 }
 
-#endif //  SHARE_GC_CMS_PROMOTIONINFO_INLINE_HPP
+#endif // SHARE_GC_CMS_PROMOTIONINFO_INLINE_HPP
--- a/src/hotspot/share/gc/cms/vmStructs_cms.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/vmStructs_cms.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP
-#define SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP
+#ifndef SHARE_GC_CMS_VMSTRUCTS_CMS_HPP
+#define SHARE_GC_CMS_VMSTRUCTS_CMS_HPP
 
 #include "gc/cms/cmsHeap.hpp"
 #include "gc/cms/compactibleFreeListSpace.hpp"
@@ -88,4 +88,4 @@
   declare_constant(Generation::ConcurrentMarkSweep)                       \
   declare_constant(Generation::ParNew)
 
-#endif // SHARE_VM_GC_CMS_VMSTRUCTS_CMS_HPP
+#endif // SHARE_GC_CMS_VMSTRUCTS_CMS_HPP
--- a/src/hotspot/share/gc/cms/yieldingWorkgroup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/cms/yieldingWorkgroup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CMS_YIELDINGWORKGROUP_HPP
-#define SHARE_VM_GC_CMS_YIELDINGWORKGROUP_HPP
+#ifndef SHARE_GC_CMS_YIELDINGWORKGROUP_HPP
+#define SHARE_GC_CMS_YIELDINGWORKGROUP_HPP
 
 #include "gc/shared/workgroup.hpp"
 #include "utilities/macros.hpp"
@@ -269,4 +269,4 @@
   void internal_note_finish();
 };
 
-#endif // SHARE_VM_GC_CMS_YIELDINGWORKGROUP_HPP
+#endif // SHARE_GC_CMS_YIELDINGWORKGROUP_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonBarrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonBarrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_BARRIERSET_HPP
-#define SHARE_VM_GC_EPSILON_BARRIERSET_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONBARRIERSET_HPP
+#define SHARE_GC_EPSILON_EPSILONBARRIERSET_HPP
 
 #include "gc/shared/barrierSetAssembler.hpp"
 #include "gc/shared/barrierSet.hpp"
@@ -54,4 +54,4 @@
   typedef ::EpsilonBarrierSet type;
 };
 
-#endif // SHARE_VM_GC_EPSILON_BARRIERSET_HPP
+#endif // SHARE_GC_EPSILON_EPSILONBARRIERSET_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonCollectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonCollectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_COLLECTORPOLICY_HPP
-#define SHARE_VM_GC_EPSILON_COLLECTORPOLICY_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONCOLLECTORPOLICY_HPP
+#define SHARE_GC_EPSILON_EPSILONCOLLECTORPOLICY_HPP
 
 #include "gc/shared/collectorPolicy.hpp"
 
@@ -39,4 +39,4 @@
   EpsilonCollectorPolicy() : CollectorPolicy() {};
 };
 
-#endif // SHARE_VM_GC_EPSILON_COLLECTORPOLICY_HPP
+#endif // SHARE_GC_EPSILON_EPSILONCOLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -161,12 +161,8 @@
   {
     size_t last = _last_heap_print;
     if ((used - last >= _step_heap_print) && Atomic::cmpxchg(used, &_last_heap_print, last) == last) {
-      log_info(gc)("Heap: " SIZE_FORMAT "M reserved, " SIZE_FORMAT "M (%.2f%%) committed, " SIZE_FORMAT "M (%.2f%%) used",
-                   max_capacity() / M,
-                   capacity() / M,
-                   capacity() * 100.0 / max_capacity(),
-                   used / M,
-                   used * 100.0 / max_capacity());
+      print_heap_info(used);
+      print_metaspace_info();
     }
   }
 
@@ -268,13 +264,26 @@
 }
 
 void EpsilonHeap::collect(GCCause::Cause cause) {
-  log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause));
+  switch (cause) {
+    case GCCause::_metadata_GC_threshold:
+    case GCCause::_metadata_GC_clear_soft_refs:
+      // Receiving these causes means the VM itself entered the safepoint for metadata collection.
+      // While Epsilon does not do GC, it has to perform sizing adjustments, otherwise we would
+      // re-enter the safepoint again very soon.
+
+      assert(SafepointSynchronize::is_at_safepoint(), "Expected at safepoint");
+      log_info(gc)("GC request for \"%s\" is handled", GCCause::to_string(cause));
+      MetaspaceGC::compute_new_size();
+      print_metaspace_info();
+      break;
+    default:
+      log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause));
+  }
   _monitoring_support->update_counters();
 }
 
 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) {
-  log_info(gc)("Full GC request for \"%s\" is ignored", GCCause::to_string(gc_cause()));
-  _monitoring_support->update_counters();
+  collect(gc_cause());
 }
 
 void EpsilonHeap::safe_object_iterate(ObjectClosure *cl) {
@@ -289,13 +298,46 @@
 
   st->print_cr("Allocation space:");
   _space->print_on(st);
+
+  MetaspaceUtils::print_on(st);
 }
 
 void EpsilonHeap::print_tracing_info() const {
-  Log(gc) log;
-  size_t allocated_kb = used() / K;
-  log.info("Total allocated: " SIZE_FORMAT " KB",
-           allocated_kb);
-  log.info("Average allocation rate: " SIZE_FORMAT " KB/sec",
-           (size_t)(allocated_kb * NANOSECS_PER_SEC / os::elapsed_counter()));
+  print_heap_info(used());
+  print_metaspace_info();
 }
+
+void EpsilonHeap::print_heap_info(size_t used) const {
+  size_t reserved  = max_capacity();
+  size_t committed = capacity();
+
+  if (reserved != 0) {
+    log_info(gc)("Heap: " SIZE_FORMAT "%s reserved, " SIZE_FORMAT "%s (%.2f%%) committed, "
+                 SIZE_FORMAT "%s (%.2f%%) used",
+            byte_size_in_proper_unit(reserved),  proper_unit_for_byte_size(reserved),
+            byte_size_in_proper_unit(committed), proper_unit_for_byte_size(committed),
+            committed * 100.0 / reserved,
+            byte_size_in_proper_unit(used),      proper_unit_for_byte_size(used),
+            used * 100.0 / reserved);
+  } else {
+    log_info(gc)("Heap: no reliable data");
+  }
+}
+
+void EpsilonHeap::print_metaspace_info() const {
+  size_t reserved  = MetaspaceUtils::reserved_bytes();
+  size_t committed = MetaspaceUtils::committed_bytes();
+  size_t used      = MetaspaceUtils::used_bytes();
+
+  if (reserved != 0) {
+    log_info(gc, metaspace)("Metaspace: " SIZE_FORMAT "%s reserved, " SIZE_FORMAT "%s (%.2f%%) committed, "
+                            SIZE_FORMAT "%s (%.2f%%) used",
+            byte_size_in_proper_unit(reserved),  proper_unit_for_byte_size(reserved),
+            byte_size_in_proper_unit(committed), proper_unit_for_byte_size(committed),
+            committed * 100.0 / reserved,
+            byte_size_in_proper_unit(used),      proper_unit_for_byte_size(used),
+            used * 100.0 / reserved);
+  } else {
+    log_info(gc, metaspace)("Metaspace: no reliable data");
+  }
+}
--- a/src/hotspot/share/gc/epsilon/epsilonHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_COLLECTEDHEAP_HPP
-#define SHARE_VM_GC_EPSILON_COLLECTEDHEAP_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONHEAP_HPP
+#define SHARE_GC_EPSILON_EPSILONHEAP_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/softRefPolicy.hpp"
@@ -147,6 +147,10 @@
   virtual void print_on(outputStream* st) const;
   virtual void print_tracing_info() const;
 
+private:
+  void print_heap_info(size_t used) const;
+  void print_metaspace_info() const;
+
 };
 
-#endif // SHARE_VM_GC_EPSILON_COLLECTEDHEAP_HPP
+#endif // SHARE_GC_EPSILON_EPSILONHEAP_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonMemoryPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonMemoryPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_EPSILONMEMORYPOOL_HPP
-#define SHARE_VM_GC_EPSILON_EPSILONMEMORYPOOL_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONMEMORYPOOL_HPP
+#define SHARE_GC_EPSILON_EPSILONMEMORYPOOL_HPP
 
 #include "gc/epsilon/epsilonHeap.hpp"
 #include "services/memoryPool.hpp"
@@ -41,4 +41,4 @@
   MemoryUsage get_memory_usage();
 };
 
-#endif // SHARE_VM_GC_EPSILON_EPSILONMEMORYPOOL_HPP
+#endif // SHARE_GC_EPSILON_EPSILONMEMORYPOOL_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonMonitoringSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonMonitoringSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
-#define SHARE_VM_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
+#define SHARE_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
 
 #include "memory/allocation.hpp"
 
@@ -40,5 +40,4 @@
   void update_counters();
 };
 
-#endif // SHARE_VM_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
-
+#endif // SHARE_GC_EPSILON_EPSILONMONITORINGSUPPORT_HPP
--- a/src/hotspot/share/gc/epsilon/epsilonThreadLocalData.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilonThreadLocalData.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
-#define SHARE_VM_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
+#ifndef SHARE_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
+#define SHARE_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
 
 #include "runtime/thread.hpp"
 #include "utilities/debug.hpp"
@@ -67,4 +67,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
+#endif // SHARE_GC_EPSILON_EPSILONTHREADLOCALDATA_HPP
--- a/src/hotspot/share/gc/epsilon/epsilon_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/epsilon_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_EPSILON_GLOBALS_HPP
-#define SHARE_VM_GC_EPSILON_GLOBALS_HPP
+#ifndef SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP
+#define SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP
 
 #include "runtime/globals.hpp"
 //
@@ -93,4 +93,4 @@
           "at the potential expense of memory waste.")                      \
           range(1, max_intx)
 
-#endif // SHARE_VM_GC_EPSILON_GLOBALS_HPP
+#endif // SHARE_GC_EPSILON_EPSILON_GLOBALS_HPP
--- a/src/hotspot/share/gc/epsilon/vmStructs_epsilon.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/epsilon/vmStructs_epsilon.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_EPSILON_VMSTRUCTS_HPP
-#define SHARE_GC_EPSILON_VMSTRUCTS_HPP
+#ifndef SHARE_GC_EPSILON_VMSTRUCTS_EPSILON_HPP
+#define SHARE_GC_EPSILON_VMSTRUCTS_EPSILON_HPP
 
 #include "gc/epsilon/epsilonHeap.hpp"
 #include "gc/shared/space.hpp"
@@ -43,4 +43,4 @@
 #define VM_INT_CONSTANTS_EPSILONGC(declare_constant,                \
                                   declare_constant_with_value)
 
-#endif // SHARE_GC_EPSILON_VMSTRUCTS_HPP
+#endif // SHARE_GC_EPSILON_VMSTRUCTS_EPSILON_HPP
--- a/src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/c2/g1BarrierSetC2.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_SHARED_C2_G1BARRIERSETC2_HPP
-#define SHARE_GC_SHARED_C2_G1BARRIERSETC2_HPP
+#ifndef SHARE_GC_G1_C2_G1BARRIERSETC2_HPP
+#define SHARE_GC_G1_C2_G1BARRIERSETC2_HPP
 
 #include "gc/shared/c2/cardTableBarrierSetC2.hpp"
 
@@ -96,4 +96,4 @@
   virtual bool escape_add_to_con_graph(ConnectionGraph* conn_graph, PhaseGVN* gvn, Unique_Node_List* delayed_worklist, Node* n, uint opcode) const;
 };
 
-#endif // SHARE_GC_SHARED_C2_G1BARRIERSETC2_HPP
+#endif // SHARE_GC_G1_C2_G1BARRIERSETC2_HPP
--- a/src/hotspot/share/gc/g1/collectionSetChooser.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/collectionSetChooser.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_COLLECTIONSETCHOOSER_HPP
-#define SHARE_VM_GC_G1_COLLECTIONSETCHOOSER_HPP
+#ifndef SHARE_GC_G1_COLLECTIONSETCHOOSER_HPP
+#define SHARE_GC_G1_COLLECTIONSETCHOOSER_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "utilities/growableArray.hpp"
@@ -199,5 +199,4 @@
   bool should_add(HeapRegion* hr) { return _chooser->should_add(hr); }
 };
 
-#endif // SHARE_VM_GC_G1_COLLECTIONSETCHOOSER_HPP
-
+#endif // SHARE_GC_G1_COLLECTIONSETCHOOSER_HPP
--- a/src/hotspot/share/gc/g1/dirtyCardQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/dirtyCardQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_DIRTYCARDQUEUE_HPP
-#define SHARE_VM_GC_G1_DIRTYCARDQUEUE_HPP
+#ifndef SHARE_GC_G1_DIRTYCARDQUEUE_HPP
+#define SHARE_GC_G1_DIRTYCARDQUEUE_HPP
 
 #include "gc/shared/ptrQueue.hpp"
 #include "memory/allocation.hpp"
@@ -164,4 +164,4 @@
 
 };
 
-#endif // SHARE_VM_GC_G1_DIRTYCARDQUEUE_HPP
+#endif // SHARE_GC_G1_DIRTYCARDQUEUE_HPP
--- a/src/hotspot/share/gc/g1/evacuationInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2013, 2015, 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_VM_GC_G1_EVACUATIONINFO_HPP
-#define SHARE_VM_GC_G1_EVACUATIONINFO_HPP
-
-#include "memory/allocation.hpp"
-
-class EvacuationInfo : public StackObj {
-  uint _collectionset_regions;
-  uint _allocation_regions;
-  size_t _collectionset_used_before;
-  size_t _collectionset_used_after;
-  size_t _alloc_regions_used_before;
-  size_t _bytes_copied;
-  uint   _regions_freed;
-
-public:
-  EvacuationInfo() : _collectionset_regions(0), _allocation_regions(0), _collectionset_used_before(0),
-                     _collectionset_used_after(0), _alloc_regions_used_before(0),
-                     _bytes_copied(0), _regions_freed(0) { }
-
-  void set_collectionset_regions(uint collectionset_regions) {
-    _collectionset_regions = collectionset_regions;
-  }
-
-  void set_allocation_regions(uint allocation_regions) {
-    _allocation_regions = allocation_regions;
-  }
-
-  void set_collectionset_used_before(size_t used) {
-    _collectionset_used_before = used;
-  }
-
-  void increment_collectionset_used_after(size_t used) {
-    _collectionset_used_after += used;
-  }
-
-  void set_alloc_regions_used_before(size_t used) {
-    _alloc_regions_used_before = used;
-  }
-
-  void set_bytes_copied(size_t copied) {
-    _bytes_copied = copied;
-  }
-
-  void set_regions_freed(uint freed) {
-    _regions_freed += freed;
-  }
-
-  uint   collectionset_regions()     { return _collectionset_regions; }
-  uint   allocation_regions()        { return _allocation_regions; }
-  size_t collectionset_used_before() { return _collectionset_used_before; }
-  size_t collectionset_used_after()  { return _collectionset_used_after; }
-  size_t alloc_regions_used_before() { return _alloc_regions_used_before; }
-  size_t bytes_copied()              { return _bytes_copied; }
-  uint   regions_freed()             { return _regions_freed; }
-};
-
-#endif // SHARE_VM_GC_G1_EVACUATIONINFO_HPP
--- a/src/hotspot/share/gc/g1/g1AllocRegion.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1AllocRegion.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ALLOCREGION_HPP
-#define SHARE_VM_GC_G1_G1ALLOCREGION_HPP
+#ifndef SHARE_GC_G1_G1ALLOCREGION_HPP
+#define SHARE_GC_G1_G1ALLOCREGION_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "gc/g1/g1EvacStats.hpp"
@@ -281,4 +281,4 @@
   virtual HeapRegion* release();
 };
 
-#endif // SHARE_VM_GC_G1_G1ALLOCREGION_HPP
+#endif // SHARE_GC_G1_G1ALLOCREGION_HPP
--- a/src/hotspot/share/gc/g1/g1AllocRegion.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1AllocRegion.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ALLOCREGION_INLINE_HPP
-#define SHARE_VM_GC_G1_G1ALLOCREGION_INLINE_HPP
+#ifndef SHARE_GC_G1_G1ALLOCREGION_INLINE_HPP
+#define SHARE_GC_G1_G1ALLOCREGION_INLINE_HPP
 
 #include "gc/g1/g1AllocRegion.hpp"
 #include "gc/g1/heapRegion.inline.hpp"
@@ -143,4 +143,4 @@
   return NULL;
 }
 
-#endif // SHARE_VM_GC_G1_G1ALLOCREGION_INLINE_HPP
+#endif // SHARE_GC_G1_G1ALLOCREGION_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1Allocator.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Allocator.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,6 +26,7 @@
 #include "gc/g1/g1Allocator.inline.hpp"
 #include "gc/g1/g1AllocRegion.inline.hpp"
 #include "gc/g1/g1EvacStats.inline.hpp"
+#include "gc/g1/g1EvacuationInfo.hpp"
 #include "gc/g1/g1CollectedHeap.inline.hpp"
 #include "gc/g1/g1Policy.hpp"
 #include "gc/g1/heapRegion.inline.hpp"
@@ -57,7 +58,7 @@
   return _retained_old_gc_alloc_region == hr;
 }
 
-void G1Allocator::reuse_retained_old_region(EvacuationInfo& evacuation_info,
+void G1Allocator::reuse_retained_old_region(G1EvacuationInfo& evacuation_info,
                                             OldGCAllocRegion* old,
                                             HeapRegion** retained_old) {
   HeapRegion* retained_region = *retained_old;
@@ -90,7 +91,7 @@
   }
 }
 
-void G1Allocator::init_gc_alloc_regions(EvacuationInfo& evacuation_info) {
+void G1Allocator::init_gc_alloc_regions(G1EvacuationInfo& evacuation_info) {
   assert_at_safepoint_on_vm_thread();
 
   _survivor_is_full = false;
@@ -103,7 +104,7 @@
                             &_retained_old_gc_alloc_region);
 }
 
-void G1Allocator::release_gc_alloc_regions(EvacuationInfo& evacuation_info) {
+void G1Allocator::release_gc_alloc_regions(G1EvacuationInfo& evacuation_info) {
   evacuation_info.set_allocation_regions(survivor_gc_alloc_region()->count() +
                                          old_gc_alloc_region()->count());
   survivor_gc_alloc_region()->release();
--- a/src/hotspot/share/gc/g1/g1Allocator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Allocator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,15 +22,15 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ALLOCATOR_HPP
-#define SHARE_VM_GC_G1_G1ALLOCATOR_HPP
+#ifndef SHARE_GC_G1_G1ALLOCATOR_HPP
+#define SHARE_GC_G1_G1ALLOCATOR_HPP
 
 #include "gc/g1/g1AllocRegion.hpp"
 #include "gc/g1/g1InCSetState.hpp"
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/plab.hpp"
 
-class EvacuationInfo;
+class G1EvacuationInfo;
 
 // Interface to keep track of which regions G1 is currently allocating into. Provides
 // some accessors (e.g. allocating into them, or getting their occupancy).
@@ -63,7 +63,7 @@
   void set_survivor_full();
   void set_old_full();
 
-  void reuse_retained_old_region(EvacuationInfo& evacuation_info,
+  void reuse_retained_old_region(G1EvacuationInfo& evacuation_info,
                                  OldGCAllocRegion* old,
                                  HeapRegion** retained);
 
@@ -92,8 +92,8 @@
   void init_mutator_alloc_region();
   void release_mutator_alloc_region();
 
-  void init_gc_alloc_regions(EvacuationInfo& evacuation_info);
-  void release_gc_alloc_regions(EvacuationInfo& evacuation_info);
+  void init_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
+  void release_gc_alloc_regions(G1EvacuationInfo& evacuation_info);
   void abandon_gc_alloc_regions();
   bool is_retained_old_region(HeapRegion* hr);
 
@@ -288,4 +288,4 @@
   static inline bool archive_check_enabled();
 };
 
-#endif // SHARE_VM_GC_G1_G1ALLOCATOR_HPP
+#endif // SHARE_GC_G1_G1ALLOCATOR_HPP
--- a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ALLOCATOR_INLINE_HPP
-#define SHARE_VM_GC_G1_G1ALLOCATOR_INLINE_HPP
+#ifndef SHARE_GC_G1_G1ALLOCATOR_INLINE_HPP
+#define SHARE_GC_G1_G1ALLOCATOR_INLINE_HPP
 
 #include "gc/g1/g1Allocator.hpp"
 #include "gc/g1/g1AllocRegion.inline.hpp"
@@ -164,4 +164,4 @@
                                       in_open_archive_range(object)));
 }
 
-#endif // SHARE_VM_GC_G1_G1ALLOCATOR_HPP
+#endif // SHARE_GC_G1_G1ALLOCATOR_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1Analytics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Analytics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1MEASUREMENTS_HPP
-#define SHARE_VM_GC_G1_G1MEASUREMENTS_HPP
+#ifndef SHARE_GC_G1_G1ANALYTICS_HPP
+#define SHARE_GC_G1_G1ANALYTICS_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -158,4 +158,4 @@
   double last_known_gc_end_time_sec() const;
 };
 
-#endif // SHARE_VM_GC_G1_G1MEASUREMENTS_HPP
+#endif // SHARE_GC_G1_G1ANALYTICS_HPP
--- a/src/hotspot/share/gc/g1/g1BarrierSet.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BarrierSet.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -55,8 +55,8 @@
                       make_barrier_set_c2<G1BarrierSetC2>(),
                       card_table,
                       BarrierSet::FakeRtti(BarrierSet::G1BarrierSet)),
-  _satb_mark_queue_buffer_allocator(G1SATBBufferSize, SATB_Q_FL_lock),
-  _dirty_card_queue_buffer_allocator(G1UpdateBufferSize, DirtyCardQ_FL_lock),
+  _satb_mark_queue_buffer_allocator("SATB Buffer Allocator", G1SATBBufferSize),
+  _dirty_card_queue_buffer_allocator("DC Buffer Allocator", G1UpdateBufferSize),
   _satb_mark_queue_set(),
   _dirty_card_queue_set()
 {}
--- a/src/hotspot/share/gc/g1/g1BarrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BarrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1BARRIERSET_HPP
-#define SHARE_VM_GC_G1_G1BARRIERSET_HPP
+#ifndef SHARE_GC_G1_G1BARRIERSET_HPP
+#define SHARE_GC_G1_G1BARRIERSET_HPP
 
 #include "gc/g1/dirtyCardQueue.hpp"
 #include "gc/g1/g1SATBMarkQueueSet.hpp"
@@ -126,4 +126,4 @@
   typedef ::G1BarrierSet type;
 };
 
-#endif // SHARE_VM_GC_G1_G1BARRIERSET_HPP
+#endif // SHARE_GC_G1_G1BARRIERSET_HPP
--- a/src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1BARRIERSET_INLINE_HPP
-#define SHARE_VM_GC_G1_G1BARRIERSET_INLINE_HPP
+#ifndef SHARE_GC_G1_G1BARRIERSET_INLINE_HPP
+#define SHARE_GC_G1_G1BARRIERSET_INLINE_HPP
 
 #include "gc/g1/g1BarrierSet.hpp"
 #include "gc/g1/g1CardTable.hpp"
@@ -105,4 +105,4 @@
   Raw::oop_store(addr, new_value);
 }
 
-#endif // SHARE_VM_GC_G1_G1BARRIERSET_INLINE_HPP
+#endif // SHARE_GC_G1_G1BARRIERSET_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1BiasedArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BiasedArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1BIASEDARRAY_HPP
-#define SHARE_VM_GC_G1_G1BIASEDARRAY_HPP
+#ifndef SHARE_GC_G1_G1BIASEDARRAY_HPP
+#define SHARE_GC_G1_G1BIASEDARRAY_HPP
 
 #include "memory/memRegion.hpp"
 #include "utilities/debug.hpp"
@@ -194,4 +194,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1BIASEDARRAY_HPP
+#endif // SHARE_GC_G1_G1BIASEDARRAY_HPP
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_HPP
-#define SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_HPP
+#ifndef SHARE_GC_G1_G1BLOCKOFFSETTABLE_HPP
+#define SHARE_GC_G1_G1BLOCKOFFSETTABLE_HPP
 
 #include "gc/g1/g1RegionToSpaceMapper.hpp"
 #include "gc/shared/blockOffsetTable.hpp"
@@ -232,4 +232,4 @@
   void print_on(outputStream* out) PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_HPP
+#endif // SHARE_GC_G1_G1BLOCKOFFSETTABLE_HPP
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
-#define SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
+#ifndef SHARE_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
+#define SHARE_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
 
 #include "gc/g1/g1BlockOffsetTable.hpp"
 #include "gc/g1/heapRegion.hpp"
@@ -165,4 +165,4 @@
   return q;
 }
 
-#endif // SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
+#endif // SHARE_GC_G1_G1BLOCKOFFSETTABLE_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1CardCounts.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CardCounts.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CARDCOUNTS_HPP
-#define SHARE_VM_GC_G1_G1CARDCOUNTS_HPP
+#ifndef SHARE_GC_G1_G1CARDCOUNTS_HPP
+#define SHARE_GC_G1_G1CARDCOUNTS_HPP
 
 #include "gc/g1/g1CardTable.hpp"
 #include "gc/g1/g1RegionToSpaceMapper.hpp"
@@ -128,4 +128,4 @@
   void clear_all();
 };
 
-#endif // SHARE_VM_GC_G1_G1CARDCOUNTS_HPP
+#endif // SHARE_GC_G1_G1CARDCOUNTS_HPP
--- a/src/hotspot/share/gc/g1/g1CardTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CardTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CARDTABLE_HPP
-#define SHARE_VM_GC_G1_G1CARDTABLE_HPP
+#ifndef SHARE_GC_G1_G1CARDTABLE_HPP
+#define SHARE_GC_G1_G1CARDTABLE_HPP
 
 #include "gc/g1/g1RegionToSpaceMapper.hpp"
 #include "gc/shared/cardTable.hpp"
@@ -110,4 +110,4 @@
   virtual bool is_in_young(oop obj) const;
 };
 
-#endif // SHARE_VM_GC_G1_G1CARDTABLE_HPP
+#endif // SHARE_GC_G1_G1CARDTABLE_HPP
--- a/src/hotspot/share/gc/g1/g1CardTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CardTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CARDTABLE_INLINE_HPP
-#define SHARE_VM_GC_G1_G1CARDTABLE_INLINE_HPP
+#ifndef SHARE_GC_G1_G1CARDTABLE_INLINE_HPP
+#define SHARE_GC_G1_G1CARDTABLE_INLINE_HPP
 
 #include "gc/g1/g1CardTable.hpp"
 
@@ -37,4 +37,4 @@
   _byte_map[card_index] = val;
 }
 
-#endif // SHARE_VM_GC_G1_G1CARDTABLE_INLINE_HPP
+#endif // SHARE_GC_G1_G1CARDTABLE_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1CodeBlobClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CodeBlobClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CODEBLOBCLOSURE_HPP
-#define SHARE_VM_GC_G1_G1CODEBLOBCLOSURE_HPP
+#ifndef SHARE_GC_G1_G1CODEBLOBCLOSURE_HPP
+#define SHARE_GC_G1_G1CODEBLOBCLOSURE_HPP
 
 #include "gc/g1/g1CollectedHeap.hpp"
 #include "memory/iterator.hpp"
@@ -57,5 +57,4 @@
   void do_code_blob(CodeBlob* cb);
 };
 
-#endif // SHARE_VM_GC_G1_G1CODEBLOBCLOSURE_HPP
-
+#endif // SHARE_GC_G1_G1CODEBLOBCLOSURE_HPP
--- a/src/hotspot/share/gc/g1/g1CodeCacheRemSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CodeCacheRemSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CODECACHEREMSET_HPP
-#define SHARE_VM_GC_G1_G1CODECACHEREMSET_HPP
+#ifndef SHARE_GC_G1_G1CODECACHEREMSET_HPP
+#define SHARE_GC_G1_G1CODECACHEREMSET_HPP
 
 class CodeBlobClosure;
 class G1CodeRootSetTable;
@@ -84,4 +84,4 @@
 
 };
 
-#endif // SHARE_VM_GC_G1_G1CODECACHEREMSET_HPP
+#endif // SHARE_GC_G1_G1CODECACHEREMSET_HPP
--- a/src/hotspot/share/gc/g1/g1CodeRootSetTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CodeRootSetTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_GC_G1_G1CODEROOTSETTABLE_HPP
-#define SHARE_VM_GC_G1_G1CODEROOTSETTABLE_HPP
+#ifndef SHARE_GC_G1_G1CODEROOTSETTABLE_HPP
+#define SHARE_GC_G1_G1CODEROOTSETTABLE_HPP
 
 #include "utilities/hashtable.hpp"
 
@@ -73,4 +73,4 @@
   size_t mem_size();
 };
 
-#endif /* SHARE_VM_GC_G1_G1CODEROOTSETTABLE_HPP */
+#endif // SHARE_GC_G1_G1CODEROOTSETTABLE_HPP
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -2918,7 +2918,7 @@
 
   // Inner scope for scope based logging, timers, and stats collection
   {
-    EvacuationInfo evacuation_info;
+    G1EvacuationInfo evacuation_info;
 
     if (collector_state()->in_initial_mark_gc()) {
       // We are about to start a marking cycle, so we increment the
@@ -3899,7 +3899,7 @@
   phase_times->record_optional_evacuation((os::elapsedTime() - start_time_sec) * 1000.0);
 }
 
-void G1CollectedHeap::post_evacuate_collection_set(EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* per_thread_states) {
+void G1CollectedHeap::post_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* per_thread_states) {
   // Also cleans the card table from temporary duplicate detection information used
   // during UpdateRS/ScanRS.
   g1_rem_set()->cleanup_after_oops_into_collection_set_do();
@@ -4033,7 +4033,7 @@
   // be done serially in a single thread.
   class G1SerialFreeCollectionSetClosure : public HeapRegionClosure {
   private:
-    EvacuationInfo* _evacuation_info;
+    G1EvacuationInfo* _evacuation_info;
     const size_t* _surviving_young_words;
 
     // Bytes used in successfully evacuated regions before the evacuation.
@@ -4048,7 +4048,7 @@
 
     FreeRegionList _local_free_list;
   public:
-    G1SerialFreeCollectionSetClosure(EvacuationInfo* evacuation_info, const size_t* surviving_young_words) :
+    G1SerialFreeCollectionSetClosure(G1EvacuationInfo* evacuation_info, const size_t* surviving_young_words) :
       HeapRegionClosure(),
       _evacuation_info(evacuation_info),
       _surviving_young_words(surviving_young_words),
@@ -4202,7 +4202,7 @@
     policy->cset_regions_freed();
   }
 public:
-  G1FreeCollectionSetTask(G1CollectionSet* collection_set, EvacuationInfo* evacuation_info, const size_t* surviving_young_words) :
+  G1FreeCollectionSetTask(G1CollectionSet* collection_set, G1EvacuationInfo* evacuation_info, const size_t* surviving_young_words) :
     AbstractGangTask("G1 Free Collection Set"),
     _collection_set(collection_set),
     _cl(evacuation_info, surviving_young_words),
@@ -4285,7 +4285,7 @@
   }
 };
 
-void G1CollectedHeap::free_collection_set(G1CollectionSet* collection_set, EvacuationInfo& evacuation_info, const size_t* surviving_young_words) {
+void G1CollectedHeap::free_collection_set(G1CollectionSet* collection_set, G1EvacuationInfo& evacuation_info, const size_t* surviving_young_words) {
   _eden.clear();
 
   double free_cset_start_time = os::elapsedTime();
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,10 +22,9 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1COLLECTEDHEAP_HPP
-#define SHARE_VM_GC_G1_G1COLLECTEDHEAP_HPP
+#ifndef SHARE_GC_G1_G1COLLECTEDHEAP_HPP
+#define SHARE_GC_G1_G1COLLECTEDHEAP_HPP
 
-#include "gc/g1/evacuationInfo.hpp"
 #include "gc/g1/g1BarrierSet.hpp"
 #include "gc/g1/g1BiasedArray.hpp"
 #include "gc/g1/g1CardTable.hpp"
@@ -35,6 +34,7 @@
 #include "gc/g1/g1EdenRegions.hpp"
 #include "gc/g1/g1EvacFailure.hpp"
 #include "gc/g1/g1EvacStats.hpp"
+#include "gc/g1/g1EvacuationInfo.hpp"
 #include "gc/g1/g1GCPhaseTimes.hpp"
 #include "gc/g1/g1HeapTransition.hpp"
 #include "gc/g1/g1HeapVerifier.hpp"
@@ -735,7 +735,7 @@
   void evacuate_optional_regions(G1ParScanThreadStateSet* per_thread_states, G1OptionalCSet* ocset);
 
   void pre_evacuate_collection_set();
-  void post_evacuate_collection_set(EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
+  void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
 
   // Print the header for the per-thread termination statistics.
   static void print_termination_stats_hdr();
@@ -762,7 +762,7 @@
 
   // After a collection pause, convert the regions in the collection set into free
   // regions.
-  void free_collection_set(G1CollectionSet* collection_set, EvacuationInfo& evacuation_info, const size_t* surviving_young_words);
+  void free_collection_set(G1CollectionSet* collection_set, G1EvacuationInfo& evacuation_info, const size_t* surviving_young_words);
 
   // Abandon the current collection set without recording policy
   // statistics or updating free lists.
@@ -1452,4 +1452,4 @@
   inline bool offer_termination();
 };
 
-#endif // SHARE_VM_GC_G1_G1COLLECTEDHEAP_HPP
+#endif // SHARE_GC_G1_G1COLLECTEDHEAP_HPP
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
-#define SHARE_VM_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
+#ifndef SHARE_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
+#define SHARE_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
 
 #include "gc/g1/g1BarrierSet.hpp"
 #include "gc/g1/g1CollectedHeap.hpp"
@@ -293,4 +293,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
+#endif // SHARE_GC_G1_G1COLLECTEDHEAP_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1CollectionSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectionSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
-#define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
+#ifndef SHARE_GC_G1_G1COLLECTIONSET_HPP
+#define SHARE_GC_G1_G1COLLECTIONSET_HPP
 
 #include "gc/g1/collectionSetChooser.hpp"
 #include "utilities/debug.hpp"
@@ -275,5 +275,4 @@
   bool evacuation_failed();
 };
 
-#endif // SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
-
+#endif // SHARE_GC_G1_G1COLLECTIONSET_HPP
--- a/src/hotspot/share/gc/g1/g1CollectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1COLLECTORPOLICY_HPP
-#define SHARE_VM_GC_G1_G1COLLECTORPOLICY_HPP
+#ifndef SHARE_GC_G1_G1COLLECTORPOLICY_HPP
+#define SHARE_GC_G1_G1COLLECTORPOLICY_HPP
 
 #include "gc/shared/collectorPolicy.hpp"
 
@@ -41,4 +41,4 @@
   virtual size_t heap_reserved_size_bytes() const;
   virtual bool is_hetero_heap() const;
 };
-#endif // SHARE_VM_GC_G1_G1COLLECTORPOLICY_HPP
+#endif // SHARE_GC_G1_G1COLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/g1/g1CollectorState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1CollectorState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1COLLECTORSTATE_HPP
-#define SHARE_VM_GC_G1_G1COLLECTORSTATE_HPP
+#ifndef SHARE_GC_G1_G1COLLECTORSTATE_HPP
+#define SHARE_GC_G1_G1COLLECTORSTATE_HPP
 
 #include "gc/g1/g1YCTypes.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -123,4 +123,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1COLLECTORSTATE_HPP
+#endif // SHARE_GC_G1_G1COLLECTORSTATE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -2178,7 +2178,10 @@
 }
 
 bool G1CMTask::should_exit_termination() {
-  regular_clock_call();
+  if (!regular_clock_call()) {
+    return true;
+  }
+
   // This is called when we are in the termination protocol. We should
   // quit if, for some reason, this task wants to abort or the global
   // stack is not empty (this means that we can get work from it).
@@ -2189,12 +2192,12 @@
   assert(_words_scanned >= _words_scanned_limit ||
          _refs_reached >= _refs_reached_limit ,
          "shouldn't have been called otherwise");
-  regular_clock_call();
+  abort_marking_if_regular_check_fail();
 }
 
-void G1CMTask::regular_clock_call() {
+bool G1CMTask::regular_clock_call() {
   if (has_aborted()) {
-    return;
+    return false;
   }
 
   // First, we need to recalculate the words scanned and refs reached
@@ -2205,21 +2208,19 @@
 
   // (1) If an overflow has been flagged, then we abort.
   if (_cm->has_overflown()) {
-    set_has_aborted();
-    return;
+    return false;
   }
 
   // If we are not concurrent (i.e. we're doing remark) we don't need
   // to check anything else. The other steps are only needed during
   // the concurrent marking phase.
   if (!_cm->concurrent()) {
-    return;
+    return true;
   }
 
   // (2) If marking has been aborted for Full GC, then we also abort.
   if (_cm->has_aborted()) {
-    set_has_aborted();
-    return;
+    return false;
   }
 
   double curr_time_ms = os::elapsedVTime() * 1000.0;
@@ -2228,17 +2229,15 @@
   if (SuspendibleThreadSet::should_yield()) {
     // We should yield. To do this we abort the task. The caller is
     // responsible for yielding.
-    set_has_aborted();
-    return;
+    return false;
   }
 
   // (5) We check whether we've reached our time quota. If we have,
   // then we abort.
   double elapsed_time_ms = curr_time_ms - _start_time_ms;
   if (elapsed_time_ms > _time_target_ms) {
-    set_has_aborted();
     _has_timed_out = true;
-    return;
+    return false;
   }
 
   // (6) Finally, we check whether there are enough completed STAB
@@ -2247,9 +2246,9 @@
   if (!_draining_satb_buffers && satb_mq_set.process_completed_buffers()) {
     // we do need to process SATB buffers, we'll abort and restart
     // the marking task to do so
-    set_has_aborted();
-    return;
+    return false;
   }
+  return true;
 }
 
 void G1CMTask::recalculate_limits() {
@@ -2404,7 +2403,7 @@
   // until we run out of buffers or we need to abort.
   while (!has_aborted() &&
          satb_mq_set.apply_closure_to_completed_buffer(&satb_cl)) {
-    regular_clock_call();
+    abort_marking_if_regular_check_fail();
   }
 
   _draining_satb_buffers = false;
@@ -2647,7 +2646,7 @@
       // If the iteration is successful, give up the region.
       if (mr.is_empty()) {
         giveup_current_region();
-        regular_clock_call();
+        abort_marking_if_regular_check_fail();
       } else if (_curr_region->is_humongous() && mr.start() == _curr_region->bottom()) {
         if (_next_mark_bitmap->is_marked(mr.start())) {
           // The object is marked - apply the closure
@@ -2656,10 +2655,10 @@
         // Even if this task aborted while scanning the humongous object
         // we can (and should) give up the current region.
         giveup_current_region();
-        regular_clock_call();
+        abort_marking_if_regular_check_fail();
       } else if (_next_mark_bitmap->iterate(&bitmap_closure, mr)) {
         giveup_current_region();
-        regular_clock_call();
+        abort_marking_if_regular_check_fail();
       } else {
         assert(has_aborted(), "currently the only way to do so");
         // The only way to abort the bitmap iteration is to return
@@ -2714,7 +2713,7 @@
       // block of empty regions. So we need to call the regular clock
       // method once round the loop to make sure it's called
       // frequently enough.
-      regular_clock_call();
+      abort_marking_if_regular_check_fail();
     }
 
     if (!has_aborted() && _curr_region == NULL) {
@@ -2792,6 +2791,7 @@
       guarantee(_cm->mark_stack_empty(), "only way to reach here");
       guarantee(_task_queue->size() == 0, "only way to reach here");
       guarantee(!_cm->has_overflown(), "only way to reach here");
+      guarantee(!has_aborted(), "should never happen if termination has completed");
     } else {
       // Apparently there's more work to do. Let's abort this task. It
       // will restart it and we can hopefully find more things to do.
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARK_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARK_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARK_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARK_HPP
 
 #include "gc/g1/g1ConcurrentMarkBitMap.hpp"
 #include "gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp"
@@ -727,7 +727,11 @@
   // Supposed to be called regularly during a marking step as
   // it checks a bunch of conditions that might cause the marking step
   // to abort
-  void regular_clock_call();
+  // Return true if the marking step should continue. Otherwise, return false to abort
+  bool regular_clock_call();
+
+  // Set abort flag if regular_clock_call() check fails
+  inline void abort_marking_if_regular_check_fail();
 
   // Test whether obj might have already been passed over by the
   // mark bitmap scan, and so needs to be pushed onto the mark stack.
@@ -869,4 +873,4 @@
   ~G1PrintRegionLivenessInfoClosure();
 };
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARK_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARK_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARK_INLINE_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARK_INLINE_HPP
 
 #include "gc/g1/g1CollectedHeap.inline.hpp"
 #include "gc/g1/g1ConcurrentMark.hpp"
@@ -210,6 +210,12 @@
   task(worker_id)->update_liveness(obj, size);
 }
 
+inline void G1CMTask::abort_marking_if_regular_check_fail() {
+  if (!regular_clock_call()) {
+    set_has_aborted();
+  }
+}
+
 inline bool G1CMTask::make_reference_grey(oop obj) {
   if (!_cm->mark_in_next_bitmap(_worker_id, obj)) {
     return false;
@@ -287,4 +293,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARK_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKBITMAP_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKBITMAP_HPP
 
 #include "gc/g1/g1RegionToSpaceMapper.hpp"
 #include "gc/shared/markBitMap.hpp"
@@ -81,4 +81,4 @@
   void clear_region(HeapRegion* hr);
 };
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARKBITMAP_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
 
 #include "gc/g1/g1ConcurrentMarkBitMap.hpp"
 #include "gc/shared/markBitMap.inline.hpp"
@@ -51,4 +51,4 @@
   return true;
 }
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARKBITMAP_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
 
 #include "oops/oopsHierarchy.hpp"
 
@@ -56,4 +56,4 @@
   size_t process_obj(oop obj);
 };
 
-#endif /* SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP */
+#endif // SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP
 
 #include "oops/oop.inline.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -33,4 +33,4 @@
   return obj->is_objArray() && ((size_t)((objArrayOop)obj)->size()) >= 2 * ObjArrayMarkingStride;
 }
 
-#endif /* SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP */
+#endif // SHARE_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKTHREAD_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKTHREAD_HPP
 
 #include "gc/shared/concurrentGCPhaseManager.hpp"
 #include "gc/shared/concurrentGCThread.hpp"
@@ -98,4 +98,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARKTHREAD_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkThread.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
+#define SHARE_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
 
 #include "gc/g1/g1ConcurrentMark.hpp"
 #include "gc/g1/g1ConcurrentMarkThread.hpp"
@@ -38,4 +38,4 @@
   return _vtime_mark_accum + _cm->all_task_accum_vtime();
 }
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTMARKTHREAD_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTREFINE_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTREFINE_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTREFINE_HPP
+#define SHARE_GC_G1_G1CONCURRENTREFINE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -136,4 +136,4 @@
   size_t red_zone() const        { return _red_zone;    }
 };
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTREFINE_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTREFINE_HPP
--- a/src/hotspot/share/gc/g1/g1ConcurrentRefineThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ConcurrentRefineThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1CONCURRENTREFINETHREAD_HPP
-#define SHARE_VM_GC_G1_G1CONCURRENTREFINETHREAD_HPP
+#ifndef SHARE_GC_G1_G1CONCURRENTREFINETHREAD_HPP
+#define SHARE_GC_G1_G1CONCURRENTREFINETHREAD_HPP
 
 #include "gc/g1/dirtyCardQueue.hpp"
 #include "gc/shared/concurrentGCThread.hpp"
@@ -67,4 +67,4 @@
   double vtime_accum() { return _vtime_accum; }
 };
 
-#endif // SHARE_VM_GC_G1_G1CONCURRENTREFINETHREAD_HPP
+#endif // SHARE_GC_G1_G1CONCURRENTREFINETHREAD_HPP
--- a/src/hotspot/share/gc/g1/g1EdenRegions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1EdenRegions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1EDENREGIONS_HPP
-#define SHARE_VM_GC_G1_G1EDENREGIONS_HPP
+#ifndef SHARE_GC_G1_G1EDENREGIONS_HPP
+#define SHARE_GC_G1_G1EDENREGIONS_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "runtime/globals.hpp"
@@ -46,4 +46,4 @@
   uint length() const { return _length; }
 };
 
-#endif // SHARE_VM_GC_G1_G1EDENREGIONS_HPP
+#endif // SHARE_GC_G1_G1EDENREGIONS_HPP
--- a/src/hotspot/share/gc/g1/g1EvacFailure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1EvacFailure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1EVACFAILURE_HPP
-#define SHARE_VM_GC_G1_G1EVACFAILURE_HPP
+#ifndef SHARE_GC_G1_G1EVACFAILURE_HPP
+#define SHARE_GC_G1_G1EVACFAILURE_HPP
 
 #include "gc/g1/g1OopClosures.hpp"
 #include "gc/g1/heapRegionManager.hpp"
@@ -45,4 +45,4 @@
   void work(uint worker_id);
 };
 
-#endif // SHARE_VM_GC_G1_G1EVACFAILURE_HPP
+#endif // SHARE_GC_G1_G1EVACFAILURE_HPP
--- a/src/hotspot/share/gc/g1/g1EvacStats.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1EvacStats.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1EVACSTATS_HPP
-#define SHARE_VM_GC_G1_G1EVACSTATS_HPP
+#ifndef SHARE_GC_G1_G1EVACSTATS_HPP
+#define SHARE_GC_G1_G1EVACSTATS_HPP
 
 #include "gc/shared/plab.hpp"
 
@@ -74,4 +74,4 @@
   inline void add_failure_used_and_waste(size_t used, size_t waste);
 };
 
-#endif // SHARE_VM_GC_G1_G1EVACSTATS_HPP
+#endif // SHARE_GC_G1_G1EVACSTATS_HPP
--- a/src/hotspot/share/gc/g1/g1EvacStats.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1EvacStats.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1EVACSTATS_INLINE_HPP
-#define SHARE_VM_GC_G1_G1EVACSTATS_INLINE_HPP
+#ifndef SHARE_GC_G1_G1EVACSTATS_INLINE_HPP
+#define SHARE_GC_G1_G1EVACSTATS_INLINE_HPP
 
 #include "gc/g1/g1EvacStats.hpp"
 #include "runtime/atomic.hpp"
@@ -42,4 +42,4 @@
   Atomic::add(waste, &_failure_waste);
 }
 
-#endif // SHARE_VM_GC_G1_G1EVACSTATS_INLINE_HPP
+#endif // SHARE_GC_G1_G1EVACSTATS_INLINE_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/g1/g1EvacuationInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2013, 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_GC_G1_G1EVACUATIONINFO_HPP
+#define SHARE_GC_G1_G1EVACUATIONINFO_HPP
+
+#include "memory/allocation.hpp"
+
+class G1EvacuationInfo : public StackObj {
+  uint _collectionset_regions;
+  uint _allocation_regions;
+  size_t _collectionset_used_before;
+  size_t _collectionset_used_after;
+  size_t _alloc_regions_used_before;
+  size_t _bytes_copied;
+  uint   _regions_freed;
+
+public:
+  G1EvacuationInfo() : _collectionset_regions(0), _allocation_regions(0), _collectionset_used_before(0),
+                     _collectionset_used_after(0), _alloc_regions_used_before(0),
+                     _bytes_copied(0), _regions_freed(0) { }
+
+  void set_collectionset_regions(uint collectionset_regions) {
+    _collectionset_regions = collectionset_regions;
+  }
+
+  void set_allocation_regions(uint allocation_regions) {
+    _allocation_regions = allocation_regions;
+  }
+
+  void set_collectionset_used_before(size_t used) {
+    _collectionset_used_before = used;
+  }
+
+  void increment_collectionset_used_after(size_t used) {
+    _collectionset_used_after += used;
+  }
+
+  void set_alloc_regions_used_before(size_t used) {
+    _alloc_regions_used_before = used;
+  }
+
+  void set_bytes_copied(size_t copied) {
+    _bytes_copied = copied;
+  }
+
+  void set_regions_freed(uint freed) {
+    _regions_freed += freed;
+  }
+
+  uint   collectionset_regions()     { return _collectionset_regions; }
+  uint   allocation_regions()        { return _allocation_regions; }
+  size_t collectionset_used_before() { return _collectionset_used_before; }
+  size_t collectionset_used_after()  { return _collectionset_used_after; }
+  size_t alloc_regions_used_before() { return _alloc_regions_used_before; }
+  size_t bytes_copied()              { return _bytes_copied; }
+  uint   regions_freed()             { return _regions_freed; }
+};
+
+#endif // SHARE_GC_G1_G1EVACUATIONINFO_HPP
--- a/src/hotspot/share/gc/g1/g1FromCardCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1FromCardCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1FROMCARDCACHE_HPP
-#define SHARE_VM_GC_G1_G1FROMCARDCACHE_HPP
+#ifndef SHARE_GC_G1_G1FROMCARDCACHE_HPP
+#define SHARE_GC_G1_G1FROMCARDCACHE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/ostream.hpp"
@@ -90,4 +90,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1FROMCARDCACHE_HPP
+#endif // SHARE_GC_G1_G1FROMCARDCACHE_HPP
--- a/src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1MARKSTACK_INLINE_HPP
-#define SHARE_VM_GC_G1_G1MARKSTACK_INLINE_HPP
+#ifndef SHARE_GC_G1_G1FULLGCMARKER_INLINE_HPP
+#define SHARE_GC_G1_G1FULLGCMARKER_INLINE_HPP
 
 #include "gc/g1/g1Allocator.inline.hpp"
 #include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp"
@@ -173,4 +173,4 @@
   _cld_closure.do_cld(cld);
 }
 
-#endif
+#endif // SHARE_GC_G1_G1FULLGCMARKER_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1FULLGCOOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_G1_G1FULLGCOOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_G1_G1FULLGCOOPCLOSURES_INLINE_HPP
+#define SHARE_GC_G1_G1FULLGCOOPCLOSURES_INLINE_HPP
 
 #include "gc/g1/g1Allocator.inline.hpp"
 #include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp"
@@ -101,4 +101,4 @@
   _marker->mark_and_push(p);
 }
 
-#endif
+#endif // SHARE_GC_G1_G1FULLGCOOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1FullGCScope.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1FullGCScope.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
-#define SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
+#ifndef SHARE_GC_G1_G1FULLGCSCOPE_HPP
+#define SHARE_GC_G1_G1FULLGCSCOPE_HPP
 
 #include "gc/g1/g1CollectedHeap.hpp"
 #include "gc/g1/g1HeapTransition.hpp"
@@ -65,4 +65,4 @@
   G1HeapTransition* heap_transition();
 };
 
-#endif //SHARE_VM_GC_G1_G1FULLGCSCOPE_HPP
+#endif // SHARE_GC_G1_G1FULLGCSCOPE_HPP
--- a/src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1GCPHASETIMES_HPP
-#define SHARE_VM_GC_G1_G1GCPHASETIMES_HPP
+#ifndef SHARE_GC_G1_G1GCPHASETIMES_HPP
+#define SHARE_GC_G1_G1GCPHASETIMES_HPP
 
 #include "gc/shared/referenceProcessorPhaseTimes.hpp"
 #include "gc/shared/weakProcessorPhaseTimes.hpp"
@@ -425,4 +425,4 @@
   virtual ~G1EvacPhaseTimesTracker();
 };
 
-#endif // SHARE_VM_GC_G1_G1GCPHASETIMES_HPP
+#endif // SHARE_GC_G1_G1GCPHASETIMES_HPP
--- a/src/hotspot/share/gc/g1/g1HRPrinter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HRPrinter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HRPRINTER_HPP
-#define SHARE_VM_GC_G1_G1HRPRINTER_HPP
+#ifndef SHARE_GC_G1_G1HRPRINTER_HPP
+#define SHARE_GC_G1_G1HRPRINTER_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "logging/log.hpp"
@@ -105,4 +105,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1HRPRINTER_HPP
+#endif // SHARE_GC_G1_G1HRPRINTER_HPP
--- a/src/hotspot/share/gc/g1/g1HeapRegionEventSender.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeapRegionEventSender.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
-#define SHARE_VM_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
+#ifndef SHARE_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
+#define SHARE_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -32,4 +32,4 @@
   static void send_events();
 };
 
-#endif // SHARE_VM_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
+#endif // SHARE_GC_G1_G1HEAPREGIONEVENTSENDER_HPP
--- a/src/hotspot/share/gc/g1/g1HeapRegionTraceType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeapRegionTraceType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HEAPREGIONTRACETYPE_HPP
-#define SHARE_VM_GC_G1_G1HEAPREGIONTRACETYPE_HPP
+#ifndef SHARE_GC_G1_G1HEAPREGIONTRACETYPE_HPP
+#define SHARE_GC_G1_G1HEAPREGIONTRACETYPE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -57,4 +57,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1HEAPREGIONTRACETYPE_HPP
+#endif // SHARE_GC_G1_G1HEAPREGIONTRACETYPE_HPP
--- a/src/hotspot/share/gc/g1/g1HeapSizingPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeapSizingPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HEAPSIZINGPOLICY_HPP
-#define SHARE_VM_GC_G1_G1HEAPSIZINGPOLICY_HPP
+#ifndef SHARE_GC_G1_G1HEAPSIZINGPOLICY_HPP
+#define SHARE_GC_G1_G1HEAPSIZINGPOLICY_HPP
 
 #include "memory/allocation.hpp"
 
@@ -60,4 +60,4 @@
   static G1HeapSizingPolicy* create(const G1CollectedHeap* g1h, const G1Analytics* analytics);
 };
 
-#endif // SRC_SHARE_VM_GC_G1_G1HEAPSIZINGPOLICY_HPP
+#endif // SHARE_GC_G1_G1HEAPSIZINGPOLICY_HPP
--- a/src/hotspot/share/gc/g1/g1HeapTransition.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeapTransition.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HEAPTRANSITION_HPP
-#define SHARE_VM_GC_G1_G1HEAPTRANSITION_HPP
+#ifndef SHARE_GC_G1_G1HEAPTRANSITION_HPP
+#define SHARE_GC_G1_G1HEAPTRANSITION_HPP
 
 #include "gc/shared/plab.hpp"
 
@@ -50,4 +50,4 @@
   void print();
 };
 
-#endif // SHARE_VM_GC_G1_G1HEAPTRANSITION_HPP
+#endif // SHARE_GC_G1_G1HEAPTRANSITION_HPP
--- a/src/hotspot/share/gc/g1/g1HeapVerifier.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeapVerifier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HEAPVERIFIER_HPP
-#define SHARE_VM_GC_G1_G1HEAPVERIFIER_HPP
+#ifndef SHARE_GC_G1_G1HEAPVERIFIER_HPP
+#define SHARE_GC_G1_G1HEAPVERIFIER_HPP
 
 #include "gc/g1/heapRegionSet.hpp"
 #include "memory/allocation.hpp"
@@ -119,4 +119,4 @@
   static void verify_archive_regions();
 };
 
-#endif // SHARE_VM_GC_G1_G1HEAPVERIFIER_HPP
+#endif // SHARE_GC_G1_G1HEAPVERIFIER_HPP
--- a/src/hotspot/share/gc/g1/g1HeterogeneousCollectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeterogeneousCollectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
-#define SHARE_VM_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
+#ifndef SHARE_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
+#define SHARE_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
 
 #include "gc/g1/g1CollectorPolicy.hpp"
 #include "gc/g1/g1HeterogeneousHeapYoungGenSizer.hpp"
@@ -45,4 +45,4 @@
   static size_t reasonable_max_memory_for_young();
 };
 
-#endif // SHARE_VM_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
+#endif // SHARE_GC_G1_G1HETEROGENEOUSCOLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/g1/g1HeterogeneousHeapPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeterogeneousHeapPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
-#define SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
+#ifndef SHARE_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
+#define SHARE_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
 
 #include "gc/g1/g1CollectorPolicy.hpp"
 #include "gc/g1/g1Policy.hpp"
@@ -45,4 +45,4 @@
 
   virtual bool force_upgrade_to_full();
 };
-#endif // SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
+#endif // SHARE_GC_G1_G1HETEROGENEOUSHEAPPOLICY_HPP
--- a/src/hotspot/share/gc/g1/g1HeterogeneousHeapYoungGenSizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HeterogeneousHeapYoungGenSizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
-#define SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
+#ifndef SHARE_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
+#define SHARE_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
 
 #include "gc/g1/g1YoungGenSizer.hpp"
 
@@ -48,4 +48,4 @@
   virtual void heap_size_changed(uint new_number_of_heap_regions);
 };
 
-#endif // SHARE_VM_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
+#endif // SHARE_GC_G1_G1HETEROGENEOUSHEAPYOUNGGENSIZER_HPP
--- a/src/hotspot/share/gc/g1/g1HotCardCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1HotCardCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1HOTCARDCACHE_HPP
-#define SHARE_VM_GC_G1_G1HOTCARDCACHE_HPP
+#ifndef SHARE_GC_G1_G1HOTCARDCACHE_HPP
+#define SHARE_GC_G1_G1HOTCARDCACHE_HPP
 
 #include "gc/g1/g1CardCounts.hpp"
 #include "gc/g1/g1_globals.hpp"
@@ -141,4 +141,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1HOTCARDCACHE_HPP
+#endif // SHARE_GC_G1_G1HOTCARDCACHE_HPP
--- a/src/hotspot/share/gc/g1/g1IHOPControl.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1IHOPControl.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1IHOPCONTROL_HPP
-#define SHARE_VM_GC_G1_G1IHOPCONTROL_HPP
+#ifndef SHARE_GC_G1_G1IHOPCONTROL_HPP
+#define SHARE_GC_G1_G1IHOPCONTROL_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/numberSeq.hpp"
@@ -146,4 +146,4 @@
   virtual void send_trace_event(G1NewTracer* tracer);
 };
 
-#endif // SHARE_VM_GC_G1_G1IHOPCONTROL_HPP
+#endif // SHARE_GC_G1_G1IHOPCONTROL_HPP
--- a/src/hotspot/share/gc/g1/g1InCSetState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1InCSetState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1INCSETSTATE_HPP
-#define SHARE_VM_GC_G1_G1INCSETSTATE_HPP
+#ifndef SHARE_GC_G1_G1INCSETSTATE_HPP
+#define SHARE_GC_G1_G1INCSETSTATE_HPP
 
 #include "gc/g1/g1BiasedArray.hpp"
 #include "gc/g1/heapRegion.hpp"
@@ -139,4 +139,4 @@
   void clear(const HeapRegion* hr) { return set_by_index(hr->hrm_index(), InCSetState::NotInCSet); }
 };
 
-#endif // SHARE_VM_GC_G1_G1INCSETSTATE_HPP
+#endif // SHARE_GC_G1_G1INCSETSTATE_HPP
--- a/src/hotspot/share/gc/g1/g1InitialMarkToMixedTimeTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1InitialMarkToMixedTimeTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
-#define SHARE_VM_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
+#ifndef SHARE_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
+#define SHARE_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/debug.hpp"
@@ -84,4 +84,4 @@
   bool has_result() const { return _mixed_start_time > 0.0 && _initial_mark_end_time > 0.0; }
 };
 
-#endif // SHARE_VM_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
+#endif // SHARE_GC_G1_G1INITIALMARKTOMIXEDTIMETRACKER_HPP
--- a/src/hotspot/share/gc/g1/g1MMUTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1MMUTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1MMUTRACKER_HPP
-#define SHARE_VM_GC_G1_G1MMUTRACKER_HPP
+#ifndef SHARE_GC_G1_G1MMUTRACKER_HPP
+#define SHARE_GC_G1_G1MMUTRACKER_HPP
 
 #include "gc/shared/gcId.hpp"
 #include "memory/allocation.hpp"
@@ -142,4 +142,4 @@
   virtual double when_sec(double current_time, double pause_time);
 };
 
-#endif // SHARE_VM_GC_G1_G1MMUTRACKER_HPP
+#endif // SHARE_GC_G1_G1MMUTRACKER_HPP
--- a/src/hotspot/share/gc/g1/g1MemoryPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1MemoryPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1MEMORYPOOL_HPP
-#define SHARE_VM_GC_G1_G1MEMORYPOOL_HPP
+#ifndef SHARE_GC_G1_G1MEMORYPOOL_HPP
+#define SHARE_GC_G1_G1MEMORYPOOL_HPP
 
 #include "gc/g1/g1MonitoringSupport.hpp"
 #include "services/memoryPool.hpp"
@@ -93,4 +93,4 @@
   MemoryUsage get_memory_usage();
 };
 
-#endif // SHARE_VM_GC_G1_G1MEMORYPOOL_HPP
+#endif // SHARE_GC_G1_G1MEMORYPOOL_HPP
--- a/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1MONITORINGSUPPORT_HPP
-#define SHARE_VM_GC_G1_G1MONITORINGSUPPORT_HPP
+#ifndef SHARE_GC_G1_G1MONITORINGSUPPORT_HPP
+#define SHARE_GC_G1_G1MONITORINGSUPPORT_HPP
 
 #include "gc/shared/collectorCounters.hpp"
 #include "gc/shared/generationCounters.hpp"
@@ -259,4 +259,4 @@
   G1MonitoringScope(G1MonitoringSupport* g1mm, bool full_gc, bool all_memory_pools_affected);
 };
 
-#endif // SHARE_VM_GC_G1_G1MONITORINGSUPPORT_HPP
+#endif // SHARE_GC_G1_G1MONITORINGSUPPORT_HPP
--- a/src/hotspot/share/gc/g1/g1OopClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1OopClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
-#define SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
+#ifndef SHARE_GC_G1_G1OOPCLOSURES_HPP
+#define SHARE_GC_G1_G1OOPCLOSURES_HPP
 
 #include "gc/g1/g1InCSetState.hpp"
 #include "memory/iterator.hpp"
@@ -251,4 +251,4 @@
   virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
 };
 
-#endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
+#endif // SHARE_GC_G1_G1OOPCLOSURES_HPP
--- a/src/hotspot/share/gc/g1/g1OopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1OopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1OOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_G1_G1OOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_G1_G1OOPCLOSURES_INLINE_HPP
+#define SHARE_GC_G1_G1OOPCLOSURES_INLINE_HPP
 
 #include "gc/g1/g1CollectedHeap.hpp"
 #include "gc/g1/g1ConcurrentMark.inline.hpp"
@@ -279,4 +279,4 @@
   rem_set->add_reference(p, _worker_id);
 }
 
-#endif // SHARE_VM_GC_G1_G1OOPCLOSURES_INLINE_HPP
+#endif // SHARE_GC_G1_G1OOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
-#define SHARE_VM_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
+#ifndef SHARE_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
+#define SHARE_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
 
 #include "memory/memRegion.hpp"
 #include "memory/virtualspace.hpp"
@@ -152,4 +152,4 @@
   void print();
 };
 
-#endif // SHARE_VM_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
+#endif // SHARE_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
--- a/src/hotspot/share/gc/g1/g1ParScanThreadState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ParScanThreadState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_HPP
-#define SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_HPP
+#ifndef SHARE_GC_G1_G1PARSCANTHREADSTATE_HPP
+#define SHARE_GC_G1_G1PARSCANTHREADSTATE_HPP
 
 #include "gc/g1/dirtyCardQueue.hpp"
 #include "gc/g1/g1CardTable.hpp"
@@ -249,4 +249,4 @@
   G1ParScanThreadState* new_par_scan_state(uint worker_id, size_t young_cset_length);
 };
 
-#endif // SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_HPP
+#endif // SHARE_GC_G1_G1PARSCANTHREADSTATE_HPP
--- a/src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
-#define SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
+#ifndef SHARE_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
+#define SHARE_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
 
 #include "gc/g1/g1CollectedHeap.inline.hpp"
 #include "gc/g1/g1OopStarChunkedList.inline.hpp"
@@ -223,4 +223,4 @@
   return &_oops_into_optional_regions[hr->index_in_opt_cset()];
 }
 
-#endif // SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
+#endif // SHARE_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1Policy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Policy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1POLICY_HPP
-#define SHARE_VM_GC_G1_G1POLICY_HPP
+#ifndef SHARE_GC_G1_G1POLICY_HPP
+#define SHARE_GC_G1_G1POLICY_HPP
 
 #include "gc/g1/g1CollectorPolicy.hpp"
 #include "gc/g1/g1CollectorState.hpp"
@@ -441,4 +441,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1POLICY_HPP
+#endif // SHARE_GC_G1_G1POLICY_HPP
--- a/src/hotspot/share/gc/g1/g1Predictions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1Predictions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1PREDICTIONS_HPP
-#define SHARE_VM_GC_G1_G1PREDICTIONS_HPP
+#ifndef SHARE_GC_G1_G1PREDICTIONS_HPP
+#define SHARE_GC_G1_G1PREDICTIONS_HPP
 
 #include "utilities/numberSeq.hpp"
 
@@ -59,4 +59,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1PREDICTIONS_HPP
+#endif // SHARE_GC_G1_G1PREDICTIONS_HPP
--- a/src/hotspot/share/gc/g1/g1RegionMarkStatsCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RegionMarkStatsCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_HPP
-#define SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_HPP
+#ifndef SHARE_GC_G1_G1REGIONMARKSTATSCACHE_HPP
+#define SHARE_GC_G1_G1REGIONMARKSTATSCACHE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -127,4 +127,4 @@
   size_t misses() const { return _cache_misses; }
 };
 
-#endif // SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_HPP
+#endif // SHARE_GC_G1_G1REGIONMARKSTATSCACHE_HPP
--- a/src/hotspot/share/gc/g1/g1RegionMarkStatsCache.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RegionMarkStatsCache.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
-#define SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
+#ifndef SHARE_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
+#define SHARE_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
 
 #include "gc/g1/g1RegionMarkStatsCache.hpp"
 #include "runtime/atomic.hpp"
@@ -51,4 +51,4 @@
   cur->clear();
 }
 
-#endif // SHARE_VM_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
+#endif // SHARE_GC_G1_G1REGIONMARKSTATSCACHE_INLINE_HPP
--- a/src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP
-#define SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP
+#ifndef SHARE_GC_G1_G1REGIONTOSPACEMAPPER_HPP
+#define SHARE_GC_G1_G1REGIONTOSPACEMAPPER_HPP
 
 #include "gc/g1/g1PageBasedVirtualSpace.hpp"
 #include "memory/allocation.hpp"
@@ -121,4 +121,4 @@
   virtual void commit_regions(uint start_idx, size_t num_regions = 1, WorkGang* pretouch_workers = NULL);
   virtual void uncommit_regions(uint start_idx, size_t num_regions = 1);
 };
-#endif // SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP
+#endif // SHARE_GC_G1_G1REGIONTOSPACEMAPPER_HPP
--- a/src/hotspot/share/gc/g1/g1RemSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RemSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REMSET_HPP
-#define SHARE_VM_GC_G1_G1REMSET_HPP
+#ifndef SHARE_GC_G1_G1REMSET_HPP
+#define SHARE_GC_G1_G1REMSET_HPP
 
 #include "gc/g1/dirtyCardQueue.hpp"
 #include "gc/g1/g1CardTable.hpp"
@@ -178,4 +178,4 @@
   size_t cards_skipped() const { return _cards_skipped; }
 };
 
-#endif // SHARE_VM_GC_G1_G1REMSET_HPP
+#endif // SHARE_GC_G1_G1REMSET_HPP
--- a/src/hotspot/share/gc/g1/g1RemSetSummary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RemSetSummary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REMSETSUMMARY_HPP
-#define SHARE_VM_GC_G1_G1REMSETSUMMARY_HPP
+#ifndef SHARE_GC_G1_G1REMSETSUMMARY_HPP
+#define SHARE_GC_G1_G1REMSETSUMMARY_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/ostream.hpp"
@@ -97,4 +97,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1REMSETSUMMARY_HPP
+#endif // SHARE_GC_G1_G1REMSETSUMMARY_HPP
--- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1REMSETTRACKINGPOLICY_HPP
-#define SHARE_VM_GC_G1_G1REMSETTRACKINGPOLICY_HPP
+#ifndef SHARE_GC_G1_G1REMSETTRACKINGPOLICY_HPP
+#define SHARE_GC_G1_G1REMSETTRACKINGPOLICY_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "gc/g1/heapRegionType.hpp"
@@ -54,5 +54,4 @@
   void update_at_free(HeapRegion* r);
 };
 
-#endif /* SHARE_VM_GC_G1_G1REMSETTRACKINGPOLICY_HPP */
-
+#endif // SHARE_GC_G1_G1REMSETTRACKINGPOLICY_HPP
--- a/src/hotspot/share/gc/g1/g1RootClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RootClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ROOTCLOSURESET_HPP
-#define SHARE_VM_GC_G1_G1ROOTCLOSURESET_HPP
+#ifndef SHARE_GC_G1_G1ROOTCLOSURES_HPP
+#define SHARE_GC_G1_G1ROOTCLOSURES_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/iterator.hpp"
@@ -65,4 +65,4 @@
   static G1EvacuationRootClosures* create_root_closures(G1ParScanThreadState* pss, G1CollectedHeap* g1h);
 };
 
-#endif // SHARE_VM_GC_G1_G1ROOTCLOSURESET_HPP
+#endif // SHARE_GC_G1_G1ROOTCLOSURES_HPP
--- a/src/hotspot/share/gc/g1/g1RootProcessor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1RootProcessor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1ROOTPROCESSOR_HPP
-#define SHARE_VM_GC_G1_G1ROOTPROCESSOR_HPP
+#ifndef SHARE_GC_G1_G1ROOTPROCESSOR_HPP
+#define SHARE_GC_G1_G1ROOTPROCESSOR_HPP
 
 #include "gc/shared/oopStorageParState.hpp"
 #include "gc/shared/strongRootsScope.hpp"
@@ -125,4 +125,4 @@
   uint n_workers() const;
 };
 
-#endif // SHARE_VM_GC_G1_G1ROOTPROCESSOR_HPP
+#endif // SHARE_GC_G1_G1ROOTPROCESSOR_HPP
--- a/src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1SATBMARKQUEUE_HPP
-#define SHARE_VM_GC_G1_G1SATBMARKQUEUE_HPP
+#ifndef SHARE_GC_G1_G1SATBMARKQUEUESET_HPP
+#define SHARE_GC_G1_G1SATBMARKQUEUESET_HPP
 
 #include "gc/shared/satbMarkQueue.hpp"
 
@@ -49,4 +49,4 @@
   virtual void filter(SATBMarkQueue* queue);
 };
 
-#endif // SHARE_VM_GC_G1_G1SATBMARKQUEUE_HPP
+#endif // SHARE_GC_G1_G1SATBMARKQUEUESET_HPP
--- a/src/hotspot/share/gc/g1/g1StringDedup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1StringDedup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1STRINGDEDUP_HPP
-#define SHARE_VM_GC_G1_G1STRINGDEDUP_HPP
+#ifndef SHARE_GC_G1_G1STRINGDEDUP_HPP
+#define SHARE_GC_G1_G1STRINGDEDUP_HPP
 
 //
 // G1 string deduplication candidate selection
@@ -109,4 +109,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1STRINGDEDUP_HPP
+#endif // SHARE_GC_G1_G1STRINGDEDUP_HPP
--- a/src/hotspot/share/gc/g1/g1StringDedupQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1StringDedupQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1STRINGDEDUPQUEUE_HPP
-#define SHARE_VM_GC_G1_G1STRINGDEDUPQUEUE_HPP
+#ifndef SHARE_GC_G1_G1STRINGDEDUPQUEUE_HPP
+#define SHARE_GC_G1_G1STRINGDEDUPQUEUE_HPP
 
 #include "gc/shared/stringdedup/stringDedupQueue.hpp"
 #include "memory/allocation.hpp"
@@ -84,4 +84,4 @@
   void verify_impl();
 };
 
-#endif // SHARE_VM_GC_G1_G1STRINGDEDUPQUEUE_HPP
+#endif // SHARE_GC_G1_G1STRINGDEDUPQUEUE_HPP
--- a/src/hotspot/share/gc/g1/g1StringDedupStat.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1StringDedupStat.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1STRINGDEDUPSTAT_HPP
-#define SHARE_VM_GC_G1_G1STRINGDEDUPSTAT_HPP
+#ifndef SHARE_GC_G1_G1STRINGDEDUPSTAT_HPP
+#define SHARE_GC_G1_G1STRINGDEDUPSTAT_HPP
 
 #include "gc/shared/stringdedup/stringDedupStat.hpp"
 
@@ -49,4 +49,4 @@
   void reset();
 };
 
-#endif // SHARE_VM_GC_G1_G1STRINGDEDUPSTAT_HPP
+#endif // SHARE_GC_G1_G1STRINGDEDUPSTAT_HPP
--- a/src/hotspot/share/gc/g1/g1SurvivorRegions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1SurvivorRegions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1SURVIVORREGIONS_HPP
-#define SHARE_VM_GC_G1_G1SURVIVORREGIONS_HPP
+#ifndef SHARE_GC_G1_G1SURVIVORREGIONS_HPP
+#define SHARE_GC_G1_G1SURVIVORREGIONS_HPP
 
 #include "runtime/globals.hpp"
 
@@ -51,4 +51,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1SURVIVORREGIONS_HPP
+#endif // SHARE_GC_G1_G1SURVIVORREGIONS_HPP
--- a/src/hotspot/share/gc/g1/g1VMOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1VMOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1VMOPERATIONS_HPP
-#define SHARE_VM_GC_G1_G1VMOPERATIONS_HPP
+#ifndef SHARE_GC_G1_G1VMOPERATIONS_HPP
+#define SHARE_GC_G1_G1VMOPERATIONS_HPP
 
 #include "gc/shared/gcId.hpp"
 #include "gc/shared/gcVMOperations.hpp"
@@ -81,4 +81,4 @@
   virtual void doit_epilogue();
 };
 
-#endif // SHARE_VM_GC_G1_G1VMOPERATIONS_HPP
+#endif // SHARE_GC_G1_G1VMOPERATIONS_HPP
--- a/src/hotspot/share/gc/g1/g1YCTypes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1YCTypes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1YCTYPES_HPP
-#define SHARE_VM_GC_G1_G1YCTYPES_HPP
+#ifndef SHARE_GC_G1_G1YCTYPES_HPP
+#define SHARE_GC_G1_G1YCTYPES_HPP
 
 #include "utilities/debug.hpp"
 
@@ -48,4 +48,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_G1YCTYPES_HPP
+#endif // SHARE_GC_G1_G1YCTYPES_HPP
--- a/src/hotspot/share/gc/g1/g1YoungGenSizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1YoungGenSizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1YOUNGGENSIZER_HPP
-#define SHARE_VM_GC_G1_G1YOUNGGENSIZER_HPP
+#ifndef SHARE_GC_G1_G1YOUNGGENSIZER_HPP
+#define SHARE_GC_G1_G1YOUNGGENSIZER_HPP
 
 #include "gc/g1/g1CollectorPolicy.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -111,4 +111,4 @@
   static G1YoungGenSizer* create_gen_sizer(G1CollectorPolicy* policy);
 };
 
-#endif // SHARE_VM_GC_G1_G1YOUNGGENSIZER_HPP
+#endif // SHARE_GC_G1_G1YOUNGGENSIZER_HPP
--- a/src/hotspot/share/gc/g1/g1YoungRemSetSamplingThread.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1YoungRemSetSamplingThread.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -62,9 +62,8 @@
   }
 
   // Check if enough time has passed since the last GC.
-  uintx time_since_last_gc;
-  if ((G1PeriodicGCInterval == 0) ||
-      ((time_since_last_gc = (uintx)Universe::heap()->millis_since_last_gc()) < G1PeriodicGCInterval)) {
+  uintx time_since_last_gc = (uintx)Universe::heap()->millis_since_last_gc();
+  if ((time_since_last_gc < G1PeriodicGCInterval)) {
     log_debug(gc, periodic)("Last GC occurred " UINTX_FORMAT "ms before which is below threshold " UINTX_FORMAT "ms. Skipping.",
                             time_since_last_gc, G1PeriodicGCInterval);
     return false;
@@ -83,6 +82,10 @@
 }
 
 void G1YoungRemSetSamplingThread::check_for_periodic_gc(){
+  // If disabled, just return.
+  if (G1PeriodicGCInterval == 0) {
+    return;
+  }
   if ((os::elapsedTime() - _last_periodic_gc_attempt_s) > (G1PeriodicGCInterval / 1000.0)) {
     log_debug(gc, periodic)("Checking for periodic GC.");
     if (should_start_periodic_gc()) {
@@ -95,6 +98,13 @@
 void G1YoungRemSetSamplingThread::run_service() {
   double vtime_start = os::elapsedVTime();
 
+  // Print a message about periodic GC configuration.
+  if (G1PeriodicGCInterval != 0) {
+    log_info(gc)("Periodic GC enabled with interval " UINTX_FORMAT "ms", G1PeriodicGCInterval);
+  } else {
+    log_info(gc)("Periodic GC disabled");
+  }
+
   while (!should_terminate()) {
     sample_young_list_rs_lengths();
 
--- a/src/hotspot/share/gc/g1/g1YoungRemSetSamplingThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1YoungRemSetSamplingThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
-#define SHARE_VM_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
+#ifndef SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
+#define SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
 
 #include "gc/shared/concurrentGCThread.hpp"
 
@@ -63,4 +63,4 @@
   double vtime_accum() { return _vtime_accum; }
 };
 
-#endif // SHARE_VM_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
+#endif // SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP
--- a/src/hotspot/share/gc/g1/g1_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/g1_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_G1_GLOBALS_HPP
-#define SHARE_VM_GC_G1_G1_GLOBALS_HPP
+#ifndef SHARE_GC_G1_G1_GLOBALS_HPP
+#define SHARE_GC_G1_G1_GLOBALS_HPP
 
 #include <float.h> // for DBL_MAX
 //
@@ -328,4 +328,4 @@
                range(0, 100)                                                \
 
 
-#endif // SHARE_VM_GC_G1_G1_GLOBALS_HPP
+#endif // SHARE_GC_G1_G1_GLOBALS_HPP
--- a/src/hotspot/share/gc/g1/heapRegion.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegion.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGION_HPP
-#define SHARE_VM_GC_G1_HEAPREGION_HPP
+#ifndef SHARE_GC_G1_HEAPREGION_HPP
+#define SHARE_GC_G1_HEAPREGION_HPP
 
 #include "gc/g1/g1BlockOffsetTable.hpp"
 #include "gc/g1/g1HeapRegionTraceType.hpp"
@@ -721,4 +721,4 @@
   bool is_complete() { return _is_complete; }
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGION_HPP
+#endif // SHARE_GC_G1_HEAPREGION_HPP
--- a/src/hotspot/share/gc/g1/heapRegion.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegion.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGION_INLINE_HPP
-#define SHARE_VM_GC_G1_HEAPREGION_INLINE_HPP
+#ifndef SHARE_GC_G1_HEAPREGION_INLINE_HPP
+#define SHARE_GC_G1_HEAPREGION_INLINE_HPP
 
 #include "gc/g1/g1BlockOffsetTable.inline.hpp"
 #include "gc/g1/g1CollectedHeap.inline.hpp"
@@ -362,4 +362,4 @@
   return true;
 }
 
-#endif // SHARE_VM_GC_G1_HEAPREGION_INLINE_HPP
+#endif // SHARE_GC_G1_HEAPREGION_INLINE_HPP
--- a/src/hotspot/share/gc/g1/heapRegionBounds.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionBounds.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONBOUNDS_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONBOUNDS_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONBOUNDS_HPP
+#define SHARE_GC_G1_HEAPREGIONBOUNDS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -51,4 +51,4 @@
   static inline size_t target_number();
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONBOUNDS_HPP
+#endif // SHARE_GC_G1_HEAPREGIONBOUNDS_HPP
--- a/src/hotspot/share/gc/g1/heapRegionBounds.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionBounds.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
+#define SHARE_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
 
 #include "gc/g1/heapRegionBounds.hpp"
 
@@ -39,4 +39,4 @@
   return TARGET_REGION_NUMBER;
 }
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
+#endif // SHARE_GC_G1_HEAPREGIONBOUNDS_INLINE_HPP
--- a/src/hotspot/share/gc/g1/heapRegionManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONMANAGER_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONMANAGER_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONMANAGER_HPP
+#define SHARE_GC_G1_HEAPREGIONMANAGER_HPP
 
 #include "gc/g1/g1BiasedArray.hpp"
 #include "gc/g1/g1CollectorPolicy.hpp"
@@ -295,4 +295,4 @@
   // Claim the given region, returns true if successfully claimed.
   bool claim_region(uint region_index);
 };
-#endif // SHARE_VM_GC_G1_HEAPREGIONMANAGER_HPP
+#endif // SHARE_GC_G1_HEAPREGIONMANAGER_HPP
--- a/src/hotspot/share/gc/g1/heapRegionManager.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionManager.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
+#define SHARE_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "gc/g1/heapRegionManager.hpp"
@@ -77,4 +77,4 @@
   _free_list.remove_starting_at(at(first), num_regions);
 }
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
+#endif // SHARE_GC_G1_HEAPREGIONMANAGER_INLINE_HPP
--- a/src/hotspot/share/gc/g1/heapRegionRemSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionRemSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONREMSET_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONREMSET_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONREMSET_HPP
+#define SHARE_GC_G1_HEAPREGIONREMSET_HPP
 
 #include "gc/g1/g1CodeCacheRemSet.hpp"
 #include "gc/g1/g1FromCardCache.hpp"
@@ -404,4 +404,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONREMSET_HPP
+#endif // SHARE_GC_G1_HEAPREGIONREMSET_HPP
--- a/src/hotspot/share/gc/g1/heapRegionSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONSET_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONSET_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONSET_HPP
+#define SHARE_GC_G1_HEAPREGIONSET_HPP
 
 #include "gc/g1/heapRegion.hpp"
 #include "utilities/macros.hpp"
@@ -230,4 +230,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONSET_HPP
+#endif // SHARE_GC_G1_HEAPREGIONSET_HPP
--- a/src/hotspot/share/gc/g1/heapRegionSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONSET_INLINE_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONSET_INLINE_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONSET_INLINE_HPP
+#define SHARE_GC_G1_HEAPREGIONSET_INLINE_HPP
 
 #include "gc/g1/heapRegionSet.hpp"
 
@@ -147,5 +147,4 @@
   return hr;
 }
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONSET_INLINE_HPP
-
+#endif // SHARE_GC_G1_HEAPREGIONSET_INLINE_HPP
--- a/src/hotspot/share/gc/g1/heapRegionTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONTRACER_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONTRACER_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONTRACER_HPP
+#define SHARE_GC_G1_HEAPREGIONTRACER_HPP
 
 #include "gc/g1/g1HeapRegionTraceType.hpp"
 #include "memory/allocation.hpp"
@@ -37,4 +37,4 @@
                                         size_t used);
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONTRACER_HPP
+#endif // SHARE_GC_G1_HEAPREGIONTRACER_HPP
--- a/src/hotspot/share/gc/g1/heapRegionType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heapRegionType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HEAPREGIONTYPE_HPP
-#define SHARE_VM_GC_G1_HEAPREGIONTYPE_HPP
+#ifndef SHARE_GC_G1_HEAPREGIONTYPE_HPP
+#define SHARE_GC_G1_HEAPREGIONTYPE_HPP
 
 #include "gc/g1/g1HeapRegionTraceType.hpp"
 
@@ -196,4 +196,4 @@
   static const HeapRegionType Humongous;
 };
 
-#endif // SHARE_VM_GC_G1_HEAPREGIONTYPE_HPP
+#endif // SHARE_GC_G1_HEAPREGIONTYPE_HPP
--- a/src/hotspot/share/gc/g1/heterogeneousHeapRegionManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/heterogeneousHeapRegionManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
-#define SHARE_VM_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
+#ifndef SHARE_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
+#define SHARE_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
 
 #include "gc/g1/heapRegionManager.hpp"
 
@@ -147,4 +147,4 @@
   void verify();
 };
 
-#endif // SHARE_VM_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
+#endif // SHARE_GC_G1_HETEROGENEOUSHEAPREGIONMANAGER_HPP
--- a/src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_G1_COMMANDLINEFLAGCONSTRAINTSG1_HPP
-#define SHARE_GC_G1_COMMANDLINEFLAGCONSTRAINTSG1_HPP
+#ifndef SHARE_GC_G1_JVMFLAGCONSTRAINTSG1_HPP
+#define SHARE_GC_G1_JVMFLAGCONSTRAINTSG1_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -43,4 +43,4 @@
 
 size_t MaxSizeForHeapAlignmentG1();
 
-#endif // SHARE_GC_SHARED_COMMANDLINEFLAGCONSTRAINTSG1_HPP
+#endif // SHARE_GC_G1_JVMFLAGCONSTRAINTSG1_HPP
--- a/src/hotspot/share/gc/g1/sparsePRT.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/sparsePRT.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_SPARSEPRT_HPP
-#define SHARE_VM_GC_G1_SPARSEPRT_HPP
+#ifndef SHARE_GC_G1_SPARSEPRT_HPP
+#define SHARE_GC_G1_SPARSEPRT_HPP
 
 #include "gc/g1/g1CollectedHeap.hpp"
 #include "gc/g1/heapRegion.hpp"
@@ -264,4 +264,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_G1_SPARSEPRT_HPP
+#endif // SHARE_GC_G1_SPARSEPRT_HPP
--- a/src/hotspot/share/gc/g1/survRateGroup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/survRateGroup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_SURVRATEGROUP_HPP
-#define SHARE_VM_GC_G1_SURVRATEGROUP_HPP
+#ifndef SHARE_GC_G1_SURVRATEGROUP_HPP
+#define SHARE_GC_G1_SURVRATEGROUP_HPP
 
 #include "utilities/numberSeq.hpp"
 
@@ -88,4 +88,4 @@
 
 };
 
-#endif // SHARE_VM_GC_G1_SURVRATEGROUP_HPP
+#endif // SHARE_GC_G1_SURVRATEGROUP_HPP
--- a/src/hotspot/share/gc/g1/vmStructs_g1.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/g1/vmStructs_g1.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_G1_VMSTRUCTS_G1_HPP
-#define SHARE_VM_GC_G1_VMSTRUCTS_G1_HPP
+#ifndef SHARE_GC_G1_VMSTRUCTS_G1_HPP
+#define SHARE_GC_G1_VMSTRUCTS_G1_HPP
 
 #include "gc/g1/g1CollectedHeap.hpp"
 #include "gc/g1/heapRegion.hpp"
@@ -110,4 +110,4 @@
                                                                               \
   declare_integer_type(HeapRegionType::Tag volatile)
 
-#endif // SHARE_VM_GC_G1_VMSTRUCTS_G1_HPP
+#endif // SHARE_GC_G1_VMSTRUCTS_G1_HPP
--- a/src/hotspot/share/gc/parallel/adjoiningGenerations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/adjoiningGenerations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONS_HPP
-#define SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONS_HPP
+#ifndef SHARE_GC_PARALLEL_ADJOININGGENERATIONS_HPP
+#define SHARE_GC_PARALLEL_ADJOININGGENERATIONS_HPP
 
 #include "gc/parallel/adjoiningVirtualSpaces.hpp"
 #include "gc/parallel/asPSOldGen.hpp"
@@ -81,4 +81,4 @@
   // Return new AdjoiningGenerations instance based on collector policy (specifically - whether heap is heterogeneous).
   static AdjoiningGenerations* create_adjoining_generations(ReservedSpace rs, GenerationSizer* policy, size_t alignment);
 };
-#endif // SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONS_HPP
+#endif // SHARE_GC_PARALLEL_ADJOININGGENERATIONS_HPP
--- a/src/hotspot/share/gc/parallel/adjoiningGenerationsForHeteroHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/adjoiningGenerationsForHeteroHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
-#define SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
+#ifndef SHARE_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
+#define SHARE_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
 
 #include "gc/parallel/adjoiningGenerations.hpp"
 
@@ -81,5 +81,4 @@
   // Return the total byte size of the reserved space
   size_t reserved_byte_size();
 };
-#endif // SHARE_VM_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
-
+#endif // SHARE_GC_PARALLEL_ADJOININGGENERATIONSFORHETEROHEAP_HPP
--- a/src/hotspot/share/gc/parallel/adjoiningVirtualSpaces.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/adjoiningVirtualSpaces.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
-#define SHARE_VM_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
+#ifndef SHARE_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
+#define SHARE_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
 
 #include "gc/parallel/psVirtualspace.hpp"
 
@@ -112,4 +112,4 @@
                   size_t init_low_byte_size,
                   size_t init_high_byte_size);
 };
-#endif // SHARE_VM_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
+#endif // SHARE_GC_PARALLEL_ADJOININGVIRTUALSPACES_HPP
--- a/src/hotspot/share/gc/parallel/asPSOldGen.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/asPSOldGen.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_ASPSOLDGEN_HPP
-#define SHARE_VM_GC_PARALLEL_ASPSOLDGEN_HPP
+#ifndef SHARE_GC_PARALLEL_ASPSOLDGEN_HPP
+#define SHARE_GC_PARALLEL_ASPSOLDGEN_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -68,4 +68,4 @@
   virtual const char* short_name() const { return "ASPSOldGen"; }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_ASPSOLDGEN_HPP
+#endif // SHARE_GC_PARALLEL_ASPSOLDGEN_HPP
--- a/src/hotspot/share/gc/parallel/asPSYoungGen.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/asPSYoungGen.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_ASPSYOUNGGEN_HPP
-#define SHARE_VM_GC_PARALLEL_ASPSYOUNGGEN_HPP
+#ifndef SHARE_GC_PARALLEL_ASPSYOUNGGEN_HPP
+#define SHARE_GC_PARALLEL_ASPSYOUNGGEN_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -74,4 +74,4 @@
   virtual const char* short_name() const { return "ASPSYoungGen"; }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_ASPSYOUNGGEN_HPP
+#endif // SHARE_GC_PARALLEL_ASPSYOUNGGEN_HPP
--- a/src/hotspot/share/gc/parallel/gcAdaptivePolicyCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/gcAdaptivePolicyCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
-#define SHARE_VM_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
+#ifndef SHARE_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
+#define SHARE_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
 
 #include "gc/shared/adaptiveSizePolicy.hpp"
 #include "gc/shared/gcPolicyCounters.hpp"
@@ -230,4 +230,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
+#endif // SHARE_GC_PARALLEL_GCADAPTIVEPOLICYCOUNTERS_HPP
--- a/src/hotspot/share/gc/parallel/gcTaskManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/gcTaskManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_GCTASKMANAGER_HPP
-#define SHARE_VM_GC_PARALLEL_GCTASKMANAGER_HPP
+#ifndef SHARE_GC_PARALLEL_GCTASKMANAGER_HPP
+#define SHARE_GC_PARALLEL_GCTASKMANAGER_HPP
 
 #include "runtime/mutex.hpp"
 #include "utilities/growableArray.hpp"
@@ -665,4 +665,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_GCTASKMANAGER_HPP
+#endif // SHARE_GC_PARALLEL_GCTASKMANAGER_HPP
--- a/src/hotspot/share/gc/parallel/gcTaskThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/gcTaskThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_GCTASKTHREAD_HPP
-#define SHARE_VM_GC_PARALLEL_GCTASKTHREAD_HPP
+#ifndef SHARE_GC_PARALLEL_GCTASKTHREAD_HPP
+#define SHARE_GC_PARALLEL_GCTASKTHREAD_HPP
 
 #include "runtime/thread.hpp"
 
@@ -105,4 +105,4 @@
   void set_name(const char* name) { _name = name; }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_GCTASKTHREAD_HPP
+#endif // SHARE_GC_PARALLEL_GCTASKTHREAD_HPP
--- a/src/hotspot/share/gc/parallel/generationSizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/generationSizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_GENERATIONSIZER_HPP
-#define SHARE_VM_GC_PARALLEL_GENERATIONSIZER_HPP
+#ifndef SHARE_GC_PARALLEL_GENERATIONSIZER_HPP
+#define SHARE_GC_PARALLEL_GENERATIONSIZER_HPP
 
 #include "gc/shared/collectorPolicy.hpp"
 
@@ -45,4 +45,4 @@
   virtual size_t heap_reserved_size_bytes() const;
   virtual bool is_hetero_heap() const;
 };
-#endif // SHARE_VM_GC_PARALLEL_GENERATIONSIZER_HPP
+#endif // SHARE_GC_PARALLEL_GENERATIONSIZER_HPP
--- a/src/hotspot/share/gc/parallel/heterogeneousGenerationSizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/heterogeneousGenerationSizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
-#define SHARE_VM_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
+#ifndef SHARE_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
+#define SHARE_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
 
 #include "gc/parallel/generationSizer.hpp"
 
@@ -43,4 +43,4 @@
   virtual size_t heap_reserved_size_bytes() const;
   virtual bool is_hetero_heap() const;
 };
-#endif // SHARE_VM_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
+#endif // SHARE_GC_PARALLEL_HETEROGENEOUSGENERATIONSIZER_HPP
--- a/src/hotspot/share/gc/parallel/immutableSpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/immutableSpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_IMMUTABLESPACE_HPP
-#define SHARE_VM_GC_PARALLEL_IMMUTABLESPACE_HPP
+#ifndef SHARE_GC_PARALLEL_IMMUTABLESPACE_HPP
+#define SHARE_GC_PARALLEL_IMMUTABLESPACE_HPP
 
 #include "memory/iterator.hpp"
 
@@ -68,4 +68,4 @@
   virtual void verify();
 };
 
-#endif // SHARE_VM_GC_PARALLEL_IMMUTABLESPACE_HPP
+#endif // SHARE_GC_PARALLEL_IMMUTABLESPACE_HPP
--- a/src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_PARALLEL_COMMANDLINEFLAGCONSTRAINTSPARALLEL_HPP
-#define SHARE_GC_PARALLEL_COMMANDLINEFLAGCONSTRAINTSPARALLEL_HPP
+#ifndef SHARE_GC_PARALLEL_JVMFLAGCONSTRAINTSPARALLEL_HPP
+#define SHARE_GC_PARALLEL_JVMFLAGCONSTRAINTSPARALLEL_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -33,4 +33,4 @@
 JVMFlag::Error InitialTenuringThresholdConstraintFuncParallel(uintx value, bool verbose);
 JVMFlag::Error MaxTenuringThresholdConstraintFuncParallel(uintx value, bool verbose);
 
-#endif // SHARE_GC_PARALLEL_COMMANDLINEFLAGCONSTRAINTSPARALLEL_HPP
+#endif // SHARE_GC_PARALLEL_JVMFLAGCONSTRAINTSPARALLEL_HPP
--- a/src/hotspot/share/gc/parallel/mutableNUMASpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/mutableNUMASpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_MUTABLENUMASPACE_HPP
-#define SHARE_VM_GC_PARALLEL_MUTABLENUMASPACE_HPP
+#ifndef SHARE_GC_PARALLEL_MUTABLENUMASPACE_HPP
+#define SHARE_GC_PARALLEL_MUTABLENUMASPACE_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/shared/gcUtil.hpp"
@@ -232,4 +232,4 @@
   virtual void set_top(HeapWord* value);
 };
 
-#endif // SHARE_VM_GC_PARALLEL_MUTABLENUMASPACE_HPP
+#endif // SHARE_GC_PARALLEL_MUTABLENUMASPACE_HPP
--- a/src/hotspot/share/gc/parallel/mutableSpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/mutableSpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_MUTABLESPACE_HPP
-#define SHARE_VM_GC_PARALLEL_MUTABLESPACE_HPP
+#ifndef SHARE_GC_PARALLEL_MUTABLESPACE_HPP
+#define SHARE_GC_PARALLEL_MUTABLESPACE_HPP
 
 #include "gc/parallel/immutableSpace.hpp"
 #include "memory/memRegion.hpp"
@@ -145,4 +145,4 @@
   virtual void verify();
 };
 
-#endif // SHARE_VM_GC_PARALLEL_MUTABLESPACE_HPP
+#endif // SHARE_GC_PARALLEL_MUTABLESPACE_HPP
--- a/src/hotspot/share/gc/parallel/objectStartArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/objectStartArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_HPP
-#define SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_HPP
+#ifndef SHARE_GC_PARALLEL_OBJECTSTARTARRAY_HPP
+#define SHARE_GC_PARALLEL_OBJECTSTARTARRAY_HPP
 
 #include "gc/parallel/psVirtualspace.hpp"
 #include "memory/allocation.hpp"
@@ -156,4 +156,4 @@
   bool object_starts_in_range(HeapWord* start_addr, HeapWord* end_addr) const;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_HPP
+#endif // SHARE_GC_PARALLEL_OBJECTSTARTARRAY_HPP
--- a/src/hotspot/share/gc/parallel/objectStartArray.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/objectStartArray.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
+#define SHARE_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
 
 #include "gc/parallel/objectStartArray.hpp"
 
@@ -50,4 +50,4 @@
 }
 
 
-#endif // SHARE_VM_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_OBJECTSTARTARRAY_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/parMarkBitMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/parMarkBitMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PARMARKBITMAP_HPP
-#define SHARE_VM_GC_PARALLEL_PARMARKBITMAP_HPP
+#ifndef SHARE_GC_PARALLEL_PARMARKBITMAP_HPP
+#define SHARE_GC_PARALLEL_PARMARKBITMAP_HPP
 
 #include "memory/memRegion.hpp"
 #include "oops/oop.hpp"
@@ -188,4 +188,4 @@
   size_t          _reserved_byte_size;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PARMARKBITMAP_HPP
+#endif // SHARE_GC_PARALLEL_PARMARKBITMAP_HPP
--- a/src/hotspot/share/gc/parallel/parMarkBitMap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/parMarkBitMap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP
+#define SHARE_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP
 
 #include "gc/parallel/parMarkBitMap.hpp"
 #include "utilities/bitMap.inline.hpp"
@@ -195,4 +195,4 @@
 }
 #endif  // #ifdef ASSERT
 
-#endif /* SHARE_VM_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP */
+#endif // SHARE_GC_PARALLEL_PARMARKBITMAP_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/parallelArguments.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/parallelArguments.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -36,4 +36,4 @@
   virtual CollectedHeap* create_heap();
 };
 
-#endif // SHARE_GC_CMS_PARALLELARGUMENTS_HPP
+#endif // SHARE_GC_PARALLEL_PARALLELARGUMENTS_HPP
--- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
-#define SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
+#ifndef SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
+#define SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
 
 #include "gc/parallel/generationSizer.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -311,4 +311,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
+#endif // SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_HPP
--- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
+#define SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
 
 #include "gc/parallel/parallelScavengeHeap.hpp"
 #include "gc/parallel/psMarkSweepProxy.hpp"
@@ -51,4 +51,4 @@
          "incorrect test - result=%d, p=" PTR_FORMAT, result, p2i((void*)p));
   return result;
 }
-#endif // SHARE_VM_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PARALLELSCAVENGEHEAP_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/pcTasks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/pcTasks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PCTASKS_HPP
-#define SHARE_VM_GC_PARALLEL_PCTASKS_HPP
+#ifndef SHARE_GC_PARALLEL_PCTASKS_HPP
+#define SHARE_GC_PARALLEL_PCTASKS_HPP
 
 #include "gc/parallel/gcTaskManager.hpp"
 #include "gc/parallel/psParallelCompact.hpp"
@@ -205,4 +205,4 @@
 
   virtual void do_it(GCTaskManager* manager, uint which);
 };
-#endif // SHARE_VM_GC_PARALLEL_PCTASKS_HPP
+#endif // SHARE_GC_PARALLEL_PCTASKS_HPP
--- a/src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psAdaptiveSizePolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
-#define SHARE_VM_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
+#ifndef SHARE_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
+#define SHARE_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
 
 #include "gc/shared/adaptiveSizePolicy.hpp"
 #include "gc/shared/gcCause.hpp"
@@ -402,4 +402,4 @@
   void decay_supplemental_growth(bool is_full_gc);
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
+#endif // SHARE_GC_PARALLEL_PSADAPTIVESIZEPOLICY_HPP
--- a/src/hotspot/share/gc/parallel/psCardTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psCardTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSCARDTABLE_HPP
-#define SHARE_VM_GC_PARALLEL_PSCARDTABLE_HPP
+#ifndef SHARE_GC_PARALLEL_PSCARDTABLE_HPP
+#define SHARE_GC_PARALLEL_PSCARDTABLE_HPP
 
 #include "gc/shared/cardTable.hpp"
 #include "oops/oop.hpp"
@@ -109,4 +109,4 @@
   void verify_all_young_refs_precise();
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSCARDTABLE
+#endif // SHARE_GC_PARALLEL_PSCARDTABLE_HPP
--- a/src/hotspot/share/gc/parallel/psClosure.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psClosure.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSCLOSURE_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSCLOSURE_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSCLOSURE_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSCLOSURE_INLINE_HPP
 
 #include "gc/parallel/psPromotionManager.inline.hpp"
 #include "gc/parallel/psScavenge.inline.hpp"
@@ -118,4 +118,4 @@
   }
 };
 
-#endif
+#endif // SHARE_GC_PARALLEL_PSCLOSURE_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psCompactionManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psCompactionManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
-#define SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
+#ifndef SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
+#define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
 
 #include "gc/shared/taskqueue.hpp"
 #include "memory/allocation.hpp"
@@ -194,4 +194,4 @@
   return _marking_stack.is_empty() && _objarray_stack.is_empty();
 }
 
-#endif // SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
+#endif // SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
--- a/src/hotspot/share/gc/parallel/psCompactionManager.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psCompactionManager.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
 
 #include "classfile/javaClasses.inline.hpp"
 #include "gc/parallel/parMarkBitMap.hpp"
@@ -177,4 +177,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psFileBackedVirtualspace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psFileBackedVirtualspace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
-#define SHARE_VM_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
+#ifndef SHARE_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
+#define SHARE_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
 
 #include "gc/parallel/psVirtualspace.hpp"
 
@@ -42,5 +42,4 @@
   size_t expand_into(PSVirtualSpace* space, size_t bytes);
   void   release();
 };
-#endif // SHARE_VM_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
-
+#endif // SHARE_GC_PARALLEL_PSFILEBACKEDVIRTUALSPACE_HPP
--- a/src/hotspot/share/gc/parallel/psGCAdaptivePolicyCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psGCAdaptivePolicyCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
-#define SHARE_VM_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
+#ifndef SHARE_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
+#define SHARE_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
 
 #include "gc/parallel/gcAdaptivePolicyCounters.hpp"
 #include "gc/parallel/psAdaptiveSizePolicy.hpp"
@@ -208,4 +208,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
+#endif // SHARE_GC_PARALLEL_PSGCADAPTIVEPOLICYCOUNTERS_HPP
--- a/src/hotspot/share/gc/parallel/psGenerationCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psGenerationCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,5 @@
-
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -23,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
-#define SHARE_VM_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
+#ifndef SHARE_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
+#define SHARE_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
 
 #include "gc/parallel/psVirtualspace.hpp"
 #include "gc/shared/generationCounters.hpp"
@@ -49,4 +48,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
+#endif // SHARE_GC_PARALLEL_PSGENERATIONCOUNTERS_HPP
--- a/src/hotspot/share/gc/parallel/psMarkSweep.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psMarkSweep.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSMARKSWEEP_HPP
-#define SHARE_VM_GC_PARALLEL_PSMARKSWEEP_HPP
+#ifndef SHARE_GC_PARALLEL_PSMARKSWEEP_HPP
+#define SHARE_GC_PARALLEL_PSMARKSWEEP_HPP
 
 #include "gc/serial/markSweep.hpp"
 #include "gc/shared/collectorCounters.hpp"
@@ -86,4 +86,4 @@
   static jlong millis_since_last_gc();
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSMARKSWEEP_HPP
+#endif // SHARE_GC_PARALLEL_PSMARKSWEEP_HPP
--- a/src/hotspot/share/gc/parallel/psMarkSweepDecorator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psMarkSweepDecorator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
-#define SHARE_VM_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
+#ifndef SHARE_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
+#define SHARE_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 
@@ -78,4 +78,4 @@
   void compact(bool mangle_free_space);
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
+#endif // SHARE_GC_PARALLEL_PSMARKSWEEPDECORATOR_HPP
--- a/src/hotspot/share/gc/parallel/psMemoryPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psMemoryPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_PSMEMORYPOOL_HPP
-#define SHARE_VM_SERVICES_PSMEMORYPOOL_HPP
+#ifndef SHARE_GC_PARALLEL_PSMEMORYPOOL_HPP
+#define SHARE_GC_PARALLEL_PSMEMORYPOOL_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/psOldGen.hpp"
@@ -86,4 +86,4 @@
   }
 };
 
-#endif // SHARE_VM_SERVICES_PSMEMORYPOOL_HPP
+#endif // SHARE_GC_PARALLEL_PSMEMORYPOOL_HPP
--- a/src/hotspot/share/gc/parallel/psOldGen.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psOldGen.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSOLDGEN_HPP
-#define SHARE_VM_GC_PARALLEL_PSOLDGEN_HPP
+#ifndef SHARE_GC_PARALLEL_PSOLDGEN_HPP
+#define SHARE_GC_PARALLEL_PSOLDGEN_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -223,4 +223,4 @@
   void record_spaces_top() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSOLDGEN_HPP
+#endif // SHARE_GC_PARALLEL_PSOLDGEN_HPP
--- a/src/hotspot/share/gc/parallel/psParallelCompact.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psParallelCompact.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_HPP
-#define SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_HPP
+#ifndef SHARE_GC_PARALLEL_PSPARALLELCOMPACT_HPP
+#define SHARE_GC_PARALLEL_PSPARALLELCOMPACT_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -1301,4 +1301,4 @@
   ObjectStartArray* const _start_array;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_HPP
+#endif // SHARE_GC_PARALLEL_PSPARALLELCOMPACT_HPP
--- a/src/hotspot/share/gc/parallel/psParallelCompact.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psParallelCompact.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
 
 #include "gc/parallel/parallelScavengeHeap.hpp"
 #include "gc/parallel/parMarkBitMap.inline.hpp"
@@ -141,4 +141,4 @@
   ParCompactionManager* _cm;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psPromotionLAB.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psPromotionLAB.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_HPP
-#define SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_HPP
+#ifndef SHARE_GC_PARALLEL_PSPROMOTIONLAB_HPP
+#define SHARE_GC_PARALLEL_PSPROMOTIONLAB_HPP
 
 #include "gc/parallel/objectStartArray.hpp"
 #include "gc/shared/collectedHeap.hpp"
@@ -134,4 +134,4 @@
   debug_only(virtual bool lab_is_valid(MemRegion lab));
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_HPP
+#endif // SHARE_GC_PARALLEL_PSPROMOTIONLAB_HPP
--- a/src/hotspot/share/gc/parallel/psPromotionLAB.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psPromotionLAB.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
 
 #include "gc/parallel/psPromotionLAB.hpp"
 #include "gc/shared/collectedHeap.inline.hpp"
@@ -50,4 +50,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PSPROMOTIONLAB_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psPromotionManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psPromotionManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
-#define SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
+#ifndef SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
+#define SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
 
 #include "gc/parallel/psPromotionLAB.hpp"
 #include "gc/shared/copyFailedInfo.hpp"
@@ -212,4 +212,4 @@
   void push_contents(oop obj);
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
+#endif // SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_HPP
--- a/src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
 
 #include "gc/parallel/parallelScavengeHeap.hpp"
 #include "gc/parallel/parMarkBitMap.inline.hpp"
@@ -375,4 +375,4 @@
 }
 #endif // TASKQUEUE_STATS
 
-#endif // SHARE_VM_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PSPROMOTIONMANAGER_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psScavenge.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psScavenge.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSSCAVENGE_HPP
-#define SHARE_VM_GC_PARALLEL_PSSCAVENGE_HPP
+#ifndef SHARE_GC_PARALLEL_PSSCAVENGE_HPP
+#define SHARE_GC_PARALLEL_PSSCAVENGE_HPP
 
 #include "gc/parallel/psCardTable.hpp"
 #include "gc/parallel/psVirtualspace.hpp"
@@ -157,4 +157,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSSCAVENGE_HPP
+#endif // SHARE_GC_PARALLEL_PSSCAVENGE_HPP
--- a/src/hotspot/share/gc/parallel/psScavenge.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psScavenge.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
-#define SHARE_VM_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
+#ifndef SHARE_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
+#define SHARE_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
 
 #include "gc/parallel/parallelScavengeHeap.hpp"
 #include "gc/parallel/psScavenge.hpp"
@@ -64,4 +64,4 @@
   return should_scavenge(p);
 }
 
-#endif // SHARE_VM_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
+#endif // SHARE_GC_PARALLEL_PSSCAVENGE_INLINE_HPP
--- a/src/hotspot/share/gc/parallel/psTasks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psTasks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSTASKS_HPP
-#define SHARE_VM_GC_PARALLEL_PSTASKS_HPP
+#ifndef SHARE_GC_PARALLEL_PSTASKS_HPP
+#define SHARE_GC_PARALLEL_PSTASKS_HPP
 
 #include "utilities/growableArray.hpp"
 
@@ -177,4 +177,4 @@
   virtual void do_it(GCTaskManager* manager, uint which);
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSTASKS_HPP
+#endif // SHARE_GC_PARALLEL_PSTASKS_HPP
--- a/src/hotspot/share/gc/parallel/psVMOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psVMOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSVMOPERATIONS_HPP
-#define SHARE_VM_GC_PARALLEL_PSVMOPERATIONS_HPP
+#ifndef SHARE_GC_PARALLEL_PSVMOPERATIONS_HPP
+#define SHARE_GC_PARALLEL_PSVMOPERATIONS_HPP
 
 #include "gc/parallel/parallelScavengeHeap.hpp"
 #include "gc/shared/gcCause.hpp"
@@ -46,4 +46,4 @@
   virtual void doit();
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSVMOPERATIONS_HPP
+#endif // SHARE_GC_PARALLEL_PSVMOPERATIONS_HPP
--- a/src/hotspot/share/gc/parallel/psVirtualspace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psVirtualspace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSVIRTUALSPACE_HPP
-#define SHARE_VM_GC_PARALLEL_PSVIRTUALSPACE_HPP
+#ifndef SHARE_GC_PARALLEL_PSVIRTUALSPACE_HPP
+#define SHARE_GC_PARALLEL_PSVIRTUALSPACE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/virtualspace.hpp"
@@ -179,4 +179,4 @@
   _committed_high_addr = high_addr;
 }
 
-#endif // SHARE_VM_GC_PARALLEL_PSVIRTUALSPACE_HPP
+#endif // SHARE_GC_PARALLEL_PSVIRTUALSPACE_HPP
--- a/src/hotspot/share/gc/parallel/psYoungGen.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/psYoungGen.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_PSYOUNGGEN_HPP
-#define SHARE_VM_GC_PARALLEL_PSYOUNGGEN_HPP
+#ifndef SHARE_GC_PARALLEL_PSYOUNGGEN_HPP
+#define SHARE_GC_PARALLEL_PSYOUNGGEN_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/parallel/objectStartArray.hpp"
@@ -197,4 +197,4 @@
   void record_spaces_top() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_GC_PARALLEL_PSYOUNGGEN_HPP
+#endif // SHARE_GC_PARALLEL_PSYOUNGGEN_HPP
--- a/src/hotspot/share/gc/parallel/spaceCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/spaceCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_SPACECOUNTERS_HPP
-#define SHARE_VM_GC_PARALLEL_SPACECOUNTERS_HPP
+#ifndef SHARE_GC_PARALLEL_SPACECOUNTERS_HPP
+#define SHARE_GC_PARALLEL_SPACECOUNTERS_HPP
 
 #include "gc/parallel/immutableSpace.hpp"
 #include "gc/parallel/mutableSpace.hpp"
@@ -83,4 +83,4 @@
     }
 };
 
-#endif // SHARE_VM_GC_PARALLEL_SPACECOUNTERS_HPP
+#endif // SHARE_GC_PARALLEL_SPACECOUNTERS_HPP
--- a/src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
-#define SHARE_VM_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
+#ifndef SHARE_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
+#define SHARE_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
 
 #include "gc/parallel/asPSOldGen.hpp"
 #include "gc/parallel/asPSYoungGen.hpp"
@@ -108,4 +108,4 @@
 #define VM_INT_CONSTANTS_PARALLELGC(declare_constant,                     \
                                     declare_constant_with_value)
 
-#endif // SHARE_VM_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
+#endif // SHARE_GC_PARALLEL_VMSTRUCTS_PARALLELGC_HPP
--- a/src/hotspot/share/gc/serial/cSpaceCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/cSpaceCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_CSPACECOUNTERS_HPP
-#define SHARE_VM_GC_SERIAL_CSPACECOUNTERS_HPP
+#ifndef SHARE_GC_SERIAL_CSPACECOUNTERS_HPP
+#define SHARE_GC_SERIAL_CSPACECOUNTERS_HPP
 
 #include "gc/shared/generationCounters.hpp"
 #include "gc/shared/space.hpp"
@@ -71,4 +71,4 @@
     jlong take_sample();
 };
 
-#endif // SHARE_VM_GC_SERIAL_CSPACECOUNTERS_HPP
+#endif // SHARE_GC_SERIAL_CSPACECOUNTERS_HPP
--- a/src/hotspot/share/gc/serial/defNewGeneration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/defNewGeneration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_DEFNEWGENERATION_HPP
-#define SHARE_VM_GC_SERIAL_DEFNEWGENERATION_HPP
+#ifndef SHARE_GC_SERIAL_DEFNEWGENERATION_HPP
+#define SHARE_GC_SERIAL_DEFNEWGENERATION_HPP
 
 #include "gc/serial/cSpaceCounters.hpp"
 #include "gc/shared/ageTable.hpp"
@@ -346,4 +346,4 @@
   void swap_spaces();
 };
 
-#endif // SHARE_VM_GC_SERIAL_DEFNEWGENERATION_HPP
+#endif // SHARE_GC_SERIAL_DEFNEWGENERATION_HPP
--- a/src/hotspot/share/gc/serial/defNewGeneration.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/defNewGeneration.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
-#define SHARE_VM_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
+#ifndef SHARE_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
+#define SHARE_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
 
 #include "gc/serial/defNewGeneration.hpp"
 #include "gc/shared/cardTableRS.hpp"
@@ -98,4 +98,4 @@
   save_marks();
 }
 
-#endif // SHARE_VM_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
+#endif // SHARE_GC_SERIAL_DEFNEWGENERATION_INLINE_HPP
--- a/src/hotspot/share/gc/serial/genMarkSweep.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/genMarkSweep.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_GENMARKSWEEP_HPP
-#define SHARE_VM_GC_SERIAL_GENMARKSWEEP_HPP
+#ifndef SHARE_GC_SERIAL_GENMARKSWEEP_HPP
+#define SHARE_GC_SERIAL_GENMARKSWEEP_HPP
 
 #include "gc/serial/markSweep.hpp"
 
@@ -48,4 +48,4 @@
   static void deallocate_stacks();
 };
 
-#endif // SHARE_VM_GC_SERIAL_GENMARKSWEEP_HPP
+#endif // SHARE_GC_SERIAL_GENMARKSWEEP_HPP
--- a/src/hotspot/share/gc/serial/markSweep.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/markSweep.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_MARKSWEEP_HPP
-#define SHARE_VM_GC_SERIAL_MARKSWEEP_HPP
+#ifndef SHARE_GC_SERIAL_MARKSWEEP_HPP
+#define SHARE_GC_SERIAL_MARKSWEEP_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/genOopClosures.hpp"
@@ -211,4 +211,4 @@
   void restore();
 };
 
-#endif // SHARE_VM_GC_SERIAL_MARKSWEEP_HPP
+#endif // SHARE_GC_SERIAL_MARKSWEEP_HPP
--- a/src/hotspot/share/gc/serial/markSweep.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/markSweep.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_MARKSWEEP_INLINE_HPP
-#define SHARE_VM_GC_SERIAL_MARKSWEEP_INLINE_HPP
+#ifndef SHARE_GC_SERIAL_MARKSWEEP_INLINE_HPP
+#define SHARE_GC_SERIAL_MARKSWEEP_INLINE_HPP
 
 #include "classfile/classLoaderData.inline.hpp"
 #include "gc/serial/markSweep.hpp"
@@ -104,4 +104,4 @@
   return obj->oop_iterate_size(&MarkSweep::adjust_pointer_closure);
 }
 
-#endif // SHARE_VM_GC_SERIAL_MARKSWEEP_INLINE_HPP
+#endif // SHARE_GC_SERIAL_MARKSWEEP_INLINE_HPP
--- a/src/hotspot/share/gc/serial/serialHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/serialHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_SERIALHEAP_HPP
-#define SHARE_VM_GC_SERIAL_SERIALHEAP_HPP
+#ifndef SHARE_GC_SERIAL_SERIALHEAP_HPP
+#define SHARE_GC_SERIAL_SERIALHEAP_HPP
 
 #include "gc/serial/defNewGeneration.hpp"
 #include "gc/serial/tenuredGeneration.hpp"
@@ -83,4 +83,4 @@
                                     OopClosureType2* older);
 };
 
-#endif // SHARE_VM_GC_CMS_CMSHEAP_HPP
+#endif // SHARE_GC_SERIAL_SERIALHEAP_HPP
--- a/src/hotspot/share/gc/serial/tenuredGeneration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/tenuredGeneration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_TENUREDGENERATION_HPP
-#define SHARE_VM_GC_SERIAL_TENUREDGENERATION_HPP
+#ifndef SHARE_GC_SERIAL_TENUREDGENERATION_HPP
+#define SHARE_GC_SERIAL_TENUREDGENERATION_HPP
 
 #include "gc/serial/cSpaceCounters.hpp"
 #include "gc/shared/cardGeneration.hpp"
@@ -121,4 +121,4 @@
   virtual void print_on(outputStream* st) const;
 };
 
-#endif // SHARE_VM_GC_SERIAL_TENUREDGENERATION_HPP
+#endif // SHARE_GC_SERIAL_TENUREDGENERATION_HPP
--- a/src/hotspot/share/gc/serial/tenuredGeneration.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/tenuredGeneration.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
-#define SHARE_VM_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
+#ifndef SHARE_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
+#define SHARE_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
 
 #include "gc/serial/tenuredGeneration.hpp"
 #include "gc/shared/space.inline.hpp"
@@ -61,4 +61,4 @@
   save_marks();
 }
 
-#endif // SHARE_VM_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
+#endif // SHARE_GC_SERIAL_TENUREDGENERATION_INLINE_HPP
--- a/src/hotspot/share/gc/serial/vmStructs_serial.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/serial/vmStructs_serial.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_SERIAL_VMSTRUCTS_HPP
-#define SHARE_GC_SERIAL_VMSTRUCTS_HPP
+#ifndef SHARE_GC_SERIAL_VMSTRUCTS_SERIAL_HPP
+#define SHARE_GC_SERIAL_VMSTRUCTS_SERIAL_HPP
 
 #include "gc/serial/serialHeap.hpp"
 #include "gc/serial/tenuredGeneration.hpp"
--- a/src/hotspot/share/gc/shared/accessBarrierSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/accessBarrierSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
-#define SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
+#ifndef SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
+#define SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/access.hpp"
@@ -41,4 +41,4 @@
   static DecoratorSet resolve_possibly_unknown_oop_ref_strength(oop base, ptrdiff_t offset);
 };
 
-#endif // SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
+#endif // SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_HPP
--- a/src/hotspot/share/gc/shared/accessBarrierSupport.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/accessBarrierSupport.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
-#define SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
+#ifndef SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
+#define SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
 
 #include "gc/shared/accessBarrierSupport.hpp"
 
@@ -36,4 +36,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
+#endif // SHARE_GC_SHARED_ACCESSBARRIERSUPPORT_INLINE_HPP
--- a/src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
-#define SHARE_VM_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
+#ifndef SHARE_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
+#define SHARE_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
 
 #include "gc/shared/gcCause.hpp"
 #include "gc/shared/gcUtil.hpp"
@@ -473,4 +473,4 @@
   void print_tenuring_threshold(uint new_tenuring_threshold) const;
 };
 
-#endif // SHARE_VM_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
+#endif // SHARE_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
--- a/src/hotspot/share/gc/shared/ageTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/ageTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,14 +22,14 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_AGETABLE_HPP
-#define SHARE_VM_GC_SHARED_AGETABLE_HPP
+#ifndef SHARE_GC_SHARED_AGETABLE_HPP
+#define SHARE_GC_SHARED_AGETABLE_HPP
 
 #include "oops/markOop.hpp"
 #include "oops/oop.hpp"
 #include "runtime/perfData.hpp"
 
-/* Copyright (c) 1992, 2018, Oracle and/or its affiliates, and Stanford University.
+/* Copyright (c) 1992, 2019, Oracle and/or its affiliates, and Stanford University.
    See the LICENSE file for license information. */
 
 // Age table for adaptive feedback-mediated tenuring (scavenging)
@@ -74,4 +74,4 @@
   PerfVariable* _perf_sizes[table_size];
 };
 
-#endif // SHARE_VM_GC_SHARED_AGETABLE_HPP
+#endif // SHARE_GC_SHARED_AGETABLE_HPP
--- a/src/hotspot/share/gc/shared/ageTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/ageTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_AGETABLE_INLINE_HPP
-#define SHARE_VM_GC_SHARED_AGETABLE_INLINE_HPP
+#ifndef SHARE_GC_SHARED_AGETABLE_INLINE_HPP
+#define SHARE_GC_SHARED_AGETABLE_INLINE_HPP
 
 #include "gc/shared/ageTable.hpp"
 #include "oops/oop.inline.hpp"
@@ -33,4 +33,4 @@
   add(p->age(), oop_size);
 }
 
-#endif // SHARE_VM_GC_SHARED_AGETABLE_INLINE_HPP
+#endif // SHARE_GC_SHARED_AGETABLE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/ageTableTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/ageTableTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_AGETABLETRACER_HPP
-#define SHARE_VM_GC_SHARED_AGETABLETRACER_HPP
+#ifndef SHARE_GC_SHARED_AGETABLETRACER_HPP
+#define SHARE_GC_SHARED_AGETABLETRACER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -33,4 +33,4 @@
     static bool is_tenuring_distribution_event_enabled();
 };
 
-#endif // SHARE_VM_GC_SHARED_AGETABLETRACER_HPP
+#endif // SHARE_GC_SHARED_AGETABLETRACER_HPP
--- a/src/hotspot/share/gc/shared/allocTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/allocTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_ALLOCTRACER_HPP
-#define SHARE_VM_GC_SHARED_ALLOCTRACER_HPP
+#ifndef SHARE_GC_SHARED_ALLOCTRACER_HPP
+#define SHARE_GC_SHARED_ALLOCTRACER_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -35,4 +35,4 @@
     static void send_allocation_requiring_gc_event(size_t size, uint gcId);
 };
 
-#endif // SHARE_VM_GC_SHARED_ALLOCTRACER_HPP
+#endif // SHARE_GC_SHARED_ALLOCTRACER_HPP
--- a/src/hotspot/share/gc/shared/barrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/barrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_BARRIERSET_HPP
-#define SHARE_VM_GC_SHARED_BARRIERSET_HPP
+#ifndef SHARE_GC_SHARED_BARRIERSET_HPP
+#define SHARE_GC_SHARED_BARRIERSET_HPP
 
 #include "gc/shared/barrierSetConfig.hpp"
 #include "memory/memRegion.hpp"
@@ -321,4 +321,4 @@
   return static_cast<T*>(bs);
 }
 
-#endif // SHARE_VM_GC_SHARED_BARRIERSET_HPP
+#endif // SHARE_GC_SHARED_BARRIERSET_HPP
--- a/src/hotspot/share/gc/shared/barrierSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/barrierSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_GC_SHARED_BARRIERSET_INLINE_HPP
-#define SHARE_VM_GC_SHARED_BARRIERSET_INLINE_HPP
+#ifndef SHARE_GC_SHARED_BARRIERSET_INLINE_HPP
+#define SHARE_GC_SHARED_BARRIERSET_INLINE_HPP
 
 #include "gc/shared/barrierSet.hpp"
 #include "oops/accessDecorators.hpp"
@@ -57,4 +57,4 @@
   return true;
 }
 
-#endif // SHARE_VM_GC_SHARED_BARRIERSET_INLINE_HPP
+#endif // SHARE_GC_SHARED_BARRIERSET_INLINE_HPP
--- a/src/hotspot/share/gc/shared/barrierSetConfig.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/barrierSetConfig.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
-#define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
+#ifndef SHARE_GC_SHARED_BARRIERSETCONFIG_HPP
+#define SHARE_GC_SHARED_BARRIERSETCONFIG_HPP
 
 #include "utilities/macros.hpp"
 
@@ -59,4 +59,4 @@
 
 #define BT_BUILDTIME_DECORATORS (ACCESS_PRIMITIVE_SUPPORT | ACCESS_TO_SPACE_INVARIANT_SUPPORT)
 
-#endif // SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
+#endif // SHARE_GC_SHARED_BARRIERSETCONFIG_HPP
--- a/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
-#define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
+#ifndef SHARE_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
+#define SHARE_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
 
 #include "gc/shared/barrierSetConfig.hpp"
 
@@ -43,4 +43,4 @@
 #include "gc/z/zBarrierSet.inline.hpp"
 #endif
 
-#endif // SHARE_VM_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
+#endif // SHARE_GC_SHARED_BARRIERSETCONFIG_INLINE_HPP
--- a/src/hotspot/share/gc/shared/barrierSetNMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/barrierSetNMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_CODE_NMETHOD_BARRIER_HPP
-#define SHARE_CODE_NMETHOD_BARRIER_HPP
+#ifndef SHARE_GC_SHARED_BARRIERSETNMETHOD_HPP
+#define SHARE_GC_SHARED_BARRIERSETNMETHOD_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -49,4 +49,4 @@
 };
 
 
-#endif // SHARE_CODE_NMETHOD_BARRIER_HPP
+#endif // SHARE_GC_SHARED_BARRIERSETNMETHOD_HPP
--- a/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_HPP
-#define SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_HPP
+#ifndef SHARE_GC_SHARED_BLOCKOFFSETTABLE_HPP
+#define SHARE_GC_SHARED_BLOCKOFFSETTABLE_HPP
 
 #include "gc/shared/memset_with_concurrent_readers.hpp"
 #include "memory/allocation.hpp"
@@ -545,4 +545,4 @@
   virtual size_t last_active_index() const;
 };
 
-#endif // SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_HPP
+#endif // SHARE_GC_SHARED_BLOCKOFFSETTABLE_HPP
--- a/src/hotspot/share/gc/shared/blockOffsetTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/blockOffsetTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
-#define SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
+#ifndef SHARE_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
+#define SHARE_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
 
 #include "gc/shared/blockOffsetTable.hpp"
 #include "gc/shared/space.hpp"
@@ -96,4 +96,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
+#endif // SHARE_GC_SHARED_BLOCKOFFSETTABLE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/cardGeneration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardGeneration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDGENERATION_HPP
-#define SHARE_VM_GC_SHARED_CARDGENERATION_HPP
+#ifndef SHARE_GC_SHARED_CARDGENERATION_HPP
+#define SHARE_GC_SHARED_CARDGENERATION_HPP
 
 // Class CardGeneration is a generation that is covered by a card table,
 // and uses a card-size block-offset array to implement block_start.
@@ -96,4 +96,4 @@
   CompactibleSpace* first_compaction_space() const;
 };
 
-#endif // SHARE_VM_GC_SHARED_CARDGENERATION_HPP
+#endif // SHARE_GC_SHARED_CARDGENERATION_HPP
--- a/src/hotspot/share/gc/shared/cardGeneration.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardGeneration.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDGENERATION_INLINE_HPP
-#define SHARE_VM_GC_SHARED_CARDGENERATION_INLINE_HPP
+#ifndef SHARE_GC_SHARED_CARDGENERATION_INLINE_HPP
+#define SHARE_GC_SHARED_CARDGENERATION_INLINE_HPP
 
 #include "gc/shared/cardGeneration.hpp"
 #include "gc/shared/space.hpp"
@@ -52,4 +52,4 @@
   return space();
 }
 
-#endif // SHARE_VM_GC_SHARED_CARDGENERATION_INLINE_HPP
+#endif // SHARE_GC_SHARED_CARDGENERATION_INLINE_HPP
--- a/src/hotspot/share/gc/shared/cardTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDTABLE_HPP
-#define SHARE_VM_GC_SHARED_CARDTABLE_HPP
+#ifndef SHARE_GC_SHARED_CARDTABLE_HPP
+#define SHARE_GC_SHARED_CARDTABLE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
@@ -263,4 +263,4 @@
   void verify_dirty_region(MemRegion mr) PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_GC_SHARED_CARDTABLE_HPP
+#endif // SHARE_GC_SHARED_CARDTABLE_HPP
--- a/src/hotspot/share/gc/shared/cardTableBarrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardTableBarrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_HPP
-#define SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_HPP
+#ifndef SHARE_GC_SHARED_CARDTABLEBARRIERSET_HPP
+#define SHARE_GC_SHARED_CARDTABLEBARRIERSET_HPP
 
 #include "gc/shared/modRefBarrierSet.hpp"
 #include "utilities/align.hpp"
@@ -122,4 +122,4 @@
   typedef ::CardTableBarrierSet type;
 };
 
-#endif // SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_HPP
+#endif // SHARE_GC_SHARED_CARDTABLEBARRIERSET_HPP
--- a/src/hotspot/share/gc/shared/cardTableBarrierSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardTableBarrierSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
-#define SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
+#ifndef SHARE_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
+#define SHARE_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
 
 #include "gc/shared/cardTableBarrierSet.hpp"
 #include "gc/shared/cardTable.hpp"
@@ -40,4 +40,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
+#endif // SHARE_GC_SHARED_CARDTABLEBARRIERSET_INLINE_HPP
--- a/src/hotspot/share/gc/shared/cardTableRS.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/cardTableRS.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CARDTABLERS_HPP
-#define SHARE_VM_GC_SHARED_CARDTABLERS_HPP
+#ifndef SHARE_GC_SHARED_CARDTABLERS_HPP
+#define SHARE_GC_SHARED_CARDTABLERS_HPP
 
 #include "gc/shared/cardTable.hpp"
 #include "memory/memRegion.hpp"
@@ -214,4 +214,4 @@
   void do_MemRegion(MemRegion mr);
 };
 
-#endif // SHARE_VM_GC_SHARED_CARDTABLERS_HPP
+#endif // SHARE_GC_SHARED_CARDTABLERS_HPP
--- a/src/hotspot/share/gc/shared/collectedHeap.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/collectedHeap.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -51,10 +51,6 @@
 
 class ClassLoaderData;
 
-#ifdef ASSERT
-int CollectedHeap::_fire_out_of_memory_count = 0;
-#endif
-
 size_t CollectedHeap::_filler_array_max_size = 0;
 
 template <>
--- a/src/hotspot/share/gc/shared/collectedHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/collectedHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_COLLECTEDHEAP_HPP
-#define SHARE_VM_GC_SHARED_COLLECTEDHEAP_HPP
+#ifndef SHARE_GC_SHARED_COLLECTEDHEAP_HPP
+#define SHARE_GC_SHARED_COLLECTEDHEAP_HPP
 
 #include "gc/shared/gcCause.hpp"
 #include "gc/shared/gcWhen.hpp"
@@ -100,10 +100,6 @@
   friend class MemAllocator;
 
  private:
-#ifdef ASSERT
-  static int       _fire_out_of_memory_count;
-#endif
-
   GCHeapLog* _gc_heap_log;
 
   MemRegion _reserved;
@@ -600,12 +596,6 @@
   void reset_promotion_should_fail(volatile size_t* count);
   void reset_promotion_should_fail();
 #endif  // #ifndef PRODUCT
-
-#ifdef ASSERT
-  static int fired_fake_oom() {
-    return (CIFireOOMAt > 1 && _fire_out_of_memory_count >= CIFireOOMAt);
-  }
-#endif
 };
 
 // Class to set and reset the GC cause for a CollectedHeap.
@@ -625,4 +615,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_COLLECTEDHEAP_HPP
+#endif // SHARE_GC_SHARED_COLLECTEDHEAP_HPP
--- a/src/hotspot/share/gc/shared/collectedHeap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/collectedHeap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
-#define SHARE_VM_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
+#ifndef SHARE_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
+#define SHARE_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/memAllocator.hpp"
@@ -82,4 +82,4 @@
   return allocator.allocate();
 }
 
-#endif // SHARE_VM_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
+#endif // SHARE_GC_SHARED_COLLECTEDHEAP_INLINE_HPP
--- a/src/hotspot/share/gc/shared/collectorCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/collectorCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_COLLECTORCOUNTERS_HPP
-#define SHARE_VM_GC_SHARED_COLLECTORCOUNTERS_HPP
+#ifndef SHARE_GC_SHARED_COLLECTORCOUNTERS_HPP
+#define SHARE_GC_SHARED_COLLECTORCOUNTERS_HPP
 
 #include "runtime/perfData.hpp"
 
@@ -73,4 +73,4 @@
     ~TraceCollectorStats();
 };
 
-#endif // SHARE_VM_GC_SHARED_COLLECTORCOUNTERS_HPP
+#endif // SHARE_GC_SHARED_COLLECTORCOUNTERS_HPP
--- a/src/hotspot/share/gc/shared/collectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/collectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_COLLECTORPOLICY_HPP
-#define SHARE_VM_GC_SHARED_COLLECTORPOLICY_HPP
+#ifndef SHARE_GC_SHARED_COLLECTORPOLICY_HPP
+#define SHARE_GC_SHARED_COLLECTORPOLICY_HPP
 
 #include "gc/shared/barrierSet.hpp"
 #include "gc/shared/cardTableRS.hpp"
@@ -146,4 +146,4 @@
   MarkSweepPolicy() {}
 };
 
-#endif // SHARE_VM_GC_SHARED_COLLECTORPOLICY_HPP
+#endif // SHARE_GC_SHARED_COLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/shared/concurrentGCPhaseManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/concurrentGCPhaseManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_CONCURRENTGCPHASEMANAGER_HPP
-#define SHARE_VM_GC_CONCURRENTGCPHASEMANAGER_HPP
+#ifndef SHARE_GC_SHARED_CONCURRENTGCPHASEMANAGER_HPP
+#define SHARE_GC_SHARED_CONCURRENTGCPHASEMANAGER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -134,4 +134,4 @@
   bool wait_when_requested_impl() const;
 };
 
-#endif // include guard
+#endif // SHARE_GC_SHARED_CONCURRENTGCPHASEMANAGER_HPP
--- a/src/hotspot/share/gc/shared/concurrentGCThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/concurrentGCThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_CONCURRENTGCTHREAD_HPP
-#define SHARE_VM_GC_SHARED_CONCURRENTGCTHREAD_HPP
+#ifndef SHARE_GC_SHARED_CONCURRENTGCTHREAD_HPP
+#define SHARE_GC_SHARED_CONCURRENTGCTHREAD_HPP
 
 #include "runtime/thread.hpp"
 #include "utilities/macros.hpp"
@@ -70,4 +70,4 @@
   bool has_terminated()   { return _has_terminated; }
 };
 
-#endif // SHARE_VM_GC_SHARED_CONCURRENTGCTHREAD_HPP
+#endif // SHARE_GC_SHARED_CONCURRENTGCTHREAD_HPP
--- a/src/hotspot/share/gc/shared/copyFailedInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/copyFailedInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_COPYFAILEDINFO_HPP
-#define SHARE_VM_GC_SHARED_COPYFAILEDINFO_HPP
+#ifndef SHARE_GC_SHARED_COPYFAILEDINFO_HPP
+#define SHARE_GC_SHARED_COPYFAILEDINFO_HPP
 
 #include "jfr/support/jfrThreadId.hpp"
 #include "runtime/thread.hpp"
@@ -90,4 +90,4 @@
 
 class EvacuationFailedInfo : public CopyFailedInfo {};
 
-#endif // SHARE_VM_GC_SHARED_COPYFAILEDINFO_HPP
+#endif // SHARE_GC_SHARED_COPYFAILEDINFO_HPP
--- a/src/hotspot/share/gc/shared/gcBehaviours.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcBehaviours.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_SHARED_BEHAVIOURS_HPP
-#define SHARE_GC_SHARED_BEHAVIOURS_HPP
+#ifndef SHARE_GC_SHARED_GCBEHAVIOURS_HPP
+#define SHARE_GC_SHARED_GCBEHAVIOURS_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -50,4 +50,4 @@
   virtual bool is_unloading(CompiledMethod* cm) const;
 };
 
-#endif // SHARE_GC_SHARED_BEHAVIOURS_HPP
+#endif // SHARE_GC_SHARED_GCBEHAVIOURS_HPP
--- a/src/hotspot/share/gc/shared/gcCause.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcCause.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCCAUSE_HPP
-#define SHARE_VM_GC_SHARED_GCCAUSE_HPP
+#ifndef SHARE_GC_SHARED_GCCAUSE_HPP
+#define SHARE_GC_SHARED_GCCAUSE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -137,4 +137,4 @@
   static const char* to_string(GCCause::Cause cause);
 };
 
-#endif // SHARE_VM_GC_SHARED_GCCAUSE_HPP
+#endif // SHARE_GC_SHARED_GCCAUSE_HPP
--- a/src/hotspot/share/gc/shared/gcConfiguration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcConfiguration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCCONFIGURATION_HPP
-#define SHARE_VM_GC_SHARED_GCCONFIGURATION_HPP
+#ifndef SHARE_GC_SHARED_GCCONFIGURATION_HPP
+#define SHARE_GC_SHARED_GCCONFIGURATION_HPP
 
 #include "gc/shared/gcName.hpp"
 #include "memory/universe.hpp"
@@ -77,4 +77,4 @@
   intx new_ratio() const;
 };
 
-#endif // SHARE_VM_GC_SHARED_GCCONFIGURATION_HPP
+#endif // SHARE_GC_SHARED_GCCONFIGURATION_HPP
--- a/src/hotspot/share/gc/shared/gcHeapSummary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcHeapSummary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCHEAPSUMMARY_HPP
-#define SHARE_VM_GC_SHARED_GCHEAPSUMMARY_HPP
+#ifndef SHARE_GC_SHARED_GCHEAPSUMMARY_HPP
+#define SHARE_GC_SHARED_GCHEAPSUMMARY_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/metaspaceChunkFreeListSummary.hpp"
@@ -231,4 +231,4 @@
   size_t failure_waste() const { return _failure_waste; }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCHEAPSUMMARY_HPP
+#endif // SHARE_GC_SHARED_GCHEAPSUMMARY_HPP
--- a/src/hotspot/share/gc/shared/gcId.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcId.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCID_HPP
-#define SHARE_VM_GC_SHARED_GCID_HPP
+#ifndef SHARE_GC_SHARED_GCID_HPP
+#define SHARE_GC_SHARED_GCID_HPP
 
 #include "memory/allocation.hpp"
 
@@ -56,4 +56,4 @@
   ~GCIdMark();
 };
 
-#endif // SHARE_VM_GC_SHARED_GCID_HPP
+#endif // SHARE_GC_SHARED_GCID_HPP
--- a/src/hotspot/share/gc/shared/gcLocker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcLocker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCLOCKER_HPP
-#define SHARE_VM_GC_SHARED_GCLOCKER_HPP
+#ifndef SHARE_GC_SHARED_GCLOCKER_HPP
+#define SHARE_GC_SHARED_GCLOCKER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -145,4 +145,4 @@
   static address needs_gc_address() { return (address) &_needs_gc; }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCLOCKER_HPP
+#endif // SHARE_GC_SHARED_GCLOCKER_HPP
--- a/src/hotspot/share/gc/shared/gcLocker.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcLocker.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCLOCKER_INLINE_HPP
-#define SHARE_VM_GC_SHARED_GCLOCKER_INLINE_HPP
+#ifndef SHARE_GC_SHARED_GCLOCKER_INLINE_HPP
+#define SHARE_GC_SHARED_GCLOCKER_INLINE_HPP
 
 #include "gc/shared/gcLocker.hpp"
 #include "runtime/thread.hpp"
@@ -54,4 +54,4 @@
   thread->exit_critical();
 }
 
-#endif // SHARE_VM_GC_SHARED_GCLOCKER_INLINE_HPP
+#endif // SHARE_GC_SHARED_GCLOCKER_INLINE_HPP
--- a/src/hotspot/share/gc/shared/gcName.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcName.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCNAME_HPP
-#define SHARE_VM_GC_SHARED_GCNAME_HPP
+#ifndef SHARE_GC_SHARED_GCNAME_HPP
+#define SHARE_GC_SHARED_GCNAME_HPP
 
 #include "utilities/debug.hpp"
 
@@ -66,4 +66,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCNAME_HPP
+#endif // SHARE_GC_SHARED_GCNAME_HPP
--- a/src/hotspot/share/gc/shared/gcPolicyCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcPolicyCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCPOLICYCOUNTERS_HPP
-#define SHARE_VM_GC_SHARED_GCPOLICYCOUNTERS_HPP
+#ifndef SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
+#define SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
 
 #include "runtime/perfData.hpp"
 
@@ -33,46 +33,42 @@
 class GCPolicyCounters: public CHeapObj<mtGC> {
   friend class VMStructs;
 
-  private:
-
-    // Constant PerfData types don't need to retain a reference.
-    // However, it's a good idea to document them here.
-    // PerfStringConstant*     _name;
-    // PerfStringConstant*     _collector_size;
-    // PerfStringConstant*     _generation_size;
+  // Constant PerfData types don't need to retain a reference.
+  // However, it's a good idea to document them here.
+  // PerfStringConstant* _name;
+  // PerfStringConstant* _collector_size;
+  // PerfStringConstant* _generation_size;
 
-    PerfVariable*     _tenuring_threshold;
-    PerfVariable*     _desired_survivor_size;
+  PerfVariable* _tenuring_threshold;
+  PerfVariable* _desired_survivor_size;
 
-    const char* _name_space;
+  const char* _name_space;
 
- public:
-
+public:
   enum Name {
     NONE,
     GCPolicyCountersKind,
     GCAdaptivePolicyCountersKind,
-    PSGCAdaptivePolicyCountersKind,
-    CMSGCAdaptivePolicyCountersKind
+    PSGCAdaptivePolicyCountersKind
   };
 
   GCPolicyCounters(const char* name, int collectors, int generations);
 
-    inline PerfVariable* tenuring_threshold() const  {
-      return _tenuring_threshold;
-    }
+  inline PerfVariable* tenuring_threshold() const  {
+    return _tenuring_threshold;
+  }
 
-    inline PerfVariable* desired_survivor_size() const  {
-      return _desired_survivor_size;
-    }
+  inline PerfVariable* desired_survivor_size() const  {
+    return _desired_survivor_size;
+  }
 
-    const char* name_space() const { return _name_space; }
+  const char* name_space() const { return _name_space; }
 
-    virtual void update_counters() {}
+  virtual void update_counters() {}
 
-    virtual GCPolicyCounters::Name kind() const {
-      return GCPolicyCounters::GCPolicyCountersKind;
-    }
+  virtual GCPolicyCounters::Name kind() const {
+    return GCPolicyCounters::GCPolicyCountersKind;
+  }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCPOLICYCOUNTERS_HPP
+#endif // SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
--- a/src/hotspot/share/gc/shared/gcStats.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcStats.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCSTATS_HPP
-#define SHARE_VM_GC_SHARED_GCSTATS_HPP
+#ifndef SHARE_GC_SHARED_GCSTATS_HPP
+#define SHARE_GC_SHARED_GCSTATS_HPP
 
 #include "gc/shared/gcUtil.hpp"
 
@@ -58,4 +58,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCSTATS_HPP
+#endif // SHARE_GC_SHARED_GCSTATS_HPP
--- a/src/hotspot/share/gc/shared/gcTimer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTimer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCTIMER_HPP
-#define SHARE_VM_GC_SHARED_GCTIMER_HPP
+#ifndef SHARE_GC_SHARED_GCTIMER_HPP
+#define SHARE_GC_SHARED_GCTIMER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -183,4 +183,4 @@
   virtual GCPhase* next();
 };
 
-#endif // SHARE_VM_GC_SHARED_GCTIMER_HPP
+#endif // SHARE_GC_SHARED_GCTIMER_HPP
--- a/src/hotspot/share/gc/shared/gcTrace.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTrace.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -37,7 +37,7 @@
 #include "utilities/macros.hpp"
 #include "utilities/ticks.hpp"
 #if INCLUDE_G1GC
-#include "gc/g1/evacuationInfo.hpp"
+#include "gc/g1/g1EvacuationInfo.hpp"
 #endif
 
 void GCTracer::report_gc_start_impl(GCCause::Cause cause, const Ticks& timestamp) {
@@ -200,7 +200,7 @@
   send_g1_young_gc_event();
 }
 
-void G1NewTracer::report_evacuation_info(EvacuationInfo* info) {
+void G1NewTracer::report_evacuation_info(G1EvacuationInfo* info) {
   send_evacuation_info_event(info);
 }
 
--- a/src/hotspot/share/gc/shared/gcTrace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTrace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCTRACE_HPP
-#define SHARE_VM_GC_SHARED_GCTRACE_HPP
+#ifndef SHARE_GC_SHARED_GCTRACE_HPP
+#define SHARE_GC_SHARED_GCTRACE_HPP
 
 #include "gc/shared/copyFailedInfo.hpp"
 #include "gc/shared/gcCause.hpp"
@@ -38,7 +38,7 @@
 #include "gc/g1/g1YCTypes.hpp"
 #endif
 
-class EvacuationInfo;
+class G1EvacuationInfo;
 class GCHeapSummary;
 class MetaspaceChunkFreeListSummary;
 class MetaspaceSummary;
@@ -248,7 +248,7 @@
 
   void report_yc_type(G1YCType type);
   void report_gc_end_impl(const Ticks& timestamp, TimePartitions* time_partitions);
-  void report_evacuation_info(EvacuationInfo* info);
+  void report_evacuation_info(G1EvacuationInfo* info);
   void report_evacuation_failed(EvacuationFailedInfo& ef_info);
 
   void report_evacuation_statistics(const G1EvacSummary& young_summary, const G1EvacSummary& old_summary) const;
@@ -268,7 +268,7 @@
                                        bool prediction_active);
  private:
   void send_g1_young_gc_event();
-  void send_evacuation_info_event(EvacuationInfo* info);
+  void send_evacuation_info_event(G1EvacuationInfo* info);
   void send_evacuation_failed_event(const EvacuationFailedInfo& ef_info) const;
 
   void send_young_evacuation_statistics(const G1EvacSummary& summary) const;
@@ -309,4 +309,4 @@
   void set_gc_cause(GCCause::Cause cause);
 };
 
-#endif // SHARE_VM_GC_SHARED_GCTRACE_HPP
+#endif // SHARE_GC_SHARED_GCTRACE_HPP
--- a/src/hotspot/share/gc/shared/gcTraceSend.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTraceSend.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -32,7 +32,7 @@
 #include "runtime/os.hpp"
 #include "utilities/macros.hpp"
 #if INCLUDE_G1GC
-#include "gc/g1/evacuationInfo.hpp"
+#include "gc/g1/g1EvacuationInfo.hpp"
 #include "gc/g1/g1YCTypes.hpp"
 #endif
 
@@ -209,7 +209,7 @@
   }
 }
 
-void G1NewTracer::send_evacuation_info_event(EvacuationInfo* info) {
+void G1NewTracer::send_evacuation_info_event(G1EvacuationInfo* info) {
   EventEvacuationInformation e;
   if (e.should_commit()) {
     e.set_gcId(GCId::current());
--- a/src/hotspot/share/gc/shared/gcTraceTime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTraceTime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCTRACETIME_HPP
-#define SHARE_VM_GC_SHARED_GCTRACETIME_HPP
+#ifndef SHARE_GC_SHARED_GCTRACETIME_HPP
+#define SHARE_GC_SHARED_GCTRACETIME_HPP
 
 #include "logging/log.hpp"
 #include "logging/logHandle.hpp"
@@ -86,4 +86,4 @@
   jlong start_time() { return _start_time; }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCTRACETIME_HPP
+#endif // SHARE_GC_SHARED_GCTRACETIME_HPP
--- a/src/hotspot/share/gc/shared/gcTraceTime.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcTraceTime.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCTRACETIME_INLINE_HPP
-#define SHARE_VM_GC_SHARED_GCTRACETIME_INLINE_HPP
+#ifndef SHARE_GC_SHARED_GCTRACETIME_INLINE_HPP
+#define SHARE_GC_SHARED_GCTRACETIME_INLINE_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/gcTimer.hpp"
@@ -158,4 +158,4 @@
 #define GCTraceTime(Level, ...) GCTraceTimeImplWrapper<LogLevel::Level, LOG_TAGS(__VA_ARGS__)>
 #define GCTraceConcTime(Level, ...) GCTraceConcTimeImpl<LogLevel::Level, LOG_TAGS(__VA_ARGS__)>
 
-#endif // SHARE_VM_GC_SHARED_GCTRACETIME_INLINE_HPP
+#endif // SHARE_GC_SHARED_GCTRACETIME_INLINE_HPP
--- a/src/hotspot/share/gc/shared/gcUtil.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcUtil.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCUTIL_HPP
-#define SHARE_VM_GC_SHARED_GCUTIL_HPP
+#ifndef SHARE_GC_SHARED_GCUTIL_HPP
+#define SHARE_GC_SHARED_GCUTIL_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/timer.hpp"
@@ -216,4 +216,4 @@
   bool increment_will_decrease();
 };
 
-#endif // SHARE_VM_GC_SHARED_GCUTIL_HPP
+#endif // SHARE_GC_SHARED_GCUTIL_HPP
--- a/src/hotspot/share/gc/shared/gcUtil.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcUtil.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCUTIL_INLINE_HPP
-#define SHARE_VM_GC_SHARED_GCUTIL_INLINE_HPP
+#ifndef SHARE_GC_SHARED_GCUTIL_INLINE_HPP
+#define SHARE_GC_SHARED_GCUTIL_INLINE_HPP
 
 #include "gc/shared/gcUtil.hpp"
 #include "memory/allocation.inline.hpp"
@@ -32,4 +32,4 @@
   return CHeapObj<mtGC>::operator new(size);
 }
 
-#endif // SHARE_VM_GC_SHARED_GCUTIL_INLINE_HPP
+#endif // SHARE_GC_SHARED_GCUTIL_INLINE_HPP
--- a/src/hotspot/share/gc/shared/gcVMOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcVMOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCVMOPERATIONS_HPP
-#define SHARE_VM_GC_SHARED_GCVMOPERATIONS_HPP
+#ifndef SHARE_GC_SHARED_GCVMOPERATIONS_HPP
+#define SHARE_GC_SHARED_GCVMOPERATIONS_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/genCollectedHeap.hpp"
@@ -238,4 +238,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCVMOPERATIONS_HPP
+#endif // SHARE_GC_SHARED_GCVMOPERATIONS_HPP
--- a/src/hotspot/share/gc/shared/gcWhen.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/gcWhen.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GCWHEN_HPP
-#define SHARE_VM_GC_SHARED_GCWHEN_HPP
+#ifndef SHARE_GC_SHARED_GCWHEN_HPP
+#define SHARE_GC_SHARED_GCWHEN_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -45,4 +45,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_GCWHEN_HPP
+#endif // SHARE_GC_SHARED_GCWHEN_HPP
--- a/src/hotspot/share/gc/shared/genCollectedHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/genCollectedHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
-#define SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
+#ifndef SHARE_GC_SHARED_GENCOLLECTEDHEAP_HPP
+#define SHARE_GC_SHARED_GENCOLLECTEDHEAP_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/collectorPolicy.hpp"
@@ -505,4 +505,4 @@
   void record_gen_tops_before_GC() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
+#endif // SHARE_GC_SHARED_GENCOLLECTEDHEAP_HPP
--- a/src/hotspot/share/gc/shared/genMemoryPools.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/genMemoryPools.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENMEMORYPOOLS_HPP
-#define SHARE_VM_GC_SHARED_GENMEMORYPOOLS_HPP
+#ifndef SHARE_GC_SHARED_GENMEMORYPOOLS_HPP
+#define SHARE_GC_SHARED_GENMEMORYPOOLS_HPP
 
 #include "services/memoryPool.hpp"
 
@@ -72,4 +72,4 @@
   size_t used_in_bytes();
 };
 
-#endif // SHARE_VM_GC_SHARED_GENMEMORYPOOLS_HPP
+#endif // SHARE_GC_SHARED_GENMEMORYPOOLS_HPP
--- a/src/hotspot/share/gc/shared/genOopClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/genOopClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP
-#define SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP
+#ifndef SHARE_GC_SHARED_GENOOPCLOSURES_HPP
+#define SHARE_GC_SHARED_GENOOPCLOSURES_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/oop.hpp"
@@ -188,4 +188,4 @@
 
 #endif // INCLUDE_SERIALGC
 
-#endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP
+#endif // SHARE_GC_SHARED_GENOOPCLOSURES_HPP
--- a/src/hotspot/share/gc/shared/genOopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/genOopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
+#define SHARE_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
 
 #include "gc/shared/cardTableRS.hpp"
 #include "gc/shared/genCollectedHeap.hpp"
@@ -171,4 +171,4 @@
 
 #endif // INCLUDE_SERIALGC
 
-#endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
+#endif // SHARE_GC_SHARED_GENOOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/shared/generation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/generation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENERATION_HPP
-#define SHARE_VM_GC_SHARED_GENERATION_HPP
+#ifndef SHARE_GC_SHARED_GENERATION_HPP
+#define SHARE_GC_SHARED_GENERATION_HPP
 
 #include "gc/shared/collectorCounters.hpp"
 #include "gc/shared/referenceProcessor.hpp"
@@ -553,4 +553,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHARED_GENERATION_HPP
+#endif // SHARE_GC_SHARED_GENERATION_HPP
--- a/src/hotspot/share/gc/shared/generationCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/generationCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENERATIONCOUNTERS_HPP
-#define SHARE_VM_GC_SHARED_GENERATIONCOUNTERS_HPP
+#ifndef SHARE_GC_SHARED_GENERATIONCOUNTERS_HPP
+#define SHARE_GC_SHARED_GENERATIONCOUNTERS_HPP
 
 #include "memory/virtualspace.hpp"
 #include "runtime/perfData.hpp"
@@ -75,4 +75,4 @@
   const char* name_space() const        { return _name_space; }
 
 };
-#endif // SHARE_VM_GC_SHARED_GENERATIONCOUNTERS_HPP
+#endif // SHARE_GC_SHARED_GENERATIONCOUNTERS_HPP
--- a/src/hotspot/share/gc/shared/generationSpec.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/generationSpec.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_GENERATIONSPEC_HPP
-#define SHARE_VM_GC_SHARED_GENERATIONSPEC_HPP
+#ifndef SHARE_GC_SHARED_GENERATIONSPEC_HPP
+#define SHARE_GC_SHARED_GENERATIONSPEC_HPP
 
 #include "gc/shared/generation.hpp"
 #include "utilities/align.hpp"
@@ -58,4 +58,4 @@
 
 typedef GenerationSpec* GenerationSpecPtr;
 
-#endif // SHARE_VM_GC_SHARED_GENERATIONSPEC_HPP
+#endif // SHARE_GC_SHARED_GENERATIONSPEC_HPP
--- a/src/hotspot/share/gc/shared/hSpaceCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/hSpaceCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_HSPACECOUNTERS_HPP
-#define SHARE_VM_GC_SHARED_HSPACECOUNTERS_HPP
+#ifndef SHARE_GC_SHARED_HSPACECOUNTERS_HPP
+#define SHARE_GC_SHARED_HSPACECOUNTERS_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/perfData.hpp"
@@ -65,4 +65,4 @@
 
   const char* name_space() const        { return _name_space; }
 };
-#endif // SHARE_VM_GC_SHARED_HSPACECOUNTERS_HPP
+#endif // SHARE_GC_SHARED_HSPACECOUNTERS_HPP
--- a/src/hotspot/share/gc/shared/isGCActiveMark.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/isGCActiveMark.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_ISGCACTIVEMARK_HPP
-#define SHARE_VM_GC_SHARED_ISGCACTIVEMARK_HPP
+#ifndef SHARE_GC_SHARED_ISGCACTIVEMARK_HPP
+#define SHARE_GC_SHARED_ISGCACTIVEMARK_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "memory/allocation.hpp"
@@ -48,4 +48,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_ISGCACTIVEMARK_HPP
+#endif // SHARE_GC_SHARED_ISGCACTIVEMARK_HPP
--- a/src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_SHARED_COMMANDLINEFLAGCONSTRAINTSGC_HPP
-#define SHARE_GC_SHARED_COMMANDLINEFLAGCONSTRAINTSGC_HPP
+#ifndef SHARE_GC_SHARED_JVMFLAGCONSTRAINTSGC_HPP
+#define SHARE_GC_SHARED_JVMFLAGCONSTRAINTSGC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -74,4 +74,4 @@
 // Internal
 JVMFlag::Error MaxPLABSizeBounds(const char* name, size_t value, bool verbose);
 
-#endif // SHARE_GC_SHARED_COMMANDLINEFLAGCONSTRAINTSGC_HPP
+#endif // SHARE_GC_SHARED_JVMFLAGCONSTRAINTSGC_HPP
--- a/src/hotspot/share/gc/shared/markBitMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/markBitMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_MARKBITMAP_HPP
-#define SHARE_VM_GC_SHARED_MARKBITMAP_HPP
+#ifndef SHARE_GC_SHARED_MARKBITMAP_HPP
+#define SHARE_GC_SHARED_MARKBITMAP_HPP
 
 #include "memory/memRegion.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -98,4 +98,4 @@
   void clear_range_large(MemRegion mr) { do_clear(mr, true);       }
 };
 
-#endif // SHARE_VM_GC_SHARED_MARKBITMAP_HPP
+#endif // SHARE_GC_SHARED_MARKBITMAP_HPP
--- a/src/hotspot/share/gc/shared/markBitMap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/markBitMap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_MARKBITMAP_INLINE_HPP
-#define SHARE_VM_GC_SHARED_MARKBITMAP_INLINE_HPP
+#ifndef SHARE_GC_SHARED_MARKBITMAP_INLINE_HPP
+#define SHARE_GC_SHARED_MARKBITMAP_INLINE_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/markBitMap.hpp"
@@ -69,4 +69,4 @@
   clear((HeapWord*) obj);
 }
 
-#endif // SHARE_VM_GC_SHARED_MARKBITMAP_INLINE_HPP
+#endif // SHARE_GC_SHARED_MARKBITMAP_INLINE_HPP
--- a/src/hotspot/share/gc/shared/memAllocator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/memAllocator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_GC_SHARED_MEM_ALLOCATOR_HPP
-#define SHARE_GC_SHARED_MEM_ALLOCATOR_HPP
+#ifndef SHARE_GC_SHARED_MEMALLOCATOR_HPP
+#define SHARE_GC_SHARED_MEMALLOCATOR_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "memory/memRegion.hpp"
@@ -107,4 +107,4 @@
   virtual oop initialize(HeapWord* mem) const;
 };
 
-#endif // SHARE_GC_SHARED_MEM_ALLOCATOR_HPP
+#endif // SHARE_GC_SHARED_MEMALLOCATOR_HPP
--- a/src/hotspot/share/gc/shared/memset_with_concurrent_readers.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/memset_with_concurrent_readers.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP
-#define SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP
+#ifndef SHARE_GC_SHARED_MEMSET_WITH_CONCURRENT_READERS_HPP
+#define SHARE_GC_SHARED_MEMSET_WITH_CONCURRENT_READERS_HPP
 
 #include "utilities/macros.hpp"
 
@@ -47,4 +47,4 @@
 
 #endif // End of target dispatch.
 
-#endif // SRC_SHARE_VM_GC_SHARED_MEMSETWITHCONCURRENTREADERS_HPP
+#endif // SHARE_GC_SHARED_MEMSET_WITH_CONCURRENT_READERS_HPP
--- a/src/hotspot/share/gc/shared/modRefBarrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/modRefBarrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_MODREFBARRIERSET_HPP
-#define SHARE_VM_GC_SHARED_MODREFBARRIERSET_HPP
+#ifndef SHARE_GC_SHARED_MODREFBARRIERSET_HPP
+#define SHARE_GC_SHARED_MODREFBARRIERSET_HPP
 
 #include "gc/shared/barrierSet.hpp"
 #include "memory/memRegion.hpp"
@@ -109,4 +109,4 @@
   static const BarrierSet::Name value = BarrierSet::ModRef;
 };
 
-#endif // SHARE_VM_GC_SHARED_MODREFBARRIERSET_HPP
+#endif // SHARE_GC_SHARED_MODREFBARRIERSET_HPP
--- a/src/hotspot/share/gc/shared/modRefBarrierSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/modRefBarrierSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
-#define SHARE_VM_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
+#ifndef SHARE_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
+#define SHARE_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
 
 #include "gc/shared/barrierSet.hpp"
 #include "gc/shared/modRefBarrierSet.hpp"
@@ -138,4 +138,4 @@
   bs->write_region(MemRegion((HeapWord*)(void*)dst, size));
 }
 
-#endif // SHARE_VM_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
+#endif // SHARE_GC_SHARED_MODREFBARRIERSET_INLINE_HPP
--- a/src/hotspot/share/gc/shared/objectCountEventSender.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/objectCountEventSender.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
-#define SHARE_VM_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
+#ifndef SHARE_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
+#define SHARE_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
 
 #include "gc/shared/gcTrace.hpp"
 #include "memory/allocation.hpp"
@@ -52,4 +52,4 @@
 
 #endif // INCLUDE_SERVICES
 
-#endif // SHARE_VM_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
+#endif // SHARE_GC_SHARED_OBJECTCOUNTEVENTSENDER_HPP
--- a/src/hotspot/share/gc/shared/oopStorage.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/oopStorage.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -275,4 +275,4 @@
   template<typename F> static SkipNullFn<F> skip_null_fn(F f);
 };
 
-#endif // include guard
+#endif // SHARE_GC_SHARED_OOPSTORAGE_HPP
--- a/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -403,4 +403,4 @@
   iterate_safepoint(if_alive_fn(is_alive, oop_fn(cl)));
 }
 
-#endif // include guard
+#endif // SHARE_GC_SHARED_OOPSTORAGE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/owstTaskTerminator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/owstTaskTerminator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -20,8 +20,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_GC_SHARED_OWSTTASKTERMINATOR_HPP
-#define SHARE_VM_GC_SHARED_OWSTTASKTERMINATOR_HPP
+#ifndef SHARE_GC_SHARED_OWSTTASKTERMINATOR_HPP
+#define SHARE_GC_SHARED_OWSTTASKTERMINATOR_HPP
 
 #include "gc/shared/taskqueue.hpp"
 #include "runtime/mutex.hpp"
@@ -76,4 +76,4 @@
 };
 
 
-#endif // SHARE_VM_GC_SHARED_OWSTTASKTERMINATOR_HPP
+#endif // SHARE_GC_SHARED_OWSTTASKTERMINATOR_HPP
--- a/src/hotspot/share/gc/shared/parallelCleaning.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/parallelCleaning.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,10 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_PARALLELCLEANING_HPP
-#define SHARE_VM_GC_SHARED_PARALLELCLEANING_HPP
+#ifndef SHARE_GC_SHARED_PARALLELCLEANING_HPP
+#define SHARE_GC_SHARED_PARALLELCLEANING_HPP
 
-#include "classfile/classLoaderDataGraph.inline.hpp"
+#include "classfile/classLoaderDataGraph.hpp"
+#include "code/codeCache.hpp"
 #include "gc/shared/oopStorageParState.hpp"
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shared/workgroup.hpp"
@@ -115,4 +116,4 @@
   void work(uint worker_id);
 };
 
-#endif // SHARE_VM_GC_SHARED_PARALLELCLEANING_HPP
+#endif // SHARE_GC_SHARED_PARALLELCLEANING_HPP
--- a/src/hotspot/share/gc/shared/plab.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/plab.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_PLAB_HPP
-#define SHARE_VM_GC_SHARED_PLAB_HPP
+#ifndef SHARE_GC_SHARED_PLAB_HPP
+#define SHARE_GC_SHARED_PLAB_HPP
 
 #include "gc/shared/gcUtil.hpp"
 #include "memory/allocation.hpp"
@@ -211,4 +211,4 @@
   inline void add_undo_wasted(size_t v);
 };
 
-#endif // SHARE_VM_GC_SHARED_PLAB_HPP
+#endif // SHARE_GC_SHARED_PLAB_HPP
--- a/src/hotspot/share/gc/shared/plab.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/plab.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_PLAB_INLINE_HPP
-#define SHARE_VM_GC_SHARED_PLAB_INLINE_HPP
+#ifndef SHARE_GC_SHARED_PLAB_INLINE_HPP
+#define SHARE_GC_SHARED_PLAB_INLINE_HPP
 
 #include "gc/shared/collectedHeap.inline.hpp"
 #include "gc/shared/plab.hpp"
@@ -58,4 +58,4 @@
   Atomic::add(v, &_undo_wasted);
 }
 
-#endif // SHARE_VM_GC_SHARED_PLAB_INLINE_HPP
+#endif // SHARE_GC_SHARED_PLAB_INLINE_HPP
--- a/src/hotspot/share/gc/shared/preservedMarks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/preservedMarks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_PRESERVEDMARKS_HPP
-#define SHARE_VM_GC_SHARED_PRESERVEDMARKS_HPP
+#ifndef SHARE_GC_SHARED_PRESERVEDMARKS_HPP
+#define SHARE_GC_SHARED_PRESERVEDMARKS_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/padded.hpp"
@@ -146,4 +146,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_PRESERVEDMARKS_HPP
+#endif // SHARE_GC_SHARED_PRESERVEDMARKS_HPP
--- a/src/hotspot/share/gc/shared/preservedMarks.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/preservedMarks.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
-#define SHARE_VM_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
+#ifndef SHARE_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
+#define SHARE_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
 
 #include "gc/shared/preservedMarks.hpp"
 #include "logging/log.hpp"
@@ -83,4 +83,4 @@
   _o->set_mark_raw(_m);
 }
 
-#endif // SHARE_VM_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
+#endif // SHARE_GC_SHARED_PRESERVEDMARKS_INLINE_HPP
--- a/src/hotspot/share/gc/shared/ptrQueue.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/ptrQueue.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -24,12 +24,15 @@
 
 #include "precompiled.hpp"
 #include "gc/shared/ptrQueue.hpp"
+#include "logging/log.hpp"
 #include "memory/allocation.hpp"
 #include "memory/allocation.inline.hpp"
 #include "runtime/atomic.hpp"
 #include "runtime/mutex.hpp"
 #include "runtime/mutexLocker.hpp"
+#include "runtime/orderAccess.hpp"
 #include "runtime/thread.inline.hpp"
+#include "utilities/globalCounter.inline.hpp"
 
 #include <new>
 
@@ -85,20 +88,29 @@
   FREE_C_HEAP_ARRAY(char, node);
 }
 
-BufferNode::Allocator::Allocator(size_t buffer_size, Mutex* lock) :
+BufferNode::Allocator::Allocator(const char* name, size_t buffer_size) :
   _buffer_size(buffer_size),
-  _lock(lock),
-  _free_list(NULL),
-  _free_count(0)
+  _pending_list(),
+  _free_list(),
+  _pending_count(0),
+  _free_count(0),
+  _transfer_lock(false)
 {
-  assert(lock != NULL, "precondition");
+  strncpy(_name, name, sizeof(_name));
+  _name[sizeof(_name) - 1] = '\0';
 }
 
 BufferNode::Allocator::~Allocator() {
-  while (_free_list != NULL) {
-    BufferNode* node = _free_list;
-    _free_list = node->next();
-    BufferNode::deallocate(node);
+  delete_list(_free_list.pop_all());
+  delete_list(_pending_list.pop_all());
+}
+
+void BufferNode::Allocator::delete_list(BufferNode* list) {
+  while (list != NULL) {
+    BufferNode* next = list->next();
+    DEBUG_ONLY(list->set_next(NULL);)
+    BufferNode::deallocate(list);
+    list = next;
   }
 }
 
@@ -107,55 +119,109 @@
 }
 
 BufferNode* BufferNode::Allocator::allocate() {
-  BufferNode* node = NULL;
+  BufferNode* node;
   {
-    MutexLockerEx ml(_lock, Mutex::_no_safepoint_check_flag);
-    node = _free_list;
-    if (node != NULL) {
-      _free_list = node->next();
-      --_free_count;
-      node->set_next(NULL);
-      node->set_index(0);
-      return node;
-    }
+    // Protect against ABA; see release().
+    GlobalCounter::CriticalSection cs(Thread::current());
+    node = _free_list.pop();
   }
-  return  BufferNode::allocate(_buffer_size);
+  if (node == NULL) {
+    node = BufferNode::allocate(_buffer_size);
+  } else {
+    // Decrement count after getting buffer from free list.  This, along
+    // with incrementing count before adding to free list, ensures count
+    // never underflows.
+    size_t count = Atomic::sub(1u, &_free_count);
+    assert((count + 1) != 0, "_free_count underflow");
+  }
+  return node;
 }
 
+// To solve the ABA problem for lock-free stack pop, allocate does the
+// pop inside a critical section, and release synchronizes on the
+// critical sections before adding to the _free_list.  But we don't
+// want to make every release have to do a synchronize.  Instead, we
+// initially place released nodes on the _pending_list, and transfer
+// them to the _free_list in batches.  Only one transfer at a time is
+// permitted, with a lock bit to control access to that phase.  A
+// transfer takes all the nodes from the _pending_list, synchronizes on
+// the _free_list pops, and then adds the former pending nodes to the
+// _free_list.  While that's happening, other threads might be adding
+// other nodes to the _pending_list, to be dealt with by some later
+// transfer.
 void BufferNode::Allocator::release(BufferNode* node) {
-  MutexLockerEx ml(_lock, Mutex::_no_safepoint_check_flag);
-  node->set_next(_free_list);
-  _free_list = node;
-  ++_free_count;
+  assert(node != NULL, "precondition");
+  assert(node->next() == NULL, "precondition");
+
+  // Desired minimum transfer batch size.  There is relatively little
+  // importance to the specific number.  It shouldn't be too big, else
+  // we're wasting space when the release rate is low.  If the release
+  // rate is high, we might accumulate more than this before being
+  // able to start a new transfer, but that's okay.  Also note that
+  // the allocation rate and the release rate are going to be fairly
+  // similar, due to how the buffers are used.
+  const size_t trigger_transfer = 10;
+
+  // Add to pending list. Update count first so no underflow in transfer.
+  size_t pending_count = Atomic::add(1u, &_pending_count);
+  _pending_list.push(*node);
+  if (pending_count > trigger_transfer) {
+    try_transfer_pending();
+  }
 }
 
-void BufferNode::Allocator::reduce_free_list() {
-  BufferNode* head = NULL;
-  {
-    MutexLockerEx ml(_lock, Mutex::_no_safepoint_check_flag);
-    // For now, delete half.
-    size_t remove = _free_count / 2;
-    if (remove > 0) {
-      head = _free_list;
-      BufferNode* tail = head;
-      BufferNode* prev = NULL;
-      for (size_t i = 0; i < remove; ++i) {
-        assert(tail != NULL, "free list size is wrong");
-        prev = tail;
-        tail = tail->next();
-      }
-      assert(prev != NULL, "invariant");
-      assert(prev->next() == tail, "invariant");
-      prev->set_next(NULL);
-      _free_list = tail;
-      _free_count -= remove;
+// Try to transfer nodes from _pending_list to _free_list, with a
+// synchronization delay for any in-progress pops from the _free_list,
+// to solve ABA there.  Return true if performed a (possibly empty)
+// transfer, false if blocked from doing so by some other thread's
+// in-progress transfer.
+bool BufferNode::Allocator::try_transfer_pending() {
+  // Attempt to claim the lock.
+  if (Atomic::load(&_transfer_lock) || // Skip CAS if likely to fail.
+      Atomic::cmpxchg(true, &_transfer_lock, false)) {
+    return false;
+  }
+  // Have the lock; perform the transfer.
+
+  // Claim all the pending nodes.
+  BufferNode* first = _pending_list.pop_all();
+  if (first != NULL) {
+    // Prepare to add the claimed nodes, and update _pending_count.
+    BufferNode* last = first;
+    size_t count = 1;
+    for (BufferNode* next = first->next(); next != NULL; next = next->next()) {
+      last = next;
+      ++count;
     }
+    Atomic::sub(count, &_pending_count);
+
+    // Wait for any in-progress pops, to avoid ABA for them.
+    GlobalCounter::write_synchronize();
+
+    // Add synchronized nodes to _free_list.
+    // Update count first so no underflow in allocate().
+    Atomic::add(count, &_free_count);
+    _free_list.prepend(*first, *last);
+    log_trace(gc, ptrqueue, freelist)
+             ("Transferred %s pending to free: " SIZE_FORMAT, name(), count);
   }
-  while (head != NULL) {
-    BufferNode* next = head->next();
-    BufferNode::deallocate(head);
-    head = next;
+  OrderAccess::release_store(&_transfer_lock, false);
+  return true;
+}
+
+size_t BufferNode::Allocator::reduce_free_list(size_t remove_goal) {
+  try_transfer_pending();
+  size_t removed = 0;
+  for ( ; removed < remove_goal; ++removed) {
+    BufferNode* node = _free_list.pop();
+    if (node == NULL) break;
+    BufferNode::deallocate(node);
   }
+  size_t new_count = Atomic::sub(removed, &_free_count);
+  log_debug(gc, ptrqueue, freelist)
+           ("Reduced %s free list by " SIZE_FORMAT " to " SIZE_FORMAT,
+            name(), removed, new_count);
+  return removed;
 }
 
 PtrQueueSet::PtrQueueSet(bool notify_when_complete) :
--- a/src/hotspot/share/gc/shared/ptrQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/ptrQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -25,7 +25,10 @@
 #ifndef SHARE_GC_SHARED_PTRQUEUE_HPP
 #define SHARE_GC_SHARED_PTRQUEUE_HPP
 
+#include "memory/padded.hpp"
 #include "utilities/align.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/lockFreeStack.hpp"
 #include "utilities/sizes.hpp"
 
 class Mutex;
@@ -215,7 +218,7 @@
 
 class BufferNode {
   size_t _index;
-  BufferNode* _next;
+  BufferNode* volatile _next;
   void* _buffer[1];             // Pseudo flexible array member.
 
   BufferNode() : _index(0), _next(NULL) { }
@@ -225,6 +228,8 @@
     return offset_of(BufferNode, _buffer);
   }
 
+  static BufferNode* volatile* next_ptr(BufferNode& bn) { return &bn._next; }
+
 AIX_ONLY(public:)               // xlC 12 on AIX doesn't implement C++ DR45.
   // Allocate a new BufferNode with the "buffer" having size elements.
   static BufferNode* allocate(size_t size);
@@ -233,6 +238,8 @@
   static void deallocate(BufferNode* node);
 
 public:
+  typedef LockFreeStack<BufferNode, &next_ptr> Stack;
+
   BufferNode* next() const     { return _next;  }
   void set_next(BufferNode* n) { _next = n;     }
   size_t index() const         { return _index; }
@@ -254,23 +261,52 @@
       reinterpret_cast<char*>(node) + buffer_offset());
   }
 
-  // Free-list based allocator.
-  class Allocator {
-    size_t _buffer_size;
-    Mutex* _lock;
-    BufferNode* _free_list;
-    volatile size_t _free_count;
+  class Allocator;              // Free-list based allocator.
+  class TestSupport;            // Unit test support.
+};
+
+// Allocation is based on a lock-free free list of nodes, linked through
+// BufferNode::_next (see BufferNode::Stack).  To solve the ABA problem,
+// popping a node from the free list is performed within a GlobalCounter
+// critical section, and pushing nodes onto the free list is done after
+// a GlobalCounter synchronization associated with the nodes to be pushed.
+// This is documented behavior so that other parts of the node life-cycle
+// can depend on and make use of it too.
+class BufferNode::Allocator {
+  friend class TestSupport;
+
+  // Since we don't expect many instances, and measured >15% speedup
+  // on stress gtest, padding seems like a good tradeoff here.
+#define DECLARE_PADDED_MEMBER(Id, Type, Name) \
+  Type Name; DEFINE_PAD_MINUS_SIZE(Id, DEFAULT_CACHE_LINE_SIZE, sizeof(Type))
 
-  public:
-    Allocator(size_t buffer_size, Mutex* lock);
-    ~Allocator();
+  const size_t _buffer_size;
+  char _name[DEFAULT_CACHE_LINE_SIZE - sizeof(size_t)]; // Use name as padding.
+  DECLARE_PADDED_MEMBER(1, Stack, _pending_list);
+  DECLARE_PADDED_MEMBER(2, Stack, _free_list);
+  DECLARE_PADDED_MEMBER(3, volatile size_t, _pending_count);
+  DECLARE_PADDED_MEMBER(4, volatile size_t, _free_count);
+  DECLARE_PADDED_MEMBER(5, volatile bool, _transfer_lock);
+
+#undef DECLARE_PADDED_MEMBER
+
+  void delete_list(BufferNode* list);
+  bool try_transfer_pending();
 
-    size_t buffer_size() const { return _buffer_size; }
-    size_t free_count() const;
-    BufferNode* allocate();
-    void release(BufferNode* node);
-    void reduce_free_list();
-  };
+public:
+  Allocator(const char* name, size_t buffer_size);
+  ~Allocator();
+
+  const char* name() const { return _name; }
+  size_t buffer_size() const { return _buffer_size; }
+  size_t free_count() const;
+  BufferNode* allocate();
+  void release(BufferNode* node);
+
+  // Deallocate some of the available buffers.  remove_goal is the target
+  // number to remove.  Returns the number actually deallocated, which may
+  // be less than the goal if there were fewer available.
+  size_t reduce_free_list(size_t remove_goal);
 };
 
 // A PtrQueueSet represents resources common to a set of pointer queues.
--- a/src/hotspot/share/gc/shared/referencePolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/referencePolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP
-#define SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP
+#ifndef SHARE_GC_SHARED_REFERENCEPOLICY_HPP
+#define SHARE_GC_SHARED_REFERENCEPOLICY_HPP
 
 #include "oops/oopsHierarchy.hpp"
 
@@ -80,4 +80,4 @@
   virtual bool should_clear_reference(oop p, jlong timestamp_clock);
 };
 
-#endif // SHARE_VM_GC_SHARED_REFERENCEPOLICY_HPP
+#endif // SHARE_GC_SHARED_REFERENCEPOLICY_HPP
--- a/src/hotspot/share/gc/shared/referenceProcessor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/referenceProcessor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP
-#define SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP
+#ifndef SHARE_GC_SHARED_REFERENCEPROCESSOR_HPP
+#define SHARE_GC_SHARED_REFERENCEPROCESSOR_HPP
 
 #include "gc/shared/referenceDiscoverer.hpp"
 #include "gc/shared/referencePolicy.hpp"
@@ -695,4 +695,4 @@
   ~RefProcMTDegreeAdjuster();
 };
 
-#endif // SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP
+#endif // SHARE_GC_SHARED_REFERENCEPROCESSOR_HPP
--- a/src/hotspot/share/gc/shared/referenceProcessor.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/referenceProcessor.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
-#define SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
+#ifndef SHARE_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
+#define SHARE_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
 
 #include "gc/shared/referenceProcessor.hpp"
 #include "oops/compressedOops.inline.hpp"
@@ -72,4 +72,4 @@
   _removed(0) {
 }
 
-#endif // SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
+#endif // SHARE_GC_SHARED_REFERENCEPROCESSOR_INLINE_HPP
--- a/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
-#define SHARE_VM_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
+#ifndef SHARE_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
+#define SHARE_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
 
 #include "gc/shared/referenceProcessor.hpp"
 #include "gc/shared/referenceProcessorStats.hpp"
@@ -168,4 +168,4 @@
   ~RefProcTotalPhaseTimesTracker();
 };
 
-#endif // SHARE_VM_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
+#endif // SHARE_GC_SHARED_REFERENCEPROCESSORPHASETIMES_HPP
--- a/src/hotspot/share/gc/shared/referenceProcessorStats.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/referenceProcessorStats.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_REFERENCEPROCESSORSTATS_HPP
-#define SHARE_VM_GC_SHARED_REFERENCEPROCESSORSTATS_HPP
+#ifndef SHARE_GC_SHARED_REFERENCEPROCESSORSTATS_HPP
+#define SHARE_GC_SHARED_REFERENCEPROCESSORSTATS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -70,4 +70,4 @@
     return _phantom_count;
   }
 };
-#endif
+#endif // SHARE_GC_SHARED_REFERENCEPROCESSORSTATS_HPP
--- a/src/hotspot/share/gc/shared/softRefGenPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/softRefGenPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_SOFTREFGENPOLICY_HPP
-#define SHARE_VM_GC_SHARED_SOFTREFGENPOLICY_HPP
+#ifndef SHARE_GC_SHARED_SOFTREFGENPOLICY_HPP
+#define SHARE_GC_SHARED_SOFTREFGENPOLICY_HPP
 
 #include "gc/shared/softRefPolicy.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -35,4 +35,4 @@
   virtual void cleared_all_soft_refs();
 };
 
-#endif // SHARE_VM_GC_SHARED_SOFTREFGENPOLICY_HPP
+#endif // SHARE_GC_SHARED_SOFTREFGENPOLICY_HPP
--- a/src/hotspot/share/gc/shared/softRefPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/softRefPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_SOFTREFPOLICY_HPP
-#define SHARE_VM_GC_SHARED_SOFTREFPOLICY_HPP
+#ifndef SHARE_GC_SHARED_SOFTREFPOLICY_HPP
+#define SHARE_GC_SHARED_SOFTREFPOLICY_HPP
 
 #include "memory/allocation.hpp"
 
@@ -73,4 +73,4 @@
   bool should_clear() { return _clear_all_soft_refs; }
 };
 
-#endif // SHARE_VM_GC_SHARED_SOFTREFPOLICY_HPP
+#endif // SHARE_GC_SHARED_SOFTREFPOLICY_HPP
--- a/src/hotspot/share/gc/shared/space.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/space.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_SPACE_HPP
-#define SHARE_VM_GC_SHARED_SPACE_HPP
+#ifndef SHARE_GC_SHARED_SPACE_HPP
+#define SHARE_GC_SHARED_SPACE_HPP
 
 #include "gc/shared/blockOffsetTable.hpp"
 #include "gc/shared/cardTable.hpp"
@@ -782,4 +782,4 @@
                MemRegion mr) :
     OffsetTableContigSpace(sharedOffsetArray, mr) {}
 };
-#endif // SHARE_VM_GC_SHARED_SPACE_HPP
+#endif // SHARE_GC_SHARED_SPACE_HPP
--- a/src/hotspot/share/gc/shared/space.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/space.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
-#define SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
+#ifndef SHARE_GC_SHARED_SPACE_INLINE_HPP
+#define SHARE_GC_SHARED_SPACE_INLINE_HPP
 
 #include "gc/shared/blockOffsetTable.inline.hpp"
 #include "gc/shared/collectedHeap.hpp"
@@ -388,4 +388,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_SPACE_INLINE_HPP
+#endif // SHARE_GC_SHARED_SPACE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/spaceDecorator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/spaceDecorator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_SPACEDECORATOR_HPP
-#define SHARE_VM_GC_SHARED_SPACEDECORATOR_HPP
+#ifndef SHARE_GC_SHARED_SPACEDECORATOR_HPP
+#define SHARE_GC_SHARED_SPACEDECORATOR_HPP
 
 #include "gc/parallel/mutableSpace.hpp"
 #include "gc/shared/space.hpp"
@@ -147,4 +147,4 @@
   MutableSpaceMangler(MutableSpace* sp) : SpaceMangler(), _sp(sp) {}
 };
 
-#endif // SHARE_VM_GC_SHARED_SPACEDECORATOR_HPP
+#endif // SHARE_GC_SHARED_SPACEDECORATOR_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
 
 //
 // String Deduplication
@@ -139,4 +139,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedup.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedup.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
 
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shared/stringdedup/stringDedupThread.inline.hpp"
@@ -38,4 +38,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUP_INLINE_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
@@ -109,4 +109,4 @@
   static size_t claim();
 };
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupQueue.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupQueue.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
 
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shared/stringdedup/stringDedupQueue.hpp"
@@ -51,4 +51,4 @@
   return queue()->pop_impl();
 }
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPQUEUE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupStat.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupStat.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/os.hpp"
@@ -135,5 +135,4 @@
   static void print_end(const StringDedupStat* last_stat, const StringDedupStat* total_stat);
 };
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
-
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPSTAT_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
 
 #include "gc/shared/stringdedup/stringDedupStat.hpp"
 #include "runtime/mutexLocker.hpp"
@@ -252,4 +252,4 @@
   static void gc_epilogue();
 };
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTABLE_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
 
 #include "gc/shared/concurrentGCThread.hpp"
 #include "gc/shared/stringdedup/stringDedupStat.hpp"
@@ -69,4 +69,4 @@
   static void create();
 };
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_HPP
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupThread.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupThread.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
-#define SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
+#ifndef SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
+#define SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
 
 #include "gc/shared/suspendibleThreadSet.hpp"
 #include "gc/shared/stringdedup/stringDedupQueue.inline.hpp"
@@ -88,4 +88,4 @@
   _thread = new StringDedupThreadImpl<S>();
 }
 
-#endif // SHARE_VM_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
+#endif // SHARE_GC_SHARED_STRINGDEDUP_STRINGDEDUPTHREAD_INLINE_HPP
--- a/src/hotspot/share/gc/shared/strongRootsScope.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/strongRootsScope.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_STRONGROOTSSCOPE_HPP
-#define SHARE_VM_GC_SHARED_STRONGROOTSSCOPE_HPP
+#ifndef SHARE_GC_SHARED_STRONGROOTSSCOPE_HPP
+#define SHARE_GC_SHARED_STRONGROOTSSCOPE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -46,4 +46,4 @@
   uint n_threads() const { return _n_threads; }
 };
 
-#endif // SHARE_VM_GC_SHARED_STRONGROOTSSCOPE_HPP
+#endif // SHARE_GC_SHARED_STRONGROOTSSCOPE_HPP
--- a/src/hotspot/share/gc/shared/taskqueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/taskqueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_TASKQUEUE_HPP
-#define SHARE_VM_GC_SHARED_TASKQUEUE_HPP
+#ifndef SHARE_GC_SHARED_TASKQUEUE_HPP
+#define SHARE_GC_SHARED_TASKQUEUE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/padded.hpp"
@@ -619,4 +619,4 @@
 typedef OverflowTaskQueue<size_t, mtGC>             RegionTaskQueue;
 typedef GenericTaskQueueSet<RegionTaskQueue, mtGC>  RegionTaskQueueSet;
 
-#endif // SHARE_VM_GC_SHARED_TASKQUEUE_HPP
+#endif // SHARE_GC_SHARED_TASKQUEUE_HPP
--- a/src/hotspot/share/gc/shared/taskqueue.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/taskqueue.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_TASKQUEUE_INLINE_HPP
-#define SHARE_VM_GC_SHARED_TASKQUEUE_INLINE_HPP
+#ifndef SHARE_GC_SHARED_TASKQUEUE_INLINE_HPP
+#define SHARE_GC_SHARED_TASKQUEUE_INLINE_HPP
 
 #include "gc/shared/taskqueue.hpp"
 #include "memory/allocation.inline.hpp"
@@ -331,4 +331,4 @@
 }
 
 
-#endif // SHARE_VM_GC_SHARED_TASKQUEUE_INLINE_HPP
+#endif // SHARE_GC_SHARED_TASKQUEUE_INLINE_HPP
--- a/src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -91,7 +91,9 @@
 
 void ThreadLocalAllocBuffer::insert_filler() {
   assert(end() != NULL, "Must not be retired");
-  Universe::heap()->fill_with_dummy_object(top(), hard_end(), true);
+  if (top() < hard_end()) {
+    Universe::heap()->fill_with_dummy_object(top(), hard_end(), true);
+  }
 }
 
 void ThreadLocalAllocBuffer::make_parsable() {
--- a/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
-#define SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
+#ifndef SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
+#define SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
 
 #include "gc/shared/gcUtil.hpp"
 #include "runtime/perfData.hpp"
@@ -238,4 +238,4 @@
   void publish();
 };
 
-#endif // SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
+#endif // SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_HPP
--- a/src/hotspot/share/gc/shared/threadLocalAllocBuffer.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/threadLocalAllocBuffer.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
-#define SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
+#ifndef SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
+#define SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/threadLocalAllocBuffer.hpp"
@@ -95,4 +95,4 @@
                               obj_size, free(), refill_waste_limit());
 }
 
-#endif // SHARE_VM_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
+#endif // SHARE_GC_SHARED_THREADLOCALALLOCBUFFER_INLINE_HPP
--- a/src/hotspot/share/gc/shared/weakProcessor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/weakProcessor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WEAKPROCESSOR_HPP
-#define SHARE_VM_GC_SHARED_WEAKPROCESSOR_HPP
+#ifndef SHARE_GC_SHARED_WEAKPROCESSOR_HPP
+#define SHARE_GC_SHARED_WEAKPROCESSOR_HPP
 
 #include "gc/shared/oopStorageParState.hpp"
 #include "gc/shared/workgroup.hpp"
@@ -92,4 +92,4 @@
   void work(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive);
 };
 
-#endif // SHARE_VM_GC_SHARED_WEAKPROCESSOR_HPP
+#endif // SHARE_GC_SHARED_WEAKPROCESSOR_HPP
--- a/src/hotspot/share/gc/shared/weakProcessor.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/weakProcessor.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
-#define SHARE_VM_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
+#ifndef SHARE_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
+#define SHARE_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
 
 #include "gc/shared/oopStorage.inline.hpp"
 #include "gc/shared/oopStorageParState.inline.hpp"
@@ -116,4 +116,4 @@
   pt.log_print_phases(indent_log);
 }
 
-#endif // SHARE_VM_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
+#endif // SHARE_GC_SHARED_WEAKPROCESSOR_INLINE_HPP
--- a/src/hotspot/share/gc/shared/workerDataArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/workerDataArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WORKERDATAARRAY_HPP
-#define SHARE_VM_GC_SHARED_WORKERDATAARRAY_HPP
+#ifndef SHARE_GC_SHARED_WORKERDATAARRAY_HPP
+#define SHARE_GC_SHARED_WORKERDATAARRAY_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -90,4 +90,4 @@
   void print_details_on(outputStream* out) const;
 };
 
-#endif // SHARE_VM_GC_SHARED_WORKERDATAARRAY_HPP
+#endif // SHARE_GC_SHARED_WORKERDATAARRAY_HPP
--- a/src/hotspot/share/gc/shared/workerDataArray.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/workerDataArray.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
-#define SHARE_VM_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
+#ifndef SHARE_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
+#define SHARE_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
 
 #include "gc/shared/workerDataArray.hpp"
 #include "memory/allocation.inline.hpp"
@@ -177,4 +177,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
+#endif // SHARE_GC_SHARED_WORKERDATAARRAY_INLINE_HPP
--- a/src/hotspot/share/gc/shared/workerManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/workerManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,13 +22,13 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WORKERMANAGER_HPP
-#define SHARE_VM_GC_SHARED_WORKERMANAGER_HPP
+#ifndef SHARE_GC_SHARED_WORKERMANAGER_HPP
+#define SHARE_GC_SHARED_WORKERMANAGER_HPP
 
 #include "logging/log.hpp"
 #include "memory/allocation.hpp"
-#include "runtime/os.inline.hpp"
-#include "runtime/thread.inline.hpp"
+#include "runtime/os.hpp"
+#include "runtime/thread.hpp"
 #include "utilities/globalDefinitions.hpp"
 
 class WorkerManager : public AllStatic {
@@ -115,4 +115,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHARED_WORKERMANAGER_HPP
+#endif // SHARE_GC_SHARED_WORKERMANAGER_HPP
--- a/src/hotspot/share/gc/shared/workerPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/workerPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WORKERPOLICY_HPP
-#define SHARE_VM_GC_SHARED_WORKERPOLICY_HPP
+#ifndef SHARE_GC_SHARED_WORKERPOLICY_HPP
+#define SHARE_GC_SHARED_WORKERPOLICY_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -78,4 +78,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHARED_WORKERPOLICY_HPP
+#endif // SHARE_GC_SHARED_WORKERPOLICY_HPP
--- a/src/hotspot/share/gc/shared/workgroup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shared/workgroup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHARED_WORKGROUP_HPP
-#define SHARE_VM_GC_SHARED_WORKGROUP_HPP
+#ifndef SHARE_GC_SHARED_WORKGROUP_HPP
+#define SHARE_GC_SHARED_WORKGROUP_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/globals.hpp"
@@ -406,4 +406,4 @@
   bool all_tasks_completed();
 };
 
-#endif // SHARE_VM_GC_SHARED_WORKGROUP_HPP
+#endif // SHARE_GC_SHARED_WORKGROUP_HPP
--- a/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
-#define SHARE_VM_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
+#ifndef SHARE_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
+#define SHARE_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
 
 #include "c1/c1_CodeStubs.hpp"
 #include "gc/shared/c1/barrierSetC1.hpp"
@@ -210,4 +210,4 @@
   virtual void generate_c1_runtime_stubs(BufferBlob* buffer_blob);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
+#endif // SHARE_GC_SHENANDOAH_C1_SHENANDOAHBARRIERSETC1_HPP
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -22,9 +22,11 @@
  */
 
 #include "precompiled.hpp"
+#include "gc/shared/barrierSet.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahRuntime.hpp"
+#include "gc/shenandoah/shenandoahThreadLocalData.hpp"
 #include "gc/shenandoah/c2/shenandoahBarrierSetC2.hpp"
 #include "gc/shenandoah/c2/shenandoahSupport.hpp"
 #include "opto/arraycopynode.hpp"
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
-#define SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
+#ifndef SHARE_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
+#define SHARE_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
 
 #include "gc/shared/c2/barrierSetC2.hpp"
 #include "gc/shenandoah/c2/shenandoahSupport.hpp"
@@ -171,4 +171,4 @@
   virtual bool sink_node(PhaseIdealLoop* phase, Node* n, Node* x, Node* x_ctrl, Node* n_ctrl) const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
+#endif // SHARE_GC_SHENANDOAH_C2_SHENANDOAHBARRIERSETC2_HPP
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2015, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -30,6 +30,7 @@
 #include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
 #include "gc/shenandoah/shenandoahRuntime.hpp"
+#include "gc/shenandoah/shenandoahThreadLocalData.hpp"
 #include "opto/arraycopynode.hpp"
 #include "opto/block.hpp"
 #include "opto/callnode.hpp"
@@ -97,7 +98,7 @@
     return false;
   }
 
-  if (n->is_CallJava() || n->Opcode() == Op_CallLeafNoFP) {
+  if (n->is_Call()) {
     return true;
   }
 
@@ -2659,9 +2660,35 @@
     wb->pin_and_expand_helper(phase);
   }
 
+  for (uint i = 0; i < enqueue_barriers.size(); i++) {
+    Node* barrier = enqueue_barriers.at(i);
+    Node* ctrl = phase->get_ctrl(barrier);
+    IdealLoopTree* loop = phase->get_loop(ctrl);
+    if (loop->_head->is_OuterStripMinedLoop()) {
+      // Expanding a barrier here will break loop strip mining
+      // verification. Transform the loop so the loop nest doesn't
+      // appear as strip mined.
+      OuterStripMinedLoopNode* outer = loop->_head->as_OuterStripMinedLoop();
+      hide_strip_mined_loop(outer, outer->unique_ctrl_out()->as_CountedLoop(), phase);
+    }
+  }
+
+  for (int i = ShenandoahBarrierSetC2::bsc2()->state()->shenandoah_barriers_count(); i > 0; i--) {
+    int cnt = ShenandoahBarrierSetC2::bsc2()->state()->shenandoah_barriers_count();
+    ShenandoahWriteBarrierNode* wb = ShenandoahBarrierSetC2::bsc2()->state()->shenandoah_barrier(i-1);
+    Node* ctrl = phase->get_ctrl(wb);
+    IdealLoopTree* loop = phase->get_loop(ctrl);
+    if (loop->_head->is_OuterStripMinedLoop()) {
+      // Expanding a barrier here will break loop strip mining
+      // verification. Transform the loop so the loop nest doesn't
+      // appear as strip mined.
+      OuterStripMinedLoopNode* outer = loop->_head->as_OuterStripMinedLoop();
+      hide_strip_mined_loop(outer, outer->unique_ctrl_out()->as_CountedLoop(), phase);
+    }
+  }
+
   MemoryGraphFixer fixer(Compile::AliasIdxRaw, true, phase);
   Unique_Node_List uses_to_ignore;
-  Unique_Node_List outer_lsms;
   for (uint i = 0; i < enqueue_barriers.size(); i++) {
     Node* barrier = enqueue_barriers.at(i);
     Node* pre_val = barrier->in(1);
@@ -2685,9 +2712,6 @@
 
     Node* init_ctrl = ctrl;
     IdealLoopTree* loop = phase->get_loop(ctrl);
-    if (loop->_head->is_OuterStripMinedLoop()) {
-      outer_lsms.push(loop->_head);
-    }
     Node* raw_mem = fixer.find_mem(ctrl, barrier);
     Node* init_raw_mem = raw_mem;
     Node* raw_mem_for_ctrl = fixer.find_mem(ctrl, NULL);
@@ -2832,9 +2856,6 @@
     Node* val = wb->in(ValueIn);
     Node* wbproj = wb->find_out_with(Op_ShenandoahWBMemProj);
     IdealLoopTree *loop = phase->get_loop(ctrl);
-    if (loop->_head->is_OuterStripMinedLoop()) {
-      outer_lsms.push(loop->_head);
-    }
 
     assert(val->Opcode() != Op_ShenandoahWriteBarrier, "No chain of write barriers");
 
@@ -3019,14 +3040,6 @@
   }
 
   assert(ShenandoahBarrierSetC2::bsc2()->state()->shenandoah_barriers_count() == 0, "all write barrier nodes should have been replaced");
-
-  for (uint i = 0; i < outer_lsms.size(); i++) {
-    // Expanding a barrier here will break loop strip mining
-    // verification. Transform the loop so the loop nest doesn't
-    // appear as strip mined.
-    OuterStripMinedLoopNode* outer = outer_lsms.at(i)->as_OuterStripMinedLoop();
-    hide_strip_mined_loop(outer, outer->unique_ctrl_out()->as_CountedLoop(), phase);
-  }
 }
 
 void ShenandoahWriteBarrierNode::move_heap_stable_test_out_of_loop(IfNode* iff, PhaseIdealLoop* phase) {
@@ -4274,5 +4287,3 @@
     _memory_nodes.map(c->_idx, mem->in(ShenandoahWBMemProjNode::WriteBarrier)->in(ShenandoahBarrierNode::Memory));
   }
 }
-
-
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAH_SUPPORT_HPP
-#define SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAH_SUPPORT_HPP
+#ifndef SHARE_GC_SHENANDOAH_C2_SHENANDOAHSUPPORT_HPP
+#define SHARE_GC_SHENANDOAH_C2_SHENANDOAHSUPPORT_HPP
 
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
 #include "memory/allocation.hpp"
@@ -382,4 +382,4 @@
   virtual int Opcode() const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_C2_SHENANDOAH_SUPPORT_HPP
+#endif // SHARE_GC_SHENANDOAH_C2_SHENANDOAHSUPPORT_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
@@ -58,4 +58,4 @@
   virtual bool is_experimental();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHADAPTIVEHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 
@@ -47,4 +47,4 @@
   virtual bool is_experimental();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHAGGRESSIVEHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 
@@ -43,4 +43,4 @@
   virtual bool is_experimental();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHCOMPACTHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 
@@ -49,4 +49,4 @@
   virtual bool is_experimental();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHPASSIVEHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 
@@ -45,4 +45,4 @@
   virtual bool is_experimental();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHSTATICHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -24,7 +24,9 @@
 #include "precompiled.hpp"
 
 #include "gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp"
+#include "gc/shenandoah/shenandoahCollectionSet.hpp"
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
+#include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
 #include "logging/log.hpp"
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 
@@ -53,4 +53,4 @@
   virtual bool should_start_traversal_gc();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_HEURISTICS_SHENANDOAHTRAVERSALHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
 
 #include "memory/allocation.hpp"
 
@@ -155,4 +155,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHALLOCREQUEST_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
 
 #include "gc/shenandoah/shenandoahAllocRequest.hpp"
 #include "gc/shenandoah/shenandoahNumberSeq.hpp"
@@ -45,4 +45,4 @@
   void print_on(outputStream* out) const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHALLOCTRACKER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. 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
@@ -27,7 +27,7 @@
 #include "gc/shared/workerPolicy.hpp"
 #include "gc/shenandoah/shenandoahArguments.hpp"
 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
+#include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.hpp"
 #include "utilities/defaultStream.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -25,7 +25,6 @@
 
 #include "gc/shenandoah/shenandoahAsserts.hpp"
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
 
 #include "memory/iterator.hpp"
 #include "utilities/formatBuffer.hpp"
@@ -167,4 +167,4 @@
 
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHASSERTS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
 
 #include "gc/shared/accessBarrierSupport.hpp"
 #include "gc/shared/barrierSet.hpp"
@@ -293,4 +293,4 @@
   typedef ::ShenandoahBarrierSet type;
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
 
 #include "gc/shared/barrierSet.hpp"
 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
@@ -279,4 +279,4 @@
   return bs->arraycopy_loop_1(src_raw, dst_raw, length, bound, checkcast, satb, disjoint, storeval_mode);
 }
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahBrooksPointer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBrooksPointer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
 
 #include "oops/oop.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -103,4 +103,4 @@
   static inline HeapWord** brooks_ptr_addr(oop obj);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahBrooksPointer.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBrooksPointer.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahAsserts.hpp"
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
@@ -62,4 +62,4 @@
   return result;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHBROOKSPOINTER_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -24,7 +24,6 @@
 #include "precompiled.hpp"
 #include "code/codeCache.hpp"
 #include "code/nmethod.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahCodeRoots.hpp"
 #include "memory/resourceArea.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
 
 #include "code/codeCache.hpp"
 #include "gc/shenandoah/shenandoahSharedVariables.hpp"
@@ -77,8 +77,8 @@
 
   bool has_cset_oops(ShenandoahHeap* heap);
 
-  void assert_alive_and_correct() PRODUCT_RETURN;
-  void assert_same_oops(GrowableArray<oop*>* oops) PRODUCT_RETURN;
+  void assert_alive_and_correct() NOT_DEBUG_RETURN;
+  void assert_same_oops(GrowableArray<oop*>* oops) NOT_DEBUG_RETURN;
 
   static bool find_with_nmethod(void* nm, ShenandoahNMethod* other) {
     return other->_nm == nm;
@@ -197,4 +197,4 @@
   }
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCODEROOTS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
 
 #include "memory/allocation.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -93,4 +93,4 @@
   }
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -46,4 +46,4 @@
   return _biased_cset_map[index] == 1;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTIONSET_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
 
 #include "gc/shared/collectorPolicy.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -79,4 +79,4 @@
   void print_gc_stats(outputStream* out) const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCOLLECTORPOLICY_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -27,7 +27,6 @@
 #include "classfile/systemDictionary.hpp"
 #include "code/codeCache.hpp"
 
-#include "gc/shared/weakProcessor.hpp"
 #include "gc/shared/weakProcessor.inline.hpp"
 #include "gc/shared/gcTimer.hpp"
 #include "gc/shared/referenceProcessor.hpp"
@@ -38,9 +37,7 @@
 #include "gc/shenandoah/shenandoahMarkCompact.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
-#include "gc/shenandoah/shenandoahOopClosures.hpp"
 #include "gc/shenandoah/shenandoahOopClosures.inline.hpp"
-#include "gc/shenandoah/shenandoahTaskqueue.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "gc/shenandoah/shenandoahTimingTracker.hpp"
 #include "gc/shenandoah/shenandoahUtils.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
 
 #include "gc/shared/taskqueue.hpp"
 #include "gc/shenandoah/shenandoahOopClosures.hpp"
@@ -108,4 +108,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2015, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -21,15 +21,15 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahAsserts.hpp"
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
 #include "gc/shenandoah/shenandoahBarrierSet.inline.hpp"
 #include "gc/shenandoah/shenandoahConcurrentMark.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
-#include "gc/shenandoah/shenandoahStringDedup.hpp"
+#include "gc/shenandoah/shenandoahStringDedup.inline.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "memory/iterator.inline.hpp"
 #include "oops/oop.inline.hpp"
@@ -275,4 +275,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONCURRENTMARK_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -47,7 +47,7 @@
   _degen_point(ShenandoahHeap::_degenerated_outside_cycle),
   _allocs_seen(0) {
 
-  create_and_start();
+  create_and_start(ShenandoahCriticalControlThreadPriority ? CriticalPriority : NearMaxPriority);
   _periodic_task.enroll();
   _periodic_satb_flush_task.enroll();
 }
@@ -377,19 +377,19 @@
   // Complete marking under STW, and start evacuation
   heap->vmop_entry_final_mark();
 
+  // Final mark might have reclaimed some immediate garbage, kick cleanup to reclaim
+  // the space. This would be the last action if there is nothing to evacuate.
+  heap->entry_cleanup();
+
+  {
+    ShenandoahHeapLocker locker(heap->lock());
+    heap->free_set()->log_status();
+  }
+
   // Continue the cycle with evacuation and optional update-refs.
   // This may be skipped if there is nothing to evacuate.
   // If so, evac_in_progress would be unset by collection set preparation code.
   if (heap->is_evacuation_in_progress()) {
-    // Final mark had reclaimed some immediate garbage, kick cleanup to reclaim the space
-    // for the rest of the cycle, and report current state of free set.
-    heap->entry_cleanup();
-
-    {
-      ShenandoahHeapLocker locker(heap->lock());
-      heap->free_set()->log_status();
-    }
-
     // Concurrently evacuate
     heap->entry_evac();
     if (check_cancellation_or_degen(ShenandoahHeap::_degenerated_evac)) return;
@@ -403,14 +403,15 @@
       if (check_cancellation_or_degen(ShenandoahHeap::_degenerated_updaterefs)) return;
 
       heap->vmop_entry_final_updaterefs();
+
+      // Update references freed up collection set, kick the cleanup to reclaim the space.
+      heap->entry_cleanup();
+
     } else {
       heap->vmop_entry_final_evac();
     }
   }
 
-  // Reclaim space after cycle
-  heap->entry_cleanup();
-
   // Cycle is complete
   heap->heuristics()->record_success_concurrent();
   heap->shenandoah_policy()->record_success_concurrent();
--- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSCHEDULERTHREAD_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSCHEDULERTHREAD_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHCONTROLTHREAD_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHCONTROLTHREAD_HPP
 
 #include "gc/shared/gcCause.hpp"
 #include "gc/shared/concurrentGCThread.hpp"
@@ -140,4 +140,4 @@
   void print() const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHSCHEDULERTHREAD_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHCONTROLTHREAD_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahEvacOOMHandler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahEvacOOMHandler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -125,4 +125,4 @@
   ~ShenandoahEvacOOMScopeLeaver();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHEVACOOMHANDLER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
 
 #include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -42,9 +42,9 @@
   size_t _capacity;
   size_t _used;
 
-  void assert_bounds() const PRODUCT_RETURN;
-  void assert_heaplock_owned_by_current_thread() const PRODUCT_RETURN;
-  void assert_heaplock_not_owned_by_current_thread() const PRODUCT_RETURN;
+  void assert_bounds() const NOT_DEBUG_RETURN;
+  void assert_heaplock_owned_by_current_thread() const NOT_DEBUG_RETURN;
+  void assert_heaplock_not_owned_by_current_thread() const NOT_DEBUG_RETURN;
 
   bool is_mutator_free(size_t idx) const;
   bool is_collector_free(size_t idx) const;
@@ -94,4 +94,4 @@
   void print_on(outputStream* out) const;
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHFREESET_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -35,7 +35,6 @@
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
-#include "gc/shenandoah/shenandoahConcurrentMark.hpp"
 #include "gc/shenandoah/shenandoahConcurrentMark.inline.hpp"
 #include "gc/shenandoah/shenandoahControlThread.hpp"
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
@@ -49,7 +48,6 @@
 #include "gc/shenandoah/shenandoahMetrics.hpp"
 #include "gc/shenandoah/shenandoahMonitoringSupport.hpp"
 #include "gc/shenandoah/shenandoahOopClosures.inline.hpp"
-#include "gc/shenandoah/shenandoahPacer.hpp"
 #include "gc/shenandoah/shenandoahPacer.inline.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
 #include "gc/shenandoah/shenandoahStringDedup.hpp"
@@ -1930,13 +1928,6 @@
     _workers->run_task(&unlink_task);
   }
 
-  if (ShenandoahStringDedup::is_enabled()) {
-    ShenandoahGCPhase phase(full_gc ?
-                            ShenandoahPhaseTimings::full_gc_purge_string_dedup :
-                            ShenandoahPhaseTimings::purge_string_dedup);
-    ShenandoahStringDedup::parallel_cleanup();
-  }
-
   {
     ShenandoahGCPhase phase(full_gc ?
                       ShenandoahPhaseTimings::full_gc_purge_cldg :
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
 
 #include "gc/shared/markBitMap.hpp"
 #include "gc/shared/softRefPolicy.hpp"
@@ -163,9 +163,9 @@
     return &_lock;
   }
 
-  void assert_heaplock_owned_by_current_thread()     PRODUCT_RETURN;
-  void assert_heaplock_not_owned_by_current_thread() PRODUCT_RETURN;
-  void assert_heaplock_or_safepoint()                PRODUCT_RETURN;
+  void assert_heaplock_owned_by_current_thread()     NOT_DEBUG_RETURN;
+  void assert_heaplock_not_owned_by_current_thread() NOT_DEBUG_RETURN;
+  void assert_heaplock_or_safepoint()                NOT_DEBUG_RETURN;
 
 // ---------- Initialization, termination, identification, printing routines
 //
@@ -231,7 +231,7 @@
 
 public:
   uint max_workers();
-  void assert_gc_workers(uint nworker) PRODUCT_RETURN;
+  void assert_gc_workers(uint nworker) NOT_DEBUG_RETURN;
 
   WorkGang* workers() const;
   WorkGang* get_safepoint_workers();
@@ -754,4 +754,4 @@
   bool should_inject_alloc_failure();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
 
 #include "classfile/javaClasses.inline.hpp"
 #include "gc/shared/markBitMap.inline.hpp"
@@ -549,4 +549,4 @@
   return _marking_context;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAP_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapLock.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapLock.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/thread.hpp"
@@ -90,4 +90,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPLOCK_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -25,7 +25,6 @@
 #include "memory/allocation.hpp"
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
 
 #include "gc/shared/space.hpp"
 #include "gc/shenandoah/shenandoahAllocRequest.hpp"
@@ -428,4 +428,4 @@
   inline void internal_increase_live_data(size_t s);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
@@ -108,4 +108,4 @@
 #endif
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGION_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -82,4 +82,4 @@
   void update();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -22,9 +22,7 @@
  */
 
 #include "precompiled.hpp"
-#include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
 #include "gc/shenandoah/shenandoahUtils.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
 
 #include "memory/allocation.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -95,4 +95,4 @@
   }
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -46,4 +46,4 @@
   return _biased_set_map[index] == 1;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
 
 #include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
@@ -164,4 +164,4 @@
   double time_since_last_gc() const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEURISTICS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2014, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -32,13 +32,11 @@
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
 #include "gc/shenandoah/shenandoahMarkCompact.hpp"
 #include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
-#include "gc/shenandoah/shenandoahTaskqueue.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "gc/shenandoah/shenandoahUtils.hpp"
 #include "gc/shenandoah/shenandoahVerifier.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
 
 #include "gc/shared/gcTimer.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -68,4 +68,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMARKCOMPACT_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
 
 #include "gc/shared/markBitMap.hpp"
 #include "memory/allocation.hpp"
@@ -77,4 +77,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahMarkingContext.hpp"
 
@@ -48,4 +48,4 @@
   return alloc_after_mark_start;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMARKINGCONTEXT_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMemoryPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMemoryPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_SHENANDOAHMEMORYPOOL_HPP
-#define SHARE_VM_SERVICES_SHENANDOAHMEMORYPOOL_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMEMORYPOOL_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMEMORYPOOL_HPP
 
 #ifndef SERIALGC
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -41,4 +41,4 @@
   size_t max_size() const             { return _heap->max_capacity(); }
 };
 
-#endif //SHARE_VM_SERVICES_SHENANDOAHMEMORYPOOL_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMEMORYPOOL_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2013, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -23,7 +23,6 @@
 
 #include "precompiled.hpp"
 #include "gc/shenandoah/shenandoahMetrics.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahMetrics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMetrics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
 
 #include "gc/shenandoah/shenandoahHeap.hpp"
 
@@ -52,4 +52,4 @@
   bool is_good_progress(const char *label);
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMETRICS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahMonitoringSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahMonitoringSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
 
 #include "memory/allocation.hpp"
 
@@ -53,4 +53,4 @@
  void update_counters();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHMONITORINGSUPPORT_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahNumberSeq.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
 
 #include "utilities/numberSeq.hpp"
 
@@ -71,4 +71,4 @@
   int max_level() const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHNUMBERSEQ_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
 
 #include "gc/shared/referenceProcessor.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -347,4 +347,4 @@
   virtual bool do_metadata()        { return true; }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahConcurrentMark.inline.hpp"
@@ -43,4 +43,4 @@
   _traversal_gc->process_oop<T, STRING_DEDUP, DEGEN>(p, _thread, _queue, _mark_context);
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -24,7 +24,6 @@
 #include "precompiled.hpp"
 
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahPacer.hpp"
 
--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHPACER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHPACER_HPP
 
 #include "gc/shenandoah/shenandoahNumberSeq.hpp"
 #include "memory/allocation.hpp"
@@ -96,4 +96,4 @@
   size_t update_and_get_progress_history();
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHPACER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahPacer.hpp"
 #include "runtime/atomic.hpp"
@@ -56,4 +56,4 @@
   Atomic::add((intptr_t)words, &_progress);
 }
 
-#endif //SHARE_VM_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHPACER_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHPHASETIMEINGS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHPHASETIMEINGS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHPHASETIMINGS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHPHASETIMINGS_HPP
 
 #include "gc/shenandoah/shenandoahNumberSeq.hpp"
 #include "gc/shared/workerDataArray.hpp"
@@ -89,7 +89,6 @@
   f(purge_class_unload,                             "    Unload Classes")               \
   f(purge_par,                                      "    Parallel Cleanup")             \
   f(purge_cldg,                                     "    CLDG")                         \
-  f(purge_string_dedup,                             "    String Dedup")                 \
   f(complete_liveness,                              "  Complete Liveness")              \
   f(prepare_evac,                                   "  Prepare Evacuation")             \
   f(recycle_regions,                                "  Recycle regions")                \
@@ -255,7 +254,6 @@
   f(full_gc_purge_class_unload,                      "      Unload Classes")            \
   f(full_gc_purge_par,                               "    Parallel Cleanup")            \
   f(full_gc_purge_cldg,                              "    CLDG")                        \
-  f(full_gc_purge_string_dedup,                      "    String Dedup")                \
   f(full_gc_calculate_addresses,                     "  Calculate Addresses")           \
   f(full_gc_calculate_addresses_regular,             "    Regular Objects")             \
   f(full_gc_calculate_addresses_humong,              "    Humongous Objects")           \
@@ -395,4 +393,4 @@
   void print() const;
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHGCPHASETIMEINGS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHPHASETIMINGS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
 
 #include "code/codeCache.hpp"
 #include "gc/shared/oopStorageParState.hpp"
@@ -123,4 +123,4 @@
   // Number of worker threads used by the root processor.
   uint n_workers() const;
 };
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -43,4 +43,4 @@
   static void shenandoah_clone_barrier(oopDesc* obj);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -29,7 +29,7 @@
 
 ShenandoahSATBMarkQueueSet::ShenandoahSATBMarkQueueSet() :
   _heap(NULL),
-  _satb_mark_queue_buffer_allocator(ShenandoahSATBBufferSize, SATB_Q_FL_lock)
+  _satb_mark_queue_buffer_allocator("SATB Buffer Allocator", ShenandoahSATBBufferSize)
 {}
 
 void ShenandoahSATBMarkQueueSet::initialize(ShenandoahHeap* const heap,
--- a/src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
 
 #include "gc/shared/satbMarkQueue.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -52,4 +52,4 @@
   virtual void filter(SATBMarkQueue* queue);
 };
 
-#endif
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSATBMARKQUEUESET_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSHAREDFLAG_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSHAREDFLAG_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHSHAREDVARIABLES_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSHAREDVARIABLES_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/orderAccess.hpp"
@@ -243,4 +243,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHSHAREDFLAG_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSHAREDVARIABLES_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -26,9 +26,8 @@
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shared/stringdedup/stringDedupThread.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
-#include "gc/shenandoah/shenandoahStrDedupQueue.hpp"
 #include "gc/shenandoah/shenandoahStrDedupQueue.inline.hpp"
-#include "gc/shenandoah/shenandoahStringDedup.hpp"
+#include "gc/shenandoah/shenandoahStringDedup.inline.hpp"
 #include "logging/log.hpp"
 #include "runtime/mutex.hpp"
 #include "runtime/mutexLocker.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_HPP
 
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -110,4 +110,4 @@
   void verify(ShenandoahQueueBuffer* head);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahStrDedupQueue.hpp"
 
@@ -95,4 +95,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUPQUEUE_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTRDEDUPQUEUE_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -23,12 +23,9 @@
 
 #include "precompiled.hpp"
 
-#include "gc/shared/stringdedup/stringDedup.hpp"
 #include "gc/shared/stringdedup/stringDedup.inline.hpp"
 #include "gc/shared/workgroup.hpp"
-#include "gc/shenandoah/shenandoahCollectionSet.hpp"
 #include "gc/shenandoah/shenandoahCollectionSet.inline.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
 #include "gc/shenandoah/shenandoahStringDedup.hpp"
@@ -113,14 +110,6 @@
   }
 };
 
-void ShenandoahStringDedup::parallel_cleanup() {
-  assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
-  log_debug(gc, stringdedup)("String dedup cleanup");
-  ShenandoahIsMarkedNextClosure cl;
-
-  unlink_or_oops_do(&cl, NULL, true);
-}
-
 //
 // Task for parallel unlink_or_oops_do() operation on the deduplication queue
 // and table.
--- a/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -21,10 +21,9 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
 
-#include "classfile/javaClasses.inline.hpp"
 #include "gc/shared/stringdedup/stringDedup.hpp"
 #include "memory/iterator.hpp"
 
@@ -42,13 +41,7 @@
   static void parallel_oops_do(OopClosure* cl, uint worker_id);
   static void oops_do_slow(OopClosure* cl);
 
-  // Parallel cleanup string dedup queues/table
-  static void parallel_cleanup();
-
-  static inline bool is_candidate(oop obj) {
-    return java_lang_String::is_instance_inlined(obj) &&
-           java_lang_String::value(obj) != NULL;
-  }
+  static inline bool is_candidate(oop obj);
 private:
   static void unlink_or_oops_do(BoolObjectClosure* is_alive,
                                 OopClosure* keep_alive,
@@ -56,4 +49,4 @@
 
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/gc/shenandoah/shenandoahStringDedup.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
+ *
+ * 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_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_INLINE_HPP
+
+#include "classfile/javaClasses.inline.hpp"
+#include "gc/shenandoah/shenandoahStringDedup.hpp"
+
+bool ShenandoahStringDedup::is_candidate(oop obj) {
+  return java_lang_String::is_instance_inlined(obj) &&
+         java_lang_String::value(obj) != NULL;
+}
+
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHSTRINGDEDUP_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, 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
  * under the terms of the GNU General Public License version 2 only, as
@@ -23,8 +23,8 @@
 
 #include "precompiled.hpp"
 
-#include "gc/shenandoah/shenandoahHeap.hpp"
-#include "gc/shenandoah/shenandoahTaskqueue.hpp"
+#include "gc/shenandoah/shenandoahHeap.inline.hpp"
+#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "logging/log.hpp"
 #include "logging/logStream.hpp"
 
--- a/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, 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
  * under the terms of the GNU General Public License version 2 only, as
@@ -21,11 +21,10 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
 #include "gc/shared/owstTaskTerminator.hpp"
 #include "gc/shared/taskqueue.hpp"
-#include "gc/shared/taskqueue.inline.hpp"
 #include "memory/allocation.hpp"
 #include "runtime/mutex.hpp"
 #include "runtime/thread.hpp"
@@ -46,11 +45,7 @@
   // Attempt to pop from the queue. Returns true on success.
   inline bool pop(E &t);
 
-  inline void clear()  {
-    _buf_empty = true;
-    taskqueue_t::set_empty();
-    taskqueue_t::overflow_stack()->clear();
-  }
+  inline void clear();
 
   inline bool is_empty()        const {
     return _buf_empty && taskqueue_t::is_empty();
@@ -329,4 +324,4 @@
   bool offer_termination() { return offer_termination((ShenandoahTerminatorTerminator*)NULL); }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, 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
  * under the terms of the GNU General Public License version 2 only, as
@@ -21,14 +21,15 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
 
+#include "gc/shared/taskqueue.inline.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.hpp"
+#include "utilities/stack.inline.hpp"
 
 template <class E, MEMFLAGS F, unsigned int N>
-bool BufferedOverflowTaskQueue<E, F, N>::pop(E &t)
-{
+bool BufferedOverflowTaskQueue<E, F, N>::pop(E &t) {
   if (!_buf_empty) {
     t = _elem;
     _buf_empty = true;
@@ -43,8 +44,7 @@
 }
 
 template <class E, MEMFLAGS F, unsigned int N>
-inline bool BufferedOverflowTaskQueue<E, F, N>::push(E t)
-{
+inline bool BufferedOverflowTaskQueue<E, F, N>::push(E t) {
   if (_buf_empty) {
     _elem = t;
     _buf_empty = false;
@@ -56,4 +56,12 @@
   return true;
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
+template <class E, MEMFLAGS F, unsigned int N>
+void BufferedOverflowTaskQueue<E, F, N>::clear() {
+    _buf_empty = true;
+    taskqueue_t::set_empty();
+    taskqueue_t::overflow_stack()->clear();
+}
+
+
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTASKQUEUE_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTimingTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTimingTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
 
 #include "jfr/jfrEvents.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
@@ -65,5 +65,4 @@
   static ShenandoahPhaseTimings::Phase current_termination_phase() { return _current_termination_phase; }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
-
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTIMINGTRACKER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
 
 #include "gc/shared/gcTrace.hpp"
 
@@ -31,4 +31,4 @@
   ShenandoahTracer() : GCTracer(Shenandoah) {}
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTRACER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2018, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -28,7 +28,6 @@
 #include "gc/shared/referenceProcessor.hpp"
 #include "gc/shared/referenceProcessorPhaseTimes.hpp"
 #include "gc/shared/workgroup.hpp"
-#include "gc/shared/weakProcessor.hpp"
 #include "gc/shared/weakProcessor.inline.hpp"
 #include "gc/shenandoah/shenandoahBarrierSet.hpp"
 #include "gc/shenandoah/shenandoahCodeRoots.hpp"
@@ -36,16 +35,13 @@
 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
 #include "gc/shenandoah/shenandoahFreeSet.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
-#include "gc/shenandoah/shenandoahHeapRegionSet.hpp"
 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
 #include "gc/shenandoah/shenandoahHeuristics.hpp"
 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
 #include "gc/shenandoah/shenandoahOopClosures.inline.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
 #include "gc/shenandoah/shenandoahStringDedup.hpp"
-#include "gc/shenandoah/shenandoahTaskqueue.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "gc/shenandoah/shenandoahTimingTracker.hpp"
 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
 
 #include "memory/allocation.hpp"
 #include "gc/shenandoah/shenandoahHeap.hpp"
@@ -70,4 +70,4 @@
   void fixup_roots();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
 
 #include "gc/shenandoah/shenandoahAsserts.hpp"
 #include "gc/shenandoah/shenandoahBarrierSet.inline.hpp"
@@ -74,4 +74,4 @@
   }
 }
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_INLINE_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAHUTILS_HPP
-#define SHARE_VM_GC_SHENANDOAHUTILS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHUTILS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHUTILS_HPP
 
 #include "jfr/jfrEvents.hpp"
 
@@ -175,4 +175,4 @@
   }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAHUTILS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHUTILS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_VM_OPERATIONS_SHENANDOAH_HPP
-#define SHARE_VM_GC_SHENANDOAH_VM_OPERATIONS_SHENANDOAH_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
 
 #include "gc/shared/gcVMOperations.hpp"
 
@@ -131,4 +131,4 @@
   virtual void doit();
 };
 
-#endif //SHARE_VM_GC_SHENANDOAH_VM_OPERATIONS_SHENANDOAH_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2017, 2019, Red Hat, Inc. All rights reserved.
  *
  * 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
@@ -26,10 +26,9 @@
 #include "gc/shenandoah/shenandoahAsserts.hpp"
 #include "gc/shenandoah/shenandoahBrooksPointer.hpp"
 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
-#include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
 #include "gc/shenandoah/shenandoahRootProcessor.hpp"
-#include "gc/shenandoah/shenandoahTaskqueue.hpp"
+#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp"
 #include "gc/shenandoah/shenandoahUtils.hpp"
 #include "gc/shenandoah/shenandoahVerifier.hpp"
 #include "memory/allocation.hpp"
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
 
 #include "gc/shared/markBitMap.hpp"
 #include "memory/allocation.hpp"
@@ -184,4 +184,4 @@
   void verify_generic(VerifyOption option);
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
 
 #include "gc/shared/workgroup.hpp"
 #include "gc/shenandoah/shenandoahTaskqueue.hpp"
@@ -87,4 +87,4 @@
   void set_initialize_gclab() { assert(!_initialize_gclab, "Can only enable once"); _initialize_gclab = true; }
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHWORKGROUP_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
 
 #include "memory/allocation.hpp"
 
@@ -81,4 +81,4 @@
   static uint calc_workers_for_conc_reset();
 };
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAHWORKERPOLICY_HPP
--- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
-#define SHARE_VM_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
+#ifndef SHARE_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
+#define SHARE_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
 
 #define GC_SHENANDOAH_FLAGS(develop,                                        \
                             develop_pd,                                     \
@@ -185,6 +185,9 @@
           "adjustment. Lower values make adjustments faster, at the "       \
           "expense of higher perf overhead. Time is in milliseconds.")      \
                                                                             \
+  experimental(bool, ShenandoahCriticalControlThreadPriority, false,        \
+          "Shenandoah control thread runs at critical scheduling priority.")\
+                                                                            \
   diagnostic(bool, ShenandoahVerify, false,                                 \
           "Verify the Shenandoah garbage collector")                        \
                                                                             \
@@ -414,4 +417,4 @@
   experimental(bool, ShenandoahLoopOptsAfterExpansion, true,                \
           "Attempt more loop opts after write barrier expansion")           \
 
-#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
+#endif // SHARE_GC_SHENANDOAH_SHENANDOAH_GLOBALS_HPP
--- a/src/hotspot/share/gc/shenandoah/vmStructs_shenandoah.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/shenandoah/vmStructs_shenandoah.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -20,8 +20,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
-#define SHARE_VM_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
+#ifndef SHARE_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
+#define SHARE_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
 
 #include "gc/shenandoah/shenandoahHeap.hpp"
 #include "gc/shenandoah/shenandoahHeapRegion.hpp"
@@ -43,4 +43,4 @@
   declare_toplevel_type(ShenandoahHeap*)                                      \
   declare_toplevel_type(ShenandoahHeapRegion*)                                \
 
-#endif // SHARE_VM_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
+#endif // SHARE_GC_SHENANDOAH_VMSTRUCTS_SHENANDOAH_HPP
--- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -32,6 +32,7 @@
 #include "opto/node.hpp"
 #include "opto/type.hpp"
 #include "utilities/macros.hpp"
+#include "gc/z/zBarrierSet.hpp"
 #include "gc/z/c2/zBarrierSetC2.hpp"
 #include "gc/z/zThreadLocalData.hpp"
 #include "gc/z/zBarrierSetRuntime.hpp"
--- a/src/hotspot/share/gc/z/vmStructs_z.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/vmStructs_z.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_GC_Z_VMSTRUCTS_Z_HPP
-#define SHARE_VM_GC_Z_VMSTRUCTS_Z_HPP
+#ifndef SHARE_GC_Z_VMSTRUCTS_Z_HPP
+#define SHARE_GC_Z_VMSTRUCTS_Z_HPP
 
 #include "gc/z/zAddressRangeMap.hpp"
 #include "gc/z/zCollectedHeap.hpp"
@@ -117,4 +117,4 @@
   declare_toplevel_type(ZForwardingTableEntry)                                                       \
   declare_toplevel_type(ZPhysicalMemoryManager)
 
-#endif // SHARE_VM_GC_Z_VMSTRUCTS_Z_HPP
+#endif // SHARE_GC_Z_VMSTRUCTS_Z_HPP
--- a/src/hotspot/share/gc/z/zBarrierSetNMethod.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/zBarrierSetNMethod.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -42,6 +42,11 @@
   }
 
   if (nm->is_unloading()) {
+    // We don't need to take the lock when unlinking nmethods from
+    // the Method, because it is only concurrently unlinked by
+    // the entry barrier, which acquires the per nmethod lock.
+    nm->unlink_from_method(false /* acquire_lock */);
+
     // We can end up calling nmethods that are unloading
     // since we clear compiled ICs lazily. Returning false
     // will re-resovle the call and update the compiled IC.
--- a/src/hotspot/share/gc/z/zForwardingTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/zForwardingTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_GC_Z_ZFORWARDING_HPP
-#define SHARE_GC_Z_ZFORWARDING_HPP
+#ifndef SHARE_GC_Z_ZFORWARDINGTABLE_HPP
+#define SHARE_GC_Z_ZFORWARDINGTABLE_HPP
 
 #include "gc/z/zForwardingTableEntry.hpp"
 #include "memory/allocation.hpp"
@@ -56,4 +56,4 @@
   void verify(size_t object_max_count, size_t live_objects) const;
 };
 
-#endif // SHARE_GC_Z_ZFORWARDING_HPP
+#endif // SHARE_GC_Z_ZFORWARDINGTABLE_HPP
--- a/src/hotspot/share/gc/z/zForwardingTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/zForwardingTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_GC_Z_ZFORWARDING_INLINE_HPP
-#define SHARE_GC_Z_ZFORWARDING_INLINE_HPP
+#ifndef SHARE_GC_Z_ZFORWARDINGTABLE_INLINE_HPP
+#define SHARE_GC_Z_ZFORWARDINGTABLE_INLINE_HPP
 
 #include "gc/z/zForwardingTable.hpp"
 #include "gc/z/zGlobals.hpp"
@@ -106,4 +106,4 @@
   }
 }
 
-#endif // SHARE_GC_Z_ZFORWARDING_INLINE_HPP
+#endif // SHARE_GC_Z_ZFORWARDINGTABLE_INLINE_HPP
--- a/src/hotspot/share/gc/z/zNMethodTable.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/zNMethodTable.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -611,15 +611,20 @@
       return;
     }
 
+    ZLocker<ZReentrantLock> locker(ZNMethodTable::lock_for_nmethod(nm));
+
     if (nm->is_unloading()) {
       // Unlinking of the dependencies must happen before the
       // handshake separating unlink and purge.
       nm->flush_dependencies(false /* delete_immediately */);
+
+      // We don't need to take the lock when unlinking nmethods from
+      // the Method, because it is only concurrently unlinked by
+      // the entry barrier, which acquires the per nmethod lock.
+      nm->unlink_from_method(false /* acquire_lock */);
       return;
     }
 
-    ZLocker<ZReentrantLock> locker(ZNMethodTable::lock_for_nmethod(nm));
-
     // Heal oops and disarm
     ZNMethodOopClosure cl;
     ZNMethodTable::entry_oops_do(entry, &cl);
--- a/src/hotspot/share/gc/z/zTracer.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/gc/z/zTracer.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -27,6 +27,7 @@
 #include "gc/shared/gcId.hpp"
 #include "gc/shared/gcLocker.hpp"
 #include "jfr/jfrEvents.hpp"
+#include "runtime/safepoint.hpp"
 #include "runtime/safepointVerifiers.hpp"
 #if INCLUDE_JFR
 #include "jfr/metadata/jfrSerializer.hpp"
--- a/src/hotspot/share/interpreter/abstractInterpreter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/abstractInterpreter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP
-#define SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP
+#ifndef SHARE_INTERPRETER_ABSTRACTINTERPRETER_HPP
+#define SHARE_INTERPRETER_ABSTRACTINTERPRETER_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "code/stubs.hpp"
@@ -333,4 +333,4 @@
   AbstractInterpreterGenerator(StubQueue* _code);
 };
 
-#endif // SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP
+#endif // SHARE_INTERPRETER_ABSTRACTINTERPRETER_HPP
--- a/src/hotspot/share/interpreter/bytecode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODE_HPP
-#define SHARE_VM_INTERPRETER_BYTECODE_HPP
+#ifndef SHARE_INTERPRETER_BYTECODE_HPP
+#define SHARE_INTERPRETER_BYTECODE_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "memory/allocation.hpp"
@@ -342,4 +342,4 @@
   oop resolve_constant(TRAPS) const;
 };
 
-#endif // SHARE_VM_INTERPRETER_BYTECODE_HPP
+#endif // SHARE_INTERPRETER_BYTECODE_HPP
--- a/src/hotspot/share/interpreter/bytecode.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecode.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODE_INLINE_HPP
-#define SHARE_VM_INTERPRETER_BYTECODE_INLINE_HPP
+#ifndef SHARE_INTERPRETER_BYTECODE_INLINE_HPP
+#define SHARE_INTERPRETER_BYTECODE_INLINE_HPP
 
 #include "interpreter/bytecode.hpp"
 #include "oops/cpCache.inline.hpp"
 
 inline bool Bytecode_invoke::has_appendix() { return cpcache_entry()->has_appendix(); }
 
-#endif // SHARE_VM_INTERPRETER_BYTECODE_INLINE_HPP
+#endif // SHARE_INTERPRETER_BYTECODE_INLINE_HPP
--- a/src/hotspot/share/interpreter/bytecodeHistogram.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeHistogram.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP
-#define SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP
+#ifndef SHARE_INTERPRETER_BYTECODEHISTOGRAM_HPP
+#define SHARE_INTERPRETER_BYTECODEHISTOGRAM_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "memory/allocation.hpp"
@@ -95,4 +95,4 @@
   static void print(float cutoff = 0.01F)   PRODUCT_RETURN;   // cutoff in percent
 };
 
-#endif // SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP
+#endif // SHARE_INTERPRETER_BYTECODEHISTOGRAM_HPP
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP
-#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP
+#ifndef SHARE_INTERPRETER_BYTECODEINTERPRETER_HPP
+#define SHARE_INTERPRETER_BYTECODEINTERPRETER_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/methodData.hpp"
@@ -584,4 +584,4 @@
 
 #endif // CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP
+#endif // SHARE_INTERPRETER_BYTECODEINTERPRETER_HPP
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
-#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
+#ifndef SHARE_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
+#define SHARE_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
 
 #include "interpreter/bytecodeInterpreter.hpp"
 #include "runtime/stubRoutines.hpp"
@@ -51,4 +51,4 @@
 
 #endif // CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
+#endif // SHARE_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP
--- a/src/hotspot/share/interpreter/bytecodeInterpreterProfiling.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeInterpreterProfiling.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2014 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -27,8 +27,8 @@
 // for updating a method's methodData object.
 
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETERPROFILING_HPP
-#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETERPROFILING_HPP
+#ifndef SHARE_INTERPRETER_BYTECODEINTERPRETERPROFILING_HPP
+#define SHARE_INTERPRETER_BYTECODEINTERPRETERPROFILING_HPP
 
 #ifdef CC_INTERP
 
@@ -56,4 +56,4 @@
 
 #endif // CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_BYTECODECINTERPRETERPROFILING_HPP
+#endif // SHARE_INTERPRETER_BYTECODEINTERPRETERPROFILING_HPP
--- a/src/hotspot/share/interpreter/bytecodeStream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeStream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODESTREAM_HPP
-#define SHARE_VM_INTERPRETER_BYTECODESTREAM_HPP
+#ifndef SHARE_INTERPRETER_BYTECODESTREAM_HPP
+#define SHARE_INTERPRETER_BYTECODESTREAM_HPP
 
 #include "interpreter/bytecode.hpp"
 #include "memory/allocation.hpp"
@@ -227,4 +227,4 @@
   bool            has_index_u4() const           { return bytecode().has_index_u4(raw_code()); }
 };
 
-#endif // SHARE_VM_INTERPRETER_BYTECODESTREAM_HPP
+#endif // SHARE_INTERPRETER_BYTECODESTREAM_HPP
--- a/src/hotspot/share/interpreter/bytecodeTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodeTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODETRACER_HPP
-#define SHARE_VM_INTERPRETER_BYTECODETRACER_HPP
+#ifndef SHARE_INTERPRETER_BYTECODETRACER_HPP
+#define SHARE_INTERPRETER_BYTECODETRACER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/ostream.hpp"
@@ -62,4 +62,4 @@
   virtual void trace(const methodHandle& method, address bcp, outputStream* st) = 0;
 };
 
-#endif // SHARE_VM_INTERPRETER_BYTECODETRACER_HPP
+#endif // SHARE_INTERPRETER_BYTECODETRACER_HPP
--- a/src/hotspot/share/interpreter/bytecodes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/bytecodes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_BYTECODES_HPP
-#define SHARE_VM_INTERPRETER_BYTECODES_HPP
+#ifndef SHARE_INTERPRETER_BYTECODES_HPP
+#define SHARE_INTERPRETER_BYTECODES_HPP
 
 #include "memory/allocation.hpp"
 
@@ -442,4 +442,4 @@
   static void        initialize     ();
 };
 
-#endif // SHARE_VM_INTERPRETER_BYTECODES_HPP
+#endif // SHARE_INTERPRETER_BYTECODES_HPP
--- a/src/hotspot/share/interpreter/cppInterpreter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/cppInterpreter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_CPPINTERPRETER_HPP
-#define SHARE_VM_INTERPRETER_CPPINTERPRETER_HPP
+#ifndef SHARE_INTERPRETER_CPPINTERPRETER_HPP
+#define SHARE_INTERPRETER_CPPINTERPRETER_HPP
 
 #include "interpreter/abstractInterpreter.hpp"
 #include "utilities/macros.hpp"
@@ -70,4 +70,4 @@
 
 #endif // CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_CPPINTERPRETER_HPP
+#endif // SHARE_INTERPRETER_CPPINTERPRETER_HPP
--- a/src/hotspot/share/interpreter/cppInterpreterGenerator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/cppInterpreterGenerator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
-#define SHARE_VM_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
+#ifndef SHARE_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
+#define SHARE_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
 
 // This file contains the platform-independent parts
 // of the template interpreter generator.
@@ -75,4 +75,4 @@
 };
 
 #endif // CC_INTERP
-#endif // SHARE_VM_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
+#endif // SHARE_INTERPRETER_CPPINTERPRETERGENERATOR_HPP
--- a/src/hotspot/share/interpreter/interp_masm.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/interp_masm.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_INTERP_MASM_HPP
-#define SHARE_VM_INTERPRETER_INTERP_MASM_HPP
+#ifndef SHARE_INTERPRETER_INTERP_MASM_HPP
+#define SHARE_INTERPRETER_INTERP_MASM_HPP
 
 #include "asm/macroAssembler.hpp"
 #include "utilities/macros.hpp"
 
 #include CPU_HEADER(interp_masm)
 
-#endif // SHARE_VM_INTERPRETER_INTERP_MASM_HPP
+#endif // SHARE_INTERPRETER_INTERP_MASM_HPP
--- a/src/hotspot/share/interpreter/interpreter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/interpreter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_INTERPRETER_HPP
-#define SHARE_VM_INTERPRETER_INTERPRETER_HPP
+#ifndef SHARE_INTERPRETER_INTERPRETER_HPP
+#define SHARE_INTERPRETER_INTERPRETER_HPP
 
 #include "code/stubs.hpp"
 #include "interpreter/cppInterpreter.hpp"
@@ -119,4 +119,4 @@
 
 typedef CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpreter) Interpreter;
 
-#endif // SHARE_VM_INTERPRETER_INTERPRETER_HPP
+#endif // SHARE_INTERPRETER_INTERPRETER_HPP
--- a/src/hotspot/share/interpreter/interpreterRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/interpreterRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_INTERPRETERRUNTIME_HPP
-#define SHARE_VM_INTERPRETER_INTERPRETERRUNTIME_HPP
+#ifndef SHARE_INTERPRETER_INTERPRETERRUNTIME_HPP
+#define SHARE_INTERPRETER_INTERPRETERRUNTIME_HPP
 
 #include "interpreter/bytecode.hpp"
 #include "interpreter/linkResolver.hpp"
@@ -196,4 +196,4 @@
   static void add(uint64_t fingerprint, address handler);
 };
 
-#endif // SHARE_VM_INTERPRETER_INTERPRETERRUNTIME_HPP
+#endif // SHARE_INTERPRETER_INTERPRETERRUNTIME_HPP
--- a/src/hotspot/share/interpreter/invocationCounter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/invocationCounter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_INVOCATIONCOUNTER_HPP
-#define SHARE_VM_INTERPRETER_INVOCATIONCOUNTER_HPP
+#ifndef SHARE_INTERPRETER_INVOCATIONCOUNTER_HPP
+#define SHARE_INTERPRETER_INVOCATIONCOUNTER_HPP
 
 #include "runtime/handles.hpp"
 #include "utilities/exceptions.hpp"
@@ -153,4 +153,4 @@
 }
 
 
-#endif // SHARE_VM_INTERPRETER_INVOCATIONCOUNTER_HPP
+#endif // SHARE_INTERPRETER_INVOCATIONCOUNTER_HPP
--- a/src/hotspot/share/interpreter/linkResolver.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/linkResolver.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
-#define SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
+#ifndef SHARE_INTERPRETER_LINKRESOLVER_HPP
+#define SHARE_INTERPRETER_LINKRESOLVER_HPP
 
 #include "oops/method.hpp"
 
@@ -362,4 +362,4 @@
                                           const methodHandle& selected_method,
                                           Klass *recv_klass, TRAPS);
 };
-#endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
+#endif // SHARE_INTERPRETER_LINKRESOLVER_HPP
--- a/src/hotspot/share/interpreter/oopMapCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/oopMapCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_OOPMAPCACHE_HPP
-#define SHARE_VM_INTERPRETER_OOPMAPCACHE_HPP
+#ifndef SHARE_INTERPRETER_OOPMAPCACHE_HPP
+#define SHARE_INTERPRETER_OOPMAPCACHE_HPP
 
 #include "oops/generateOopMap.hpp"
 #include "runtime/mutex.hpp"
@@ -177,4 +177,4 @@
   static void cleanup_old_entries();
 };
 
-#endif // SHARE_VM_INTERPRETER_OOPMAPCACHE_HPP
+#endif // SHARE_INTERPRETER_OOPMAPCACHE_HPP
--- a/src/hotspot/share/interpreter/rewriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/rewriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_REWRITER_HPP
-#define SHARE_VM_INTERPRETER_REWRITER_HPP
+#ifndef SHARE_INTERPRETER_REWRITER_HPP
+#define SHARE_INTERPRETER_REWRITER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/growableArray.hpp"
@@ -213,4 +213,4 @@
   static void rewrite(InstanceKlass* klass, TRAPS);
 };
 
-#endif // SHARE_VM_INTERPRETER_REWRITER_HPP
+#endif // SHARE_INTERPRETER_REWRITER_HPP
--- a/src/hotspot/share/interpreter/templateInterpreter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/templateInterpreter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_TEMPLATEINTERPRETER_HPP
-#define SHARE_VM_INTERPRETER_TEMPLATEINTERPRETER_HPP
+#ifndef SHARE_INTERPRETER_TEMPLATEINTERPRETER_HPP
+#define SHARE_INTERPRETER_TEMPLATEINTERPRETER_HPP
 
 #include "interpreter/abstractInterpreter.hpp"
 #include "interpreter/templateTable.hpp"
@@ -196,4 +196,4 @@
 
 #endif // !CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_TEMPLATEINTERPRETER_HPP
+#endif // SHARE_INTERPRETER_TEMPLATEINTERPRETER_HPP
--- a/src/hotspot/share/interpreter/templateInterpreterGenerator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/templateInterpreterGenerator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
-#define SHARE_VM_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
+#ifndef SHARE_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
+#define SHARE_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
 
 // This file contains the platform-independent parts
 // of the template interpreter generator.
@@ -129,4 +129,4 @@
 
 #endif // !CC_INTERP
 
-#endif // SHARE_VM_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
+#endif // SHARE_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP
--- a/src/hotspot/share/interpreter/templateTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/interpreter/templateTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_INTERPRETER_TEMPLATETABLE_HPP
-#define SHARE_VM_INTERPRETER_TEMPLATETABLE_HPP
+#ifndef SHARE_INTERPRETER_TEMPLATETABLE_HPP
+#define SHARE_INTERPRETER_TEMPLATETABLE_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "memory/allocation.hpp"
@@ -357,4 +357,4 @@
 };
 #endif /* !CC_INTERP */
 
-#endif // SHARE_VM_INTERPRETER_TEMPLATETABLE_HPP
+#endif // SHARE_INTERPRETER_TEMPLATETABLE_HPP
--- a/src/hotspot/share/jfr/dcmd/jfrDcmds.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/dcmd/jfrDcmds.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JFRDCMDS_HPP
-#define SHARE_VM_JFR_JFRDCMDS_HPP
+#ifndef SHARE_JFR_DCMD_JFRDCMDS_HPP
+#define SHARE_JFR_DCMD_JFRDCMDS_HPP
 
 #include "services/diagnosticCommand.hpp"
 
@@ -172,4 +172,4 @@
 
 bool register_jfr_dcmds();
 
-#endif // SHARE_VM_JFR_JFRDCMDS_HPP
+#endif // SHARE_JFR_DCMD_JFRDCMDS_HPP
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
-#define SHARE_VM_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
+#ifndef SHARE_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
+#define SHARE_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/exceptions.hpp"
@@ -42,4 +42,4 @@
   static bool is_force_instrumentation();
 };
 
-#endif // SHARE_VM_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
+#endif // SHARE_JFR_INSTRUMENTATION_JFREVENTCLASSTRANSFORMER_HPP
--- a/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
-#define SHARE_VM_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
+#ifndef SHARE_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
+#define SHARE_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -38,4 +38,4 @@
   static void retransform_classes(JNIEnv* env, jobjectArray classes, TRAPS);
 };
 
-#endif // SHARE_VM_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
+#endif // SHARE_JFR_INSTRUMENTATION_JFRJVMTIAGENT_HPP
--- a/src/hotspot/share/jfr/jfr.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jfr.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JFR_HPP
-#define SHARE_VM_JFR_JFR_HPP
+#ifndef SHARE_JFR_JFR_HPP
+#define SHARE_JFR_JFR_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -55,4 +55,4 @@
   static void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* f);
 };
 
-#endif // SHARE_VM_JFR_JFR_HPP
+#endif // SHARE_JFR_JFR_HPP
--- a/src/hotspot/share/jfr/jfrEvents.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jfrEvents.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JFREVENTS_HPP
-#define SHARE_VM_JFR_JFREVENTS_HPP
+#ifndef SHARE_JFR_JFREVENTS_HPP
+#define SHARE_JFR_JFREVENTS_HPP
 /*
  * Declare your event in jfr/metadata/metadata.xml.
  *
@@ -32,4 +32,4 @@
 #include "jfrfiles/jfrEventClasses.hpp"
 #include "jfrfiles/jfrEventIds.hpp"
 
-#endif // SHARE_VM_JFR_JFREVENTS_HPP
+#endif // SHARE_JFR_JFREVENTS_HPP
--- a/src/hotspot/share/jfr/jni/jfrGetAllEventClasses.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrGetAllEventClasses.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
-#define SHARE_VM_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
+#ifndef SHARE_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
+#define SHARE_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -38,4 +38,4 @@
   static jobject get_all_event_classes(TRAPS);
 };
 
-#endif // SHARE_VM_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
+#endif // SHARE_JFR_JNI_JFRGETALLEVENTCLASSES_HPP
--- a/src/hotspot/share/jfr/jni/jfrJavaCall.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrJavaCall.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JNI_JFRJAVACALL_HPP
-#define SHARE_VM_JFR_JNI_JFRJAVACALL_HPP
+#ifndef SHARE_JFR_JNI_JFRJAVACALL_HPP
+#define SHARE_JFR_JNI_JFRJAVACALL_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -131,4 +131,4 @@
   static void call_virtual(JfrJavaArguments* args, TRAPS);
 };
 
-#endif // SHARE_VM_JFR_JNI_JFRJAVACALL_HPP
+#endif // SHARE_JFR_JNI_JFRJAVACALL_HPP
--- a/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrJavaSupport.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -474,15 +474,16 @@
   }
   const char* temp = NULL;
   const oop java_string = resolve_non_null(string);
-  if (java_lang_String::value(java_string) != NULL) {
-    const size_t length = java_lang_String::utf8_length(java_string);
+  const typeArrayOop value = java_lang_String::value(java_string);
+  if (value != NULL) {
+    const size_t length = java_lang_String::utf8_length(java_string, value);
     temp = NEW_RESOURCE_ARRAY_IN_THREAD(t, const char, (length + 1));
     if (temp == NULL) {
        JfrJavaSupport::throw_out_of_memory_error("Unable to allocate thread local native memory", t);
        return NULL;
     }
     assert(temp != NULL, "invariant");
-    java_lang_String::as_utf8_string(java_string, const_cast<char*>(temp), (int) length + 1);
+    java_lang_String::as_utf8_string(java_string, value, const_cast<char*>(temp), (int) length + 1);
   }
   return temp;
 }
--- a/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrJavaSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JNI_JFRJAVASUPPORT_HPP
-#define SHARE_VM_JFR_JNI_JFRJAVASUPPORT_HPP
+#ifndef SHARE_JFR_JNI_JFRJAVASUPPORT_HPP
+#define SHARE_JFR_JNI_JFRJAVASUPPORT_HPP
 
 #include "jfr/jni/jfrJavaCall.hpp"
 #include "utilities/exceptions.hpp"
@@ -111,4 +111,4 @@
   static void set_cause(jthrowable throwable, Thread* t);
 };
 
-#endif // SHARE_VM_JFR_JNI_JFRJAVASUPPORT_HPP
+#endif // SHARE_JFR_JNI_JFRJAVASUPPORT_HPP
--- a/src/hotspot/share/jfr/jni/jfrJniMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrJniMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JNI_JFRJNIMETHOD_HPP
-#define SHARE_VM_JFR_JNI_JFRJNIMETHOD_HPP
+#ifndef SHARE_JFR_JNI_JFRJNIMETHOD_HPP
+#define SHARE_JFR_JNI_JFRJNIMETHOD_HPP
 
 #include "jni.h"
 
@@ -136,4 +136,4 @@
 }
 #endif
 
-#endif // SHARE_VM_JFR_JNI_JFRJNIMETHOD_HPP
+#endif // SHARE_JFR_JNI_JFRJNIMETHOD_HPP
--- a/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrJniMethodRegistration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
-#define SHARE_VM_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
+#ifndef SHARE_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
+#define SHARE_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -36,4 +36,4 @@
   JfrJniMethodRegistration(JNIEnv* env);
 };
 
-#endif // SHARE_VM_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
+#endif // SHARE_JFR_JNI_JFRJNIMETHODREGISTRATION_HPP
--- a/src/hotspot/share/jfr/jni/jfrUpcalls.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/jni/jfrUpcalls.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_JNI_JFRUPCALLS_HPP
-#define SHARE_VM_JFR_JNI_JFRUPCALLS_HPP
+#ifndef SHARE_JFR_JNI_JFRUPCALLS_HPP
+#define SHARE_JFR_JNI_JFRUPCALLS_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -55,4 +55,4 @@
                              TRAPS);
 };
 
-#endif // SHARE_VM_JFR_JNI_JFRUPCALLS_HPP
+#endif // SHARE_JFR_JNI_JFRUPCALLS_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/bfsClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/bfsClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/oop.hpp"
@@ -70,4 +70,4 @@
   virtual void do_oop(narrowOop* ref);
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_BFSCLOSURE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/bitset.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/bitset.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -76,4 +76,4 @@
   }
 };
 
-#endif  // SHARE_VM_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_BITSET_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/oop.hpp"
@@ -62,4 +62,4 @@
   virtual void do_oop(narrowOop* ref);
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_DFSCLOSURE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/edge.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/edge.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -56,4 +56,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_EDGE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/edgeQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/edgeQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/leakprofiler/chains/edge.hpp"
@@ -57,4 +57,4 @@
   size_t sizeof_edge() const; // with alignments
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_EDGEQUEUE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_CHAINS_EDGESTORE_HPP
-#define SHARE_VM_LEAKPROFILER_CHAINS_EDGESTORE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_EDGESTORE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_EDGESTORE_HPP
 
 #include "jfr/utilities/jfrHashtable.hpp"
 #include "jfr/leakprofiler/chains/edge.hpp"
@@ -116,4 +116,4 @@
   void iterate_edges(T& functor) const { _edges->iterate_value<T>(functor); }
 };
 
-#endif // SHARE_VM_LEAKPROFILER_CHAINS_EDGESTORE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_EDGESTORE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
-#define SHARE_VM_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -48,4 +48,4 @@
   static void collapse_chain(const RoutableEdge& edge);
 };
 
-#endif // SHARE_VM_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_EDGEUTILS_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/objectSampleMarker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/objectSampleMarker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/markOop.hpp"
@@ -78,4 +78,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_OBJECTSAMPLEMARKER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
+#define SHARE_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/oop.hpp"
@@ -43,4 +43,4 @@
   virtual void do_oop(narrowOop* reference);
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHAINS_ROOTSETCLOSURE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
-#define SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
+#define SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/exceptions.hpp"
@@ -48,4 +48,4 @@
   bool process();
 };
 
-#endif // SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleDescription.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleDescription.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
-#define SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
+#define SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
 
 #define OBJECT_SAMPLE_DESCRIPTION_BUFFER_SIZE 100
 
@@ -71,4 +71,4 @@
   const char* description();
 };
 
-#endif // SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEDESCRIPTION_HPP
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
-#define SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
+#define SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -47,4 +47,4 @@
   bool operator()(const RoutableEdge& edge);
 };
 
-#endif // SHARE_VM_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLEWRITER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
+#define SHARE_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/leakprofiler/utilities/rootType.hpp"
@@ -49,4 +49,4 @@
   static void resolve(RootCallback& callback);
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_CHECKPOINT_ROOTRESOLVER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_EMITEVENTOPERATION_HPP
-#define SHARE_VM_LEAKPROFILER_EMITEVENTOPERATION_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_EMITEVENTOPERATION_HPP
+#define SHARE_JFR_LEAKPROFILER_EMITEVENTOPERATION_HPP
 
 #include "runtime/vmOperations.hpp"
 
@@ -68,4 +68,4 @@
   virtual void doit();
 };
 
-#endif // SHARE_VM_LEAKPROFILER_EMITEVENTOPERATION_HPP
+#endif // SHARE_JFR_LEAKPROFILER_EMITEVENTOPERATION_HPP
--- a/src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_LEAKPROFILER_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_LEAKPROFILER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_LEAKPROFILER_HPP
+#define SHARE_JFR_LEAKPROFILER_LEAKPROFILER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -64,4 +64,4 @@
   static void oops_do(BoolObjectClosure* is_alive, OopClosure* f);
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_LEAKPROFILER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_LEAKPROFILER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
+#define SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
 
 #include "jfr/recorder/checkpoint/jfrCheckpointBlob.hpp"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -246,4 +246,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
-#define SHARE_VM_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
+#define SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/utilities/jfrTime.hpp"
@@ -76,4 +76,4 @@
   const JfrTicks& last_sweep() const;
 };
 
-#endif // SHARE_VM_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_SAMPLING_OBJECTSAMPLER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/sampling/sampleList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/sampling/sampleList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
+#define SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
 #include "jfr/utilities/jfrAllocation.hpp"
 #include "jfr/utilities/jfrDoublyLinkedList.hpp"
 
@@ -61,4 +61,4 @@
   size_t count() const;
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
+#endif // SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLELIST_HPP
--- a/src/hotspot/share/jfr/leakprofiler/sampling/samplePriorityQueue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/sampling/samplePriorityQueue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
+#define SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -55,4 +55,4 @@
   int count() const;
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_SAMPLING_SAMPLEPRIORITYQUEUE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/startOperation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/startOperation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_STARTOPERATION_HPP
-#define SHARE_VM_LEAKPROFILER_STARTOPERATION_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_STARTOPERATION_HPP
+#define SHARE_JFR_LEAKPROFILER_STARTOPERATION_HPP
 
 #include "jfr/recorder/jfrRecorder.hpp"
 #include "jfr/leakprofiler/leakProfiler.hpp"
@@ -57,4 +57,4 @@
   }
 };
 
-#endif // SHARE_VM_LEAKPROFILER_STARTOPERATION_HPP
+#endif // SHARE_JFR_LEAKPROFILER_STARTOPERATION_HPP
--- a/src/hotspot/share/jfr/leakprofiler/stopOperation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/stopOperation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_STOPOPERATION_HPP
-#define SHARE_VM_LEAKPROFILER_STOPOPERATION_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_STOPOPERATION_HPP
+#define SHARE_JFR_LEAKPROFILER_STOPOPERATION_HPP
 
 #include "jfr/leakprofiler/leakProfiler.hpp"
 #include "jfr/leakprofiler/sampling/objectSampler.hpp"
@@ -53,4 +53,4 @@
   }
 };
 
-#endif // SHARE_VM_LEAKPROFILER_STOPOPERATION_HPP
+#endif // SHARE_JFR_LEAKPROFILER_STOPOPERATION_HPP
--- a/src/hotspot/share/jfr/leakprofiler/utilities/granularTimer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/granularTimer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
-#define SHARE_VM_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
+#define SHARE_JFR_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
 
 #include "jfr/utilities/jfrTime.hpp"
 #include "memory/allocation.hpp"
@@ -43,4 +43,4 @@
   static bool is_finished();
 };
 
-#endif // SHARE_VM_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
+#endif // SHARE_JFR_LEAKPROFILER_UTILITIES_GRANULARTIMER_HPP
--- a/src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
-#define SHARE_VM_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
+#define SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -106,4 +106,4 @@
   }
 };
 
-#endif // SHARE_VM_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_UTILITIES_ROOTTYPE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
+#define SHARE_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/iterator.hpp"
@@ -125,4 +125,4 @@
   ~SaveRestoreCLDClaimBits();
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
+#endif // SHARE_JFR_LEAKPROFILER_UTILITIES_SAVERESTORE_HPP
--- a/src/hotspot/share/jfr/leakprofiler/utilities/unifiedOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/leakprofiler/utilities/unifiedOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
-#define SHARE_VM_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
+#ifndef SHARE_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
+#define SHARE_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
 
 #include "oops/oop.inline.hpp"
 
@@ -53,4 +53,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
+#endif // SHARE_JFR_LEAKPROFILER_UTILITIES_UNIFIEDOOP_HPP
--- a/src/hotspot/share/jfr/metadata/jfrSerializer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/metadata/jfrSerializer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_METADATA_JFRSERIALIZER_HPP
-#define SHARE_VM_JFR_METADATA_JFRSERIALIZER_HPP
+#ifndef SHARE_JFR_METADATA_JFRSERIALIZER_HPP
+#define SHARE_JFR_METADATA_JFRSERIALIZER_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/recorder/checkpoint/jfrCheckpointWriter.hpp"
@@ -97,4 +97,4 @@
  * Please see jfr/recorder/checkpoint/types/jfrType.cpp for reference.
  */
 
-#endif // SHARE_VM_JFR_METADATA_JFRSERIALIZER_HPP
+#endif // SHARE_JFR_METADATA_JFRSERIALIZER_HPP
--- a/src/hotspot/share/jfr/periodic/jfrModuleEvent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrModuleEvent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_EVENT_JFRMODULEEVENT_HPP
-#define SHARE_VM_JFR_EVENT_JFRMODULEEVENT_HPP
+#ifndef SHARE_JFR_PERIODIC_JFRMODULEEVENT_HPP
+#define SHARE_JFR_PERIODIC_JFRMODULEEVENT_HPP
 
 #include "memory/allocation.hpp"
 
@@ -33,4 +33,4 @@
   static void generate_module_export_events();
 };
 
-#endif // SHARE_VM_JFR_EVENT_JFRMODULEEVENT_HPP
+#endif // SHARE_JFR_PERIODIC_JFRMODULEEVENT_HPP
--- a/src/hotspot/share/jfr/periodic/jfrNetworkUtilization.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrNetworkUtilization.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
-#define SHARE_VM_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
+#ifndef SHARE_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
+#define SHARE_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
 
 #include "memory/allocation.hpp"
 
@@ -35,4 +35,4 @@
   static void send_events();
 };
 
-#endif // SHARE_VM_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
+#endif // SHARE_JFR_PERIODIC_JFRNETWORKUTILIZATION_HPP
--- a/src/hotspot/share/jfr/periodic/jfrOSInterface.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrOSInterface.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -70,9 +70,6 @@
   SystemProcessInterface*  _system_process_interface;
   NetworkPerformanceInterface* _network_performance_interface;
 
-  // stub helper
-  void functionality_not_implemented(char** str) const;
-
   JfrOSInterfaceImpl();
   bool initialize();
   ~JfrOSInterfaceImpl();
@@ -178,15 +175,6 @@
   return OS_OK;
 }
 
-void JfrOSInterface::JfrOSInterfaceImpl::functionality_not_implemented(char** str) const {
-  assert(str != NULL, "address to string is NULL!");
-  const char* not_impl = "Functionality_not_implemented";
-  const size_t not_impl_len = strlen(not_impl);
-  *str = NEW_C_HEAP_ARRAY(char, not_impl_len+1, mtTracing);
-  strncpy(*str, not_impl, not_impl_len);
-  (*str)[not_impl_len] = '\0';
-}
-
 JfrOSInterface::JfrOSInterface() {
   _impl = NULL;
 }
--- a/src/hotspot/share/jfr/periodic/jfrOSInterface.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrOSInterface.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_PERIODIC_JFROSINTERFACE_HPP
-#define SHARE_VM_JFR_PERIODIC_JFROSINTERFACE_HPP
+#ifndef SHARE_JFR_PERIODIC_JFROSINTERFACE_HPP
+#define SHARE_JFR_PERIODIC_JFROSINTERFACE_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -57,4 +57,4 @@
   static int network_utilization(NetworkInterface** network_interfaces);
 };
 
-#endif // SHARE_VM_JFR_PERIODIC_JFROSINTERFACE_HPP
+#endif // SHARE_JFR_PERIODIC_JFROSINTERFACE_HPP
--- a/src/hotspot/share/jfr/periodic/jfrThreadCPULoadEvent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrThreadCPULoadEvent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_PERIODIC_JFRTHREADCPULOAD_HPP
-#define SHARE_VM_JFR_PERIODIC_JFRTHREADCPULOAD_HPP
+#ifndef SHARE_JFR_PERIODIC_JFRTHREADCPULOADEVENT_HPP
+#define SHARE_JFR_PERIODIC_JFRTHREADCPULOADEVENT_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -41,5 +41,4 @@
   static void send_event_for_thread(JavaThread* jt);
 };
 
-#endif // SHARE_VM_JFR_PERIODIC_JFRTHREADCPULOAD_HPP
-
+#endif // SHARE_JFR_PERIODIC_JFRTHREADCPULOADEVENT_HPP
--- a/src/hotspot/share/jfr/periodic/jfrThreadDumpEvent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/jfrThreadDumpEvent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_PERIODIC_JFRDCMDEVENT_HPP
-#define SHARE_VM_JFR_PERIODIC_JFRDCMDEVENT_HPP
+#ifndef SHARE_JFR_PERIODIC_JFRTHREADDUMPEVENT_HPP
+#define SHARE_JFR_PERIODIC_JFRTHREADDUMPEVENT_HPP
 
 #include "memory/allocation.hpp"
 
@@ -36,4 +36,4 @@
   static const char* thread_dump();
 };
 
-#endif // SHARE_VM_JFR_PERIODIC_JFRDCMDEVENT_HPP
+#endif // SHARE_JFR_PERIODIC_JFRTHREADDUMPEVENT_HPP
--- a/src/hotspot/share/jfr/periodic/sampling/jfrCallTrace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/sampling/jfrCallTrace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_ENGINE_SAMPLING_JFRCALLTRACE_HPP
-#define SHARE_VM_JFR_ENGINE_SAMPLING_JFRCALLTRACE_HPP
+#ifndef SHARE_JFR_PERIODIC_SAMPLING_JFRCALLTRACE_HPP
+#define SHARE_JFR_PERIODIC_SAMPLING_JFRCALLTRACE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -42,4 +42,4 @@
   bool get_topframe(void* ucontext, frame& top);
 };
 
-#endif // SHARE_VM_JFR_ENGINE_SAMPLING_JFRCALLTRACE_HPP
+#endif // SHARE_JFR_PERIODIC_SAMPLING_JFRCALLTRACE_HPP
--- a/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -467,8 +467,17 @@
 
     jlong now_ms = get_monotonic_ms();
 
-    jlong next_j = java_interval + last_java_ms - now_ms;
-    jlong next_n = native_interval + last_native_ms - now_ms;
+    /*
+     * Let I be java_interval or native_interval.
+     * Let L be last_java_ms or last_native_ms.
+     * Let N be now_ms.
+     *
+     * Interval, I, might be max_jlong so the addition
+     * could potentially overflow without parenthesis (UB). Also note that
+     * L - N < 0. Avoid UB, by adding parenthesis.
+     */
+    jlong next_j = java_interval + (last_java_ms - now_ms);
+    jlong next_n = native_interval + (last_native_ms - now_ms);
 
     jlong sleep_to_next = MIN2<jlong>(next_j, next_n);
 
--- a/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
-#define SHARE_VM_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
+#ifndef SHARE_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
+#define SHARE_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -52,4 +52,4 @@
   static void on_javathread_suspend(JavaThread* thread);
 };
 
-#endif // SHARE_VM_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
+#endif // SHARE_JFR_PERIODIC_SAMPLING_JFRTHREADSAMPLER_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 #include "jfr/utilities/jfrRefCountPointer.hpp"
@@ -56,4 +56,4 @@
   static JfrCheckpointBlobHandle make(const u1* checkpoint, size_t size);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTBLOB_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
 
 #include "jfr/recorder/storage/jfrBuffer.hpp"
 #include "jfr/recorder/storage/jfrMemorySpace.hpp"
@@ -105,4 +105,4 @@
   friend class JfrMemorySpace;
 };
 
-#endif //SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTMANAGER_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
 
 #include "jfr/recorder/checkpoint/jfrCheckpointBlob.hpp"
 #include "jfr/recorder/storage/jfrBuffer.hpp"
@@ -85,4 +85,4 @@
   JfrCheckpointBlobHandle move(const JfrCheckpointContext* ctx = NULL);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_JFRCHECKPOINTWRITER_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -43,4 +43,4 @@
   static void update(jbyteArray metadata);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_JFRMETADATAEVENT_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -62,4 +62,4 @@
   static traceid thread_group_id(const JavaThread* thread, Thread* current);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADGROUP_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -34,4 +34,4 @@
   static void serialize(JfrCheckpointWriter& writer);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTHREADSTATE_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPE_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPE_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPE_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPE_HPP
 
 #include "jfr/metadata/jfrSerializer.hpp"
 
@@ -135,4 +135,4 @@
   void serialize(JfrCheckpointWriter& writer);
 };
 
-#endif // SHARE_VM_JFR_CHECKPOINT_CONSTANT_JFRCONSTANT_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPE_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -41,4 +41,4 @@
   static void write_thread_checkpoint(JavaThread* jt);
 };
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPEMANAGER_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -70,4 +70,4 @@
   static void serialize(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer, bool class_unload);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
-#define SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
 
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -373,4 +373,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETUTILS_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
 
 #include "jfr/recorder/checkpoint/jfrCheckpointWriter.hpp"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -105,4 +105,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESETWRITER_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -125,4 +125,4 @@
   static void tag_as_event_host(const jclass jc);
 };
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTYPEIDS_INLINE_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTYPEIDS_INLINE_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_INLINE_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_INLINE_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "classfile/moduleEntry.hpp"
@@ -149,4 +149,4 @@
   assert(IS_EVENT_HOST_KLASS(k), "invariant");
 }
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTYPEIDS_INLINE_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEID_INLINE_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
 
 #include "jfr/utilities/jfrTypes.hpp"
 #include "runtime/atomic.hpp"
@@ -106,5 +106,4 @@
   set_mask(mask, ((jbyte*)dest) + leakp_offset);
 }
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
-
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDBITS_INLINE_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -100,4 +100,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDEPOCH_HPP
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
-#define SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
+#ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
+#define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
 
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp"
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp"
@@ -184,4 +184,4 @@
 #define CLEAR_METHOD_FLAG_USED_THIS_EPOCH(m) (clear_bits_cas((jbyte)JfrTraceIdEpoch::in_use_this_epoch_bit(), (m)->trace_flags_addr()))
 #define CLEAR_METHOD_FLAG_USED_PREV_EPOCH(m) (clear_bits_cas((jbyte)JfrTraceIdEpoch::in_use_prev_epoch_bit(), (m)->trace_flags_addr()))
 
-#endif // SHARE_VM_JFR_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
+#endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_TRACEID_JFRTRACEIDMACROS_HPP
--- a/src/hotspot/share/jfr/recorder/jfrEventSetting.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/jfrEventSetting.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_JFREVENTSETTING_HPP
-#define SHARE_VM_JFR_RECORDER_JFREVENTSETTING_HPP
+#ifndef SHARE_JFR_RECORDER_JFREVENTSETTING_HPP
+#define SHARE_JFR_RECORDER_JFREVENTSETTING_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -49,4 +49,4 @@
   DEBUG_ONLY(static bool bounds_check_event(jlong id);)
 };
 
-#endif //  SHARE_VM_JFR_RECORDER_JFREVENTSETTING_HPP
+#endif // SHARE_JFR_RECORDER_JFREVENTSETTING_HPP
--- a/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/jfrEventSetting.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
-#define SHARE_VM_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
+#ifndef SHARE_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
+#define SHARE_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
 
 #include "jfr/recorder/jfrEventSetting.hpp"
 
@@ -47,5 +47,4 @@
   return setting(event_id).cutoff_ticks;
 }
 
-#endif // SHARE_VM_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
-
+#endif // SHARE_JFR_RECORDER_JFREVENTSETTING_INLINE_HPP
--- a/src/hotspot/share/jfr/recorder/jfrRecorder.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/jfrRecorder.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -44,31 +44,22 @@
 #include "logging/logStream.hpp"
 #include "memory/resourceArea.inline.hpp"
 #include "runtime/handles.inline.hpp"
-#include "runtime/flags/jvmFlag.hpp"
-#include "runtime/globals.hpp"
+#include "runtime/globals_extension.hpp"
 #include "utilities/growableArray.hpp"
 
-static bool is_disabled_on_command_line() {
-  static const size_t length = strlen("FlightRecorder");
-  static JVMFlag* const flight_recorder_flag = JVMFlag::find_flag("FlightRecorder", length);
-  assert(flight_recorder_flag != NULL, "invariant");
-  return flight_recorder_flag->is_command_line() ? !FlightRecorder : false;
-}
-
 bool JfrRecorder::is_disabled() {
-  return is_disabled_on_command_line();
-}
-
-static bool set_flight_recorder_flag(bool flag_value) {
-  JVMFlag::boolAtPut((char*)"FlightRecorder", &flag_value, JVMFlag::MANAGEMENT);
-  return FlightRecorder;
+  // True if -XX:-FlightRecorder has been explicitly set on the
+  // command line
+  return FLAG_IS_CMDLINE(FlightRecorder) ? !FlightRecorder : false;
 }
 
 static bool _enabled = false;
 
 static bool enable() {
   assert(!_enabled, "invariant");
-  _enabled = set_flight_recorder_flag(true);
+  FLAG_SET_MGMT(bool, FlightRecorder, true);
+  _enabled = FlightRecorder;
+  assert(_enabled, "invariant");
   return _enabled;
 }
 
--- a/src/hotspot/share/jfr/recorder/jfrRecorder.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/jfrRecorder.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_JFRRECORDER_HPP
-#define SHARE_VM_JFR_RECORDER_JFRRECORDER_HPP
+#ifndef SHARE_JFR_RECORDER_JFRRECORDER_HPP
+#define SHARE_JFR_RECORDER_JFRRECORDER_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -65,4 +65,4 @@
   static void stop_recording();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_JFRRECORDER_HPP
+#endif // SHARE_JFR_RECORDER_JFRRECORDER_HPP
--- a/src/hotspot/share/jfr/recorder/repository/jfrChunkRotation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/repository/jfrChunkRotation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
-#define SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
+#ifndef SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
+#define SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
 
 #include "memory/allocation.hpp"
 
@@ -41,4 +41,4 @@
   static void on_rotation();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
+#endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKROTATION_HPP
--- a/src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_REPOSITORY_JFRRCHUNKSTATE_HPP
-#define SHARE_VM_JFR_RECORDER_REPOSITORY_JFRRCHUNKSTATE_HPP
+#ifndef SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKSTATE_HPP
+#define SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKSTATE_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -57,4 +57,4 @@
   const char* path() const;
 };
 
-#endif // SHARE_VM_JFR_RECORDER_REPOSITORY_JFRRCHUNKSTATE_HPP
+#endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKSTATE_HPP
--- a/src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
-#define SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
+#ifndef SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
+#define SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
 
 #include "jfr/writers/jfrStorageAdapter.hpp"
 #include "jfr/writers/jfrStreamWriterHost.inline.hpp"
@@ -54,4 +54,4 @@
   void time_stamp_chunk_now();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
+#endif // SHARE_JFR_RECORDER_REPOSITORY_JFRCHUNKWRITER_HPP
--- a/src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_INTERNAL_JFREMERGENCY_HPP
-#define SHARE_VM_JFR_RECORDER_INTERNAL_JFREMERGENCY_HPP
+#ifndef SHARE_JFR_RECORDER_REPOSITORY_JFREMERGENCYDUMP_HPP
+#define SHARE_JFR_RECORDER_REPOSITORY_JFREMERGENCYDUMP_HPP
 
 #include "memory/allocation.hpp"
 
@@ -35,6 +35,4 @@
   static void on_vm_shutdown(bool exception_handler);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_INTERNAL_JFREMERGENCY_HPP
-
-
+#endif // SHARE_JFR_RECORDER_REPOSITORY_JFREMERGENCYDUMP_HPP
--- a/src/hotspot/share/jfr/recorder/repository/jfrRepository.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/repository/jfrRepository.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
-#define SHARE_VM_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
+#ifndef SHARE_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
+#define SHARE_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
 
 #include "jni.h"
 #include "jfr/utilities/jfrAllocation.hpp"
@@ -70,4 +70,4 @@
   static void set_chunk_path(jstring path, JavaThread* jt);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
+#endif // SHARE_JFR_RECORDER_REPOSITORY_JFRREPOSITORY_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrEvent.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrEvent.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFREVENT_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFREVENT_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFREVENT_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFREVENT_HPP
 
 #include "jfr/recorder/jfrEventSetting.inline.hpp"
 #include "jfr/recorder/stacktrace/jfrStackTraceRepository.hpp"
@@ -211,4 +211,4 @@
 #endif // ASSERT
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFREVENT_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFREVENT_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrMemorySizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrMemorySizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -53,4 +53,4 @@
   static bool adjust_options(JfrMemoryOptions* options);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFRMEMORYSIZER_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrOptionSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrOptionSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -84,4 +84,4 @@
   static void release_startup_recording_options();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFROPTIONSET_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrPostBox.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrPostBox.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -94,4 +94,4 @@
   void notify_collection_stop();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFRPOSTBOX_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrRecorderService.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrRecorderService.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -74,4 +74,4 @@
   static bool is_recording();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFRRECORDERSERVICE_HPP
--- a/src/hotspot/share/jfr/recorder/service/jfrRecorderThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/service/jfrRecorderThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
-#define SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
+#ifndef SHARE_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
+#define SHARE_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -42,4 +42,4 @@
   static bool start(JfrCheckpointManager* cp_manager, JfrPostBox* post_box, TRAPS);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
+#endif // SHARE_JFR_RECORDER_SERVICE_JFRRECORDERTHREAD_HPP
--- a/src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
-#define SHARE_VM_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
+#ifndef SHARE_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
+#define SHARE_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -150,4 +150,4 @@
   size_t clear();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
+#endif // SHARE_JFR_RECORDER_STACKTRACE_JFRSTACKTRACEREPOSITORY_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -184,4 +184,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRBUFFER_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 #include "jfr/utilities/jfrDoublyLinkedList.hpp"
@@ -165,4 +165,4 @@
   size_t processed() const { return 0; }
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
 
 #include "jfr/recorder/storage/jfrMemorySpace.hpp"
 
@@ -381,5 +381,4 @@
   }
 }
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
-
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACE_INLINE_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrMemorySpaceRetrieval.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrMemorySpaceRetrieval.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/recorder/repository/jfrChunkWriter.hpp"
@@ -110,4 +110,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRMEMORYSPACERETRIEVAL_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrStorage.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrStorage.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
 
 #include "jfr/recorder/storage/jfrBuffer.hpp"
 #include "jfr/recorder/storage/jfrMemorySpace.hpp"
@@ -95,4 +95,4 @@
   friend class JfrMemorySpace;
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRSTORAGE_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrStorageControl.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrStorageControl.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -65,4 +65,4 @@
   bool should_scavenge() const;
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRSTORAGECONTROL_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
 
 #include "jfr/recorder/storage/jfrBuffer.hpp"
 #include "jfr/recorder/repository/jfrChunkWriter.hpp"
@@ -121,4 +121,4 @@
   size_t processed() const { return _operation.processed(); }
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrStorageUtils.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
 
 #include "jfr/recorder/storage/jfrStorageUtils.hpp"
 
@@ -95,4 +95,4 @@
   return result;
 }
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRSTORAGEUTILS_INLINE_HPP
--- a/src/hotspot/share/jfr/recorder/storage/jfrVirtualMemory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/storage/jfrVirtualMemory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
-#define SHARE_VM_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
+#ifndef SHARE_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
+#define SHARE_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -63,4 +63,4 @@
   bool compact(size_t index);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
+#endif // SHARE_JFR_RECORDER_STORAGE_JFRVIRTUALMEMORY_HPP
--- a/src/hotspot/share/jfr/recorder/stringpool/jfrStringPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/stringpool/jfrStringPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
-#define SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
+#ifndef SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
+#define SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
 
 #include "jni.h"
 #include "jfr/recorder/storage/jfrMemorySpace.hpp"
@@ -80,4 +80,4 @@
   friend class JfrMemorySpace;
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
+#endif // SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOL_HPP
--- a/src/hotspot/share/jfr/recorder/stringpool/jfrStringPoolBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/stringpool/jfrStringPoolBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
-#define SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
+#ifndef SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
+#define SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
 
 #include "jfr/recorder/storage/jfrBuffer.hpp"
 
@@ -43,4 +43,4 @@
   void set_string_top(uint64_t value);
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
+#endif // SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLBUFFER_HPP
--- a/src/hotspot/share/jfr/recorder/stringpool/jfrStringPoolWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/recorder/stringpool/jfrStringPoolWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
-#define SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
+#ifndef SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
+#define SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
 
 #include "memory/allocation.hpp"
 #include "jfr/recorder/stringpool/jfrStringPoolBuffer.hpp"
@@ -55,4 +55,4 @@
   void inc_nof_strings();
 };
 
-#endif // SHARE_VM_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
+#endif // SHARE_JFR_RECORDER_STRINGPOOL_JFRSTRINGPOOLWRITER_HPP
--- a/src/hotspot/share/jfr/support/jfrAllocationTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrAllocationTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
+#define SHARE_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -37,4 +37,4 @@
   ~JfrAllocationTracer();
 };
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
+#endif // SHARE_JFR_SUPPORT_JFRALLOCATIONTRACER_HPP
--- a/src/hotspot/share/jfr/support/jfrEventClass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrEventClass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFREVENTCLASS_HPP
-#define SHARE_VM_JFR_SUPPORT_JFREVENTCLASS_HPP
+#ifndef SHARE_JFR_SUPPORT_JFREVENTCLASS_HPP
+#define SHARE_JFR_SUPPORT_JFREVENTCLASS_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -61,4 +61,4 @@
   static bool is_visible(const jclass jc);
 };
 
-#endif // SHARE_VM_JFR_SUPPORT_JFREVENTCLASS_HPP
+#endif // SHARE_JFR_SUPPORT_JFREVENTCLASS_HPP
--- a/src/hotspot/share/jfr/support/jfrFlush.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrFlush.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRFLUSH_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRFLUSH_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRFLUSH_HPP
+#define SHARE_JFR_SUPPORT_JFRFLUSH_HPP
 
 #include "jfr/recorder/storage/jfrBuffer.hpp"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -74,4 +74,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRFLUSH_HPP
+#endif // SHARE_JFR_SUPPORT_JFRFLUSH_HPP
--- a/src/hotspot/share/jfr/support/jfrIntrinsics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrIntrinsics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRINTRINSICS_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRINTRINSICS_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRINTRINSICS_HPP
+#define SHARE_JFR_SUPPORT_JFRINTRINSICS_HPP
 
 #include "utilities/macros.hpp"
 
@@ -53,4 +53,4 @@
 #define JFR_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias)
 
 #endif // INCLUDE_JFR
-#endif // SHARE_VM_JFR_SUPPORT_JFRINTRINSICS_HPP
+#endif // SHARE_JFR_SUPPORT_JFRINTRINSICS_HPP
--- a/src/hotspot/share/jfr/support/jfrKlassExtension.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrKlassExtension.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
+#define SHARE_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
 
 #include "jfr/instrumentation/jfrEventClassTransformer.hpp"
 #include "jfr/support/jfrTraceIdExtension.hpp"
@@ -39,4 +39,4 @@
 #define IS_EVENT_KLASS(ptr) (((ptr)->trace_id() & (JDK_JFR_EVENT_KLASS | JDK_JFR_EVENT_SUBKLASS)) != 0)
 #define ON_KLASS_CREATION(k, p, t) if (IS_EVENT_KLASS(k)) JfrEventClassTransformer::on_klass_creation(k, p, t)
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
+#endif // SHARE_JFR_SUPPORT_JFRKLASSEXTENSION_HPP
--- a/src/hotspot/share/jfr/support/jfrStackTraceMark.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrStackTraceMark.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
+#define SHARE_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
 
 #include "memory/allocation.hpp"
 #include "jfrfiles/jfrEventIds.hpp"
@@ -44,4 +44,4 @@
   ~JfrStackTraceMark();
 };
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
+#endif // SHARE_JFR_SUPPORT_JFRSTACKTRACEMARK_HPP
--- a/src/hotspot/share/jfr/support/jfrThreadExtension.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrThreadExtension.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
+#define SHARE_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
 
 #include "jfr/periodic/sampling/jfrThreadSampler.hpp"
 #include "jfr/support/jfrThreadLocal.hpp"
@@ -48,4 +48,4 @@
 
 #define SUSPEND_THREAD_CONDITIONAL(thread) if ((thread)->is_trace_suspend()) JfrThreadSampling::on_javathread_suspend(thread)
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
+#endif // SHARE_JFR_SUPPORT_JFRTHREADEXTENSION_HPP
--- a/src/hotspot/share/jfr/support/jfrThreadId.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrThreadId.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRTHREADID_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRTHREADID_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRTHREADID_HPP
+#define SHARE_JFR_SUPPORT_JFRTHREADID_HPP
 
 #include "utilities/macros.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -37,5 +37,4 @@
 #define JFR_THREAD_ID(thread) ((traceid)(thread)->osthread()->thread_id())
 #endif
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRTHREADID_HPP
-
+#endif // SHARE_JFR_SUPPORT_JFRTHREADID_HPP
--- a/src/hotspot/share/jfr/support/jfrThreadLocal.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrThreadLocal.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRTHREADLOCAL_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRTHREADLOCAL_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRTHREADLOCAL_HPP
+#define SHARE_JFR_SUPPORT_JFRTHREADLOCAL_HPP
 
 #include "jfr/recorder/checkpoint/jfrCheckpointBlob.hpp"
 #include "jfr/utilities/jfrTypes.hpp"
@@ -221,4 +221,4 @@
   static ByteSize java_event_writer_offset();
 };
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRTHREADLOCAL_HPP
+#endif // SHARE_JFR_SUPPORT_JFRTHREADLOCAL_HPP
--- a/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
-#define SHARE_VM_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
+#ifndef SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
+#define SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
 
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp"
 
@@ -78,4 +78,4 @@
     return _trace_flags.flags_addr();              \
   }
 
-#endif // SHARE_VM_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
+#endif // SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
--- a/src/hotspot/share/jfr/utilities/jfrAllocation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrAllocation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRALLOCATION_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRALLOCATION_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRALLOCATION_HPP
+#define SHARE_JFR_UTILITIES_JFRALLOCATION_HPP
 
 #include "memory/allocation.hpp"
 #include "services/memTracker.hpp"
@@ -71,4 +71,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRALLOCATION_HPP
+#endif // SHARE_JFR_UTILITIES_JFRALLOCATION_HPP
--- a/src/hotspot/share/jfr/utilities/jfrBigEndian.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrBigEndian.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRBIGENDIAN_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRBIGENDIAN_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRBIGENDIAN_HPP
+#define SHARE_JFR_UTILITIES_JFRBIGENDIAN_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/bytes.hpp"
@@ -133,4 +133,4 @@
   return read_unaligned<T>((const address)location);
 }
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRBIGENDIAN_HPP
+#endif // SHARE_JFR_UTILITIES_JFRBIGENDIAN_HPP
--- a/src/hotspot/share/jfr/utilities/jfrDoublyLinkedList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrDoublyLinkedList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
+#define SHARE_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
 
 #include "memory/allocation.hpp"
 
@@ -215,4 +215,4 @@
   assert(in_list(head_node), "not in list error");
 }
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
+#endif // SHARE_JFR_UTILITIES_JFRDOUBLYLINKEDLIST_HPP
--- a/src/hotspot/share/jfr/utilities/jfrHashtable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrHashtable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRHASHTABLE_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRHASHTABLE_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRHASHTABLE_HPP
+#define SHARE_JFR_UTILITIES_JFRHASHTABLE_HPP
 
 #include "memory/allocation.inline.hpp"
 #include "runtime/orderAccess.hpp"
@@ -280,4 +280,4 @@
   return entry;
 }
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRHASHTABLE_HPP
+#endif // SHARE_JFR_UTILITIES_JFRHASHTABLE_HPP
--- a/src/hotspot/share/jfr/utilities/jfrIterator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrIterator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRLISTITERATOR_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRLISTITERATOR_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRITERATOR_HPP
+#define SHARE_JFR_UTILITIES_JFRITERATOR_HPP
 
 #include "memory/allocation.hpp"
 
@@ -104,4 +104,4 @@
   StopOnNullIterator(List& list, jfr_iter_direction direction = forward) : IteratorHost<List, NavigatorStopOnNull, AP>(list, direction) {}
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRLISTITERATOR_HPP
+#endif // SHARE_JFR_UTILITIES_JFRITERATOR_HPP
--- a/src/hotspot/share/jfr/utilities/jfrJavaLog.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrJavaLog.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRJAVALOG_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRJAVALOG_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRJAVALOG_HPP
+#define SHARE_JFR_UTILITIES_JFRJAVALOG_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/exceptions.hpp"
@@ -45,4 +45,4 @@
   static void log(jint tag_set, jint level, jstring message, TRAPS);
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRJAVALOG_HPP
+#endif // SHARE_JFR_UTILITIES_JFRJAVALOG_HPP
--- a/src/hotspot/share/jfr/utilities/jfrLogTagSets.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrLogTagSets.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRLOGTAGSETS_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRLOGTAGSETS_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRLOGTAGSETS_HPP
+#define SHARE_JFR_UTILITIES_JFRLOGTAGSETS_HPP
 
 #include "logging/logTag.hpp"
 
@@ -59,4 +59,4 @@
   JFR_LOG_TAG(jfr, dcmd)
   /* NEW TAGS, DONT FORGET TO UPDATE JAVA SIDE */
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRLOGTAGSETS_HPP
+#endif // SHARE_JFR_UTILITIES_JFRLOGTAGSETS_HPP
--- a/src/hotspot/share/jfr/utilities/jfrRefCountPointer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrRefCountPointer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
+#define SHARE_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 #include "runtime/atomic.hpp"
@@ -151,4 +151,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
+#endif // SHARE_JFR_UTILITIES_JFRREFCOUNTPOINTER_HPP
--- a/src/hotspot/share/jfr/utilities/jfrResourceManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrResourceManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_RESOURCEMANAGER_HPP
-#define SHARE_VM_JFR_UTILITIES_RESOURCEMANAGER_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRRESOURCEMANAGER_HPP
+#define SHARE_JFR_UTILITIES_JFRRESOURCEMANAGER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -57,4 +57,4 @@
   T* operator->() const { return _resource_array; }
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_RESOURCEMANAGER_HPP
+#endif // SHARE_JFR_UTILITIES_JFRRESOURCEMANAGER_HPP
--- a/src/hotspot/share/jfr/utilities/jfrSpinlockHelper.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrSpinlockHelper.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
+#define SHARE_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
 
 #include "runtime/thread.hpp"
 
@@ -47,4 +47,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
+#endif // SHARE_JFR_UTILITIES_JFRSPINLOCKHELPER_HPP
--- a/src/hotspot/share/jfr/utilities/jfrTime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrTime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRTIME_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRTIME_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRTIME_HPP
+#define SHARE_JFR_UTILITIES_JFRTIME_HPP
 
 #include "utilities/ticks.hpp"
 
@@ -41,4 +41,4 @@
   static const void* time_function();
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRTIME_HPP
+#endif // SHARE_JFR_UTILITIES_JFRTIME_HPP
--- a/src/hotspot/share/jfr/utilities/jfrTimeConverter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrTimeConverter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRTIMECONVERTER_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRTIMECONVERTER_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRTIMECONVERTER_HPP
+#define SHARE_JFR_UTILITIES_JFRTIMECONVERTER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -50,4 +50,4 @@
   static jlong nanos_to_countertime(jlong c, bool as_os_time = false);
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRTIMECONVERTER_HPP
+#endif // SHARE_JFR_UTILITIES_JFRTIMECONVERTER_HPP
--- a/src/hotspot/share/jfr/utilities/jfrTryLock.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrTryLock.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRTRYLOCK_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRTRYLOCK_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRTRYLOCK_HPP
+#define SHARE_JFR_UTILITIES_JFRTRYLOCK_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/orderAccess.hpp"
@@ -71,4 +71,4 @@
 
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRTRYLOCK_HPP
+#endif // SHARE_JFR_UTILITIES_JFRTRYLOCK_HPP
--- a/src/hotspot/share/jfr/utilities/jfrTypes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/utilities/jfrTypes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_UTILITIES_JFRTYPES_HPP
-#define SHARE_VM_JFR_UTILITIES_JFRTYPES_HPP
+#ifndef SHARE_JFR_UTILITIES_JFRTYPES_HPP
+#define SHARE_JFR_UTILITIES_JFRTYPES_HPP
 
 #include "jfrfiles/jfrEventIds.hpp"
 #include "memory/allocation.hpp"
@@ -39,4 +39,4 @@
   TIMED
 };
 
-#endif // SHARE_VM_JFR_UTILITIES_JFRTYPES_HPP
+#endif // SHARE_JFR_UTILITIES_JFRTYPES_HPP
--- a/src/hotspot/share/jfr/writers/jfrBigEndianWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrBigEndianWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
-#define SHARE_VM_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
+#ifndef SHARE_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
+#define SHARE_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
 
 #include "jfr/writers/jfrEncoding.hpp"
 #include "jfr/writers/jfrMemoryWriterHost.inline.hpp"
@@ -39,4 +39,4 @@
   JfrBigEndianWriter(StorageType* storage, size_t size) : BigEndianWriterBase(storage, size + size_safety_cushion) {}
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
+#endif // SHARE_JFR_WRITERS_JFRBIGENDIANWRITER_HPP
--- a/src/hotspot/share/jfr/writers/jfrEncoders.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrEncoders.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRENCODERS_HPP
-#define SHARE_VM_JFR_WRITERS_JFRENCODERS_HPP
+#ifndef SHARE_JFR_WRITERS_JFRENCODERS_HPP
+#define SHARE_JFR_WRITERS_JFRENCODERS_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/bytes.hpp"
@@ -295,4 +295,4 @@
   return size;
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRENCODERS_HPP
+#endif // SHARE_JFR_WRITERS_JFRENCODERS_HPP
--- a/src/hotspot/share/jfr/writers/jfrEncoding.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrEncoding.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRENCODING_HPP
-#define SHARE_VM_JFR_WRITERS_JFRENCODING_HPP
+#ifndef SHARE_JFR_WRITERS_JFRENCODING_HPP
+#define SHARE_JFR_WRITERS_JFRENCODING_HPP
 
 #include "jfr/writers/jfrEncoders.hpp"
 #include "memory/allocation.hpp"
@@ -114,4 +114,4 @@
 typedef EncoderHost<BigEndianEncoderImpl, BigEndianEncoderImpl> BigEndianEncoder;
 typedef EncoderHost<Varint128EncoderImpl, BigEndianEncoderImpl> CompressedIntegerEncoder;
 
-#endif // SHARE_VM_JFR_WRITERS_JFRENCODING_HPP
+#endif // SHARE_JFR_WRITERS_JFRENCODING_HPP
--- a/src/hotspot/share/jfr/writers/jfrEventWriterHost.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrEventWriterHost.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_HPP
-#define SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_HPP
+#ifndef SHARE_JFR_WRITERS_JFREVENTWRITERHOST_HPP
+#define SHARE_JFR_WRITERS_JFREVENTWRITERHOST_HPP
 
 #include "jfr/writers/jfrWriterHost.inline.hpp"
 
@@ -48,4 +48,4 @@
   ~StackEventWriterHost();
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_HPP
+#endif // SHARE_JFR_WRITERS_JFREVENTWRITERHOST_HPP
--- a/src/hotspot/share/jfr/writers/jfrEventWriterHost.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrEventWriterHost.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
 
 #include "jfr/writers/jfrEventWriterHost.hpp"
 
@@ -94,4 +94,4 @@
   this->end_event_write();
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
+#endif // SHARE_JFR_WRITERS_JFREVENTWRITERHOST_INLINE_HPP
--- a/src/hotspot/share/jfr/writers/jfrJavaEventWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrJavaEventWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
-#define SHARE_VM_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
+#ifndef SHARE_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
+#define SHARE_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -46,4 +46,4 @@
   static jboolean flush(jobject writer, jint used, jint requested, JavaThread* jt);
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
+#endif // SHARE_JFR_WRITERS_JFRJAVAEVENTWRITER_HPP
--- a/src/hotspot/share/jfr/writers/jfrMemoryWriterHost.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrMemoryWriterHost.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
-#define SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
+#ifndef SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
+#define SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
 
 #include "jfr/writers/jfrStorageHost.inline.hpp"
 
@@ -69,4 +69,4 @@
   ~AcquireReleaseMemoryWriterHost();
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
+#endif // SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_HPP
--- a/src/hotspot/share/jfr/writers/jfrMemoryWriterHost.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrMemoryWriterHost.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
 
 #include "jfr/writers/jfrMemoryWriterHost.hpp"
 
@@ -96,4 +96,4 @@
   this->release();
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
+#endif // SHARE_JFR_WRITERS_JFRMEMORYWRITERHOST_INLINE_HPP
--- a/src/hotspot/share/jfr/writers/jfrNativeEventWriter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrNativeEventWriter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
-#define SHARE_VM_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
+#ifndef SHARE_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
+#define SHARE_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
 
 #include "jfr/support/jfrFlush.hpp"
 #include "jfr/writers/jfrEncoding.hpp"
@@ -35,4 +35,4 @@
 typedef MemoryWriterHost<JfrNativeEventAdapter, StackObj> JfrNativeEventWriterImpl;
 typedef StackEventWriterHost<BigEndianEncoder, CompressedIntegerEncoder, JfrNativeEventWriterImpl> JfrNativeEventWriter;
 
-#endif // SHARE_VM_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
+#endif // SHARE_JFR_WRITERS_JFRNATIVEEVENTWRITER_HPP
--- a/src/hotspot/share/jfr/writers/jfrPosition.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrPosition.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRPOSITION_HPP
-#define SHARE_VM_JFR_WRITERS_JFRPOSITION_HPP
+#ifndef SHARE_JFR_WRITERS_JFRPOSITION_HPP
+#define SHARE_JFR_WRITERS_JFRPOSITION_HPP
 
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -54,4 +54,4 @@
   void reset();
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRPOSITION_HPP
+#endif // SHARE_JFR_WRITERS_JFRPOSITION_HPP
--- a/src/hotspot/share/jfr/writers/jfrPosition.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrPosition.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRPOSITION_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFRPOSITION_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFRPOSITION_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFRPOSITION_INLINE_HPP
 
 #include "jfr/writers/jfrPosition.hpp"
 
@@ -99,4 +99,4 @@
   set_current_pos(_start_pos);
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRPOSITION_INLINE_HPP
+#endif // SHARE_JFR_WRITERS_JFRPOSITION_INLINE_HPP
--- a/src/hotspot/share/jfr/writers/jfrStorageAdapter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrStorageAdapter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
-#define SHARE_VM_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
+#ifndef SHARE_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
+#define SHARE_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
 
 #include "jfr/utilities/jfrAllocation.hpp"
 
@@ -240,4 +240,4 @@
   }
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
+#endif // SHARE_JFR_WRITERS_JFRSTORAGEADAPTER_HPP
--- a/src/hotspot/share/jfr/writers/jfrStorageHost.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrStorageHost.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_HPP
-#define SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_HPP
+#ifndef SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP
+#define SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP
 
 #include "jfr/writers/jfrPosition.inline.hpp"
 
@@ -55,5 +55,4 @@
   void seek(intptr_t offset);
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_HPP
-
+#endif // SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP
--- a/src/hotspot/share/jfr/writers/jfrStorageHost.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrStorageHost.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
 
 #include "jfr/writers/jfrStorageHost.hpp"
 
@@ -135,4 +135,4 @@
   }
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
+#endif // SHARE_JFR_WRITERS_JFRSTORAGEHOST_INLINE_HPP
--- a/src/hotspot/share/jfr/writers/jfrStreamWriterHost.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrStreamWriterHost.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
-#define SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
+#ifndef SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
+#define SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
 
 #include "jfr/utilities/jfrTypes.hpp"
 #include "jfr/writers/jfrMemoryWriterHost.inline.hpp"
@@ -56,5 +56,4 @@
   void reset(fio_fd fd);
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
-
+#endif // SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_HPP
--- a/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrStreamWriterHost.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
 
 #include "jfr/writers/jfrStreamWriterHost.hpp"
 #include "runtime/os.hpp"
@@ -136,4 +136,4 @@
   this->hard_reset();
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
+#endif // SHARE_JFR_WRITERS_JFRSTREAMWRITERHOST_INLINE_HPP
--- a/src/hotspot/share/jfr/writers/jfrWriterHost.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrWriterHost.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRWRITERHOST_HPP
-#define SHARE_VM_JFR_WRITERS_JFRWRITERHOST_HPP
+#ifndef SHARE_JFR_WRITERS_JFRWRITERHOST_HPP
+#define SHARE_JFR_WRITERS_JFRWRITERHOST_HPP
 
 #include "jni.h"
 #include "utilities/globalDefinitions.hpp"
@@ -99,4 +99,4 @@
   intptr_t reserve(size_t size);
 };
 
-#endif // SHARE_VM_JFR_WRITERS_JFRWRITERHOST_HPP
+#endif // SHARE_JFR_WRITERS_JFRWRITERHOST_HPP
--- a/src/hotspot/share/jfr/writers/jfrWriterHost.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jfr/writers/jfrWriterHost.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
-#define SHARE_VM_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
+#ifndef SHARE_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
+#define SHARE_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp"
@@ -360,5 +360,4 @@
   }
 }
 
-#endif // SHARE_VM_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
-
+#endif // SHARE_JFR_WRITERS_JFRWRITERHOST_INLINE_HPP
--- a/src/hotspot/share/jvmci/compilerRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/compilerRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_RUNTIME_COMPILERRUNTIME_HPP
-#define SHARE_VM_RUNTIME_COMPILERRUNTIME_HPP
+#ifndef SHARE_JVMCI_COMPILERRUNTIME_HPP
+#define SHARE_JVMCI_COMPILERRUNTIME_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/resourceArea.hpp"
@@ -48,4 +48,4 @@
   static void backedge_event(JavaThread *thread, MethodCounters* counters, int branch_bci, int target_bci);
 };
 
-#endif // SHARE_VM_RUNTIME_COMPILERRUNTIME_HPP
+#endif // SHARE_JVMCI_COMPILERRUNTIME_HPP
--- a/src/hotspot/share/jvmci/jvmciCodeInstaller.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCI_CODE_INSTALLER_HPP
-#define SHARE_VM_JVMCI_JVMCI_CODE_INSTALLER_HPP
+#ifndef SHARE_JVMCI_JVMCICODEINSTALLER_HPP
+#define SHARE_JVMCI_JVMCICODEINSTALLER_HPP
 
 #include "jvmci/jvmciCompiler.hpp"
 #include "jvmci/jvmciEnv.hpp"
@@ -279,4 +279,4 @@
 
 
 
-#endif // SHARE_VM_JVMCI_JVMCI_CODE_INSTALLER_HPP
+#endif // SHARE_JVMCI_JVMCICODEINSTALLER_HPP
--- a/src/hotspot/share/jvmci/jvmciCompiler.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciCompiler.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -122,6 +122,7 @@
   if (_bootstrapping && is_osr) {
       // no OSR compilations during bootstrap - the compiler is just too slow at this point,
       // and we know that there are no endless loops
+      env->set_failure(true, "No OSR during boostrap");
       return;
   }
 
@@ -160,17 +161,21 @@
       CLEAR_PENDING_EXCEPTION;
     }
 
-    env->set_failure("exception throw", false);
+    env->set_failure(false, "unexpected exception thrown");
   } else {
     oop result_object = (oop) result.get_jobject();
     if (result_object != NULL) {
       oop failure_message = HotSpotCompilationRequestResult::failureMessage(result_object);
       if (failure_message != NULL) {
+        // Copy failure reason into resource memory first ...
         const char* failure_reason = java_lang_String::as_utf8_string(failure_message);
-        env->set_failure(failure_reason, HotSpotCompilationRequestResult::retry(result_object) != 0);
+        // ... and then into the C heap.
+        failure_reason = os::strdup(failure_reason, mtCompiler);
+        bool retryable = HotSpotCompilationRequestResult::retry(result_object) != 0;
+        env->set_failure(retryable, failure_reason, true);
       } else {
         if (env->task()->code() == NULL) {
-          env->set_failure("no nmethod produced", true);
+          env->set_failure(true, "no nmethod produced");
         } else {
           env->task()->set_num_inlined_bytecodes(HotSpotCompilationRequestResult::inlinedBytecodes(result_object));
           Atomic::inc(&_methods_compiled);
--- a/src/hotspot/share/jvmci/jvmciCompiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciCompiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
-#define SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
+#ifndef SHARE_JVMCI_JVMCICOMPILER_HPP
+#define SHARE_JVMCI_JVMCICOMPILER_HPP
 
 #include "compiler/abstractCompiler.hpp"
 #include "jvmci/jvmciEnv.hpp"
@@ -107,4 +107,4 @@
   static elapsedTimer* codeInstallTimer() { return &_codeInstallTimer; }
 };
 
-#endif // SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
+#endif // SHARE_JVMCI_JVMCICOMPILER_HPP
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -602,6 +602,17 @@
       return NULL;
   }
 
+  if (method->name() == vmSymbols::clone_name() &&
+      resolved == SystemDictionary::Object_klass() &&
+      recv_klass->is_array_klass()) {
+    // Resolution of the clone method on arrays always returns Object.clone even though that method
+    // has protected access.  There's some trickery in the access checking to make this all work out
+    // so it's necessary to pass in the array class as the resolved class to properly trigger this.
+    // Otherwise it's impossible to resolve the array clone methods through JVMCI.  See
+    // LinkResolver::check_method_accessability for the matching logic.
+    resolved = recv_klass;
+  }
+
   LinkInfo link_info(resolved, h_name, h_signature, caller_klass);
   methodHandle m;
   // Only do exact lookup if receiver klass has been linked.  Otherwise,
--- a/src/hotspot/share/jvmci/jvmciCompilerToVM.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCI_COMPILER_TO_VM_HPP
-#define SHARE_VM_JVMCI_JVMCI_COMPILER_TO_VM_HPP
+#ifndef SHARE_JVMCI_JVMCICOMPILERTOVM_HPP
+#define SHARE_JVMCI_JVMCICOMPILERTOVM_HPP
 
 #include "jni.h"
 #include "runtime/javaCalls.hpp"
@@ -242,4 +242,4 @@
     static void pop_jni_handle_block();
 };
 
-#endif // SHARE_VM_JVMCI_JVMCI_COMPILER_TO_VM_HPP
+#endif // SHARE_JVMCI_JVMCICOMPILERTOVM_HPP
--- a/src/hotspot/share/jvmci/jvmciEnv.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciEnv.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -57,8 +57,9 @@
 JVMCIEnv::JVMCIEnv(CompileTask* task, int system_dictionary_modification_counter):
   _task(task),
   _system_dictionary_modification_counter(system_dictionary_modification_counter),
+  _retryable(true),
   _failure_reason(NULL),
-  _retryable(true)
+  _failure_reason_on_C_heap(false)
 {
   // Get Jvmti capabilities under lock to get consistent values.
   MutexLocker mu(JvmtiThreadState_lock);
--- a/src/hotspot/share/jvmci/jvmciEnv.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciEnv.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCIENV_HPP
-#define SHARE_VM_JVMCI_JVMCIENV_HPP
+#ifndef SHARE_JVMCI_JVMCIENV_HPP
+#define SHARE_JVMCI_JVMCIENV_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "code/debugInfoRec.hpp"
@@ -99,8 +99,11 @@
   int              _system_dictionary_modification_counter;
 
   // Compilation result values
+  bool             _retryable;
   const char*      _failure_reason;
-  bool             _retryable;
+
+  // Specifies if _failure_reason is on the C heap.
+  bool             _failure_reason_on_C_heap;
 
   // Cache JVMTI state
   bool  _jvmti_can_hotswap_or_post_breakpoint;
@@ -145,10 +148,12 @@
   CompileTask* task() { return _task; }
 
   const char* failure_reason() { return _failure_reason; }
+  bool failure_reason_on_C_heap() { return _failure_reason_on_C_heap; }
   bool retryable() { return _retryable; }
 
-  void set_failure(const char* reason, bool retryable) {
+  void set_failure(bool retryable, const char* reason, bool reason_on_C_heap = false) {
     _failure_reason = reason;
+    _failure_reason_on_C_heap = reason_on_C_heap;
     _retryable = retryable;
   }
 
@@ -181,4 +186,4 @@
   static InstanceKlass* get_instance_klass_for_declared_method_holder(Klass* klass);
 };
 
-#endif // SHARE_VM_JVMCI_JVMCIENV_HPP
+#endif // SHARE_JVMCI_JVMCIENV_HPP
--- a/src/hotspot/share/jvmci/jvmciJavaClasses.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciJavaClasses.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCIJAVACLASSES_HPP
-#define SHARE_VM_JVMCI_JVMCIJAVACLASSES_HPP
+#ifndef SHARE_JVMCI_JVMCIJAVACLASSES_HPP
+#define SHARE_JVMCI_JVMCIJAVACLASSES_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "oops/access.hpp"
@@ -381,4 +381,4 @@
 
 void compute_offset(int &dest_offset, Klass* klass, const char* name, const char* signature, bool static_field, TRAPS);
 
-#endif // SHARE_VM_JVMCI_JVMCIJAVACLASSES_HPP
+#endif // SHARE_JVMCI_JVMCIJAVACLASSES_HPP
--- a/src/hotspot/share/jvmci/jvmciRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmciRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP
-#define SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP
+#ifndef SHARE_JVMCI_JVMCIRUNTIME_HPP
+#define SHARE_JVMCI_JVMCIRUNTIME_HPP
 
 #include "interpreter/interpreter.hpp"
 #include "memory/allocation.hpp"
@@ -200,4 +200,4 @@
 #define TRACE_jvmci_4 if (!(JVMCITraceLevel >= 4 && (tty->print("         JVMCITrace-4: "), true))) ; else tty->print_cr
 #define TRACE_jvmci_5 if (!(JVMCITraceLevel >= 5 && (tty->print("            JVMCITrace-5: "), true))) ; else tty->print_cr
 
-#endif // SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP
+#endif // SHARE_JVMCI_JVMCIRUNTIME_HPP
--- a/src/hotspot/share/jvmci/jvmci_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/jvmci_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JVMCI_JVMCIGLOBALS_HPP
-#define SHARE_VM_JVMCI_JVMCIGLOBALS_HPP
+#ifndef SHARE_JVMCI_JVMCI_GLOBALS_HPP
+#define SHARE_JVMCI_JVMCI_GLOBALS_HPP
 
 #include "runtime/globals.hpp"
 
@@ -140,4 +140,4 @@
   // Check and exit VM with error if selected GC is not supported by JVMCI.
   static void check_jvmci_supported_gc();
 };
-#endif // SHARE_VM_JVMCI_JVMCIGLOBALS_HPP
+#endif // SHARE_JVMCI_JVMCI_GLOBALS_HPP
--- a/src/hotspot/share/jvmci/systemDictionary_jvmci.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/systemDictionary_jvmci.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
-#define SHARE_VM_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
+#ifndef SHARE_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
+#define SHARE_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
 
 #if !INCLUDE_JVMCI
 #define JVMCI_WK_KLASSES_DO(do_klass)
@@ -91,4 +91,4 @@
   do_klass(Value_klass,                                  jdk_vm_ci_meta_Value                             )
 #endif
 
-#endif // SHARE_VM_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
+#endif // SHARE_JVMCI_SYSTEMDICTIONARY_JVMCI_HPP
--- a/src/hotspot/share/jvmci/vmStructs_compiler_runtime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/vmStructs_compiler_runtime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_VMSTRUCTS_COMPILER_RUNTIME_HPP
-#define SHARE_VM_JVMCI_VMSTRUCTS_COMPILER_RUNTIME_HPP
+#ifndef SHARE_JVMCI_VMSTRUCTS_COMPILER_RUNTIME_HPP
+#define SHARE_JVMCI_VMSTRUCTS_COMPILER_RUNTIME_HPP
 
 #if INCLUDE_AOT
 #include "jvmci/compilerRuntime.hpp"
@@ -42,4 +42,4 @@
 
 #endif // INCLUDE_AOT
 
-#endif // SHARE_VM_AOT_VMSTRUCTS_COMPILER_RUNTIME_HPP
+#endif // SHARE_JVMCI_VMSTRUCTS_COMPILER_RUNTIME_HPP
--- a/src/hotspot/share/jvmci/vmStructs_jvmci.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/vmStructs_jvmci.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_JVMCI_VMSTRUCTS_JVMCI_HPP
-#define SHARE_VM_JVMCI_VMSTRUCTS_JVMCI_HPP
+#ifndef SHARE_JVMCI_VMSTRUCTS_JVMCI_HPP
+#define SHARE_JVMCI_VMSTRUCTS_JVMCI_HPP
 
 #include "runtime/vmStructs.hpp"
 
@@ -63,4 +63,4 @@
   static int localHotSpotVMAddresses_count();
 };
 
-#endif // SHARE_VM_JVMCI_VMSTRUCTS_JVMCI_HPP
+#endif // SHARE_JVMCI_VMSTRUCTS_JVMCI_HPP
--- a/src/hotspot/share/jvmci/vmSymbols_jvmci.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/jvmci/vmSymbols_jvmci.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_JVMCI_VMSYMBOLS_JVMCI_HPP
-#define SHARE_VM_JVMCI_VMSYMBOLS_JVMCI_HPP
+#ifndef SHARE_JVMCI_VMSYMBOLS_JVMCI_HPP
+#define SHARE_JVMCI_VMSYMBOLS_JVMCI_HPP
 
 
 #if !INCLUDE_JVMCI
@@ -104,4 +104,4 @@
   template(klass_fromMetaspace_signature,                         "(Ljava/lang/Class;)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;")
 #endif
 
-#endif // SHARE_VM_JVMCI_VMSYMBOLS_JVMCI_HPP
+#endif // SHARE_JVMCI_VMSYMBOLS_JVMCI_HPP
--- a/src/hotspot/share/libadt/dict.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/libadt/dict.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LIBADT_DICT_HPP
-#define SHARE_VM_LIBADT_DICT_HPP
+#ifndef SHARE_LIBADT_DICT_HPP
+#define SHARE_LIBADT_DICT_HPP
 
 // Dictionaries - An Abstract Data Type
 
@@ -118,4 +118,4 @@
   int test(void) { return _i<_d->_size;} // Test for end of iteration
 };
 
-#endif // SHARE_VM_LIBADT_DICT_HPP
+#endif // SHARE_LIBADT_DICT_HPP
--- a/src/hotspot/share/libadt/set.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/libadt/set.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LIBADT_SET_HPP
-#define SHARE_VM_LIBADT_SET_HPP
+#ifndef SHARE_LIBADT_SET_HPP
+#define SHARE_LIBADT_SET_HPP
 
 #include "memory/allocation.hpp"
 
@@ -244,4 +244,4 @@
   int test(void) { return impl->test(); }
 };
 
-#endif // SHARE_VM_LIBADT_SET_HPP
+#endif // SHARE_LIBADT_SET_HPP
--- a/src/hotspot/share/libadt/vectset.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/libadt/vectset.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LIBADT_VECTSET_HPP
-#define SHARE_VM_LIBADT_VECTSET_HPP
+#ifndef SHARE_LIBADT_VECTSET_HPP
+#define SHARE_LIBADT_VECTSET_HPP
 
 #include "libadt/set.hpp"
 
@@ -184,4 +184,4 @@
   int test(void) { return i < s->size; }
 };
 
-#endif // SHARE_VM_LIBADT_VECTSET_HPP
+#endif // SHARE_LIBADT_VECTSET_HPP
--- a/src/hotspot/share/logging/log.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/log.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOG_HPP
-#define SHARE_VM_LOGGING_LOG_HPP
+#ifndef SHARE_LOGGING_LOG_HPP
+#define SHARE_LOGGING_LOG_HPP
 
 #include "logging/logLevel.hpp"
 #include "logging/logPrefix.hpp"
@@ -198,4 +198,4 @@
 
 };
 
-#endif // SHARE_VM_LOGGING_LOG_HPP
+#endif // SHARE_LOGGING_LOG_HPP
--- a/src/hotspot/share/logging/logConfiguration.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logConfiguration.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGCONFIGURATION_HPP
-#define SHARE_VM_LOGGING_LOGCONFIGURATION_HPP
+#ifndef SHARE_LOGGING_LOGCONFIGURATION_HPP
+#define SHARE_LOGGING_LOGCONFIGURATION_HPP
 
 #include "logging/logLevel.hpp"
 #include "memory/allocation.hpp"
@@ -125,4 +125,4 @@
   static void rotate_all_outputs();
 };
 
-#endif // SHARE_VM_LOGGING_LOGCONFIGURATION_HPP
+#endif // SHARE_LOGGING_LOGCONFIGURATION_HPP
--- a/src/hotspot/share/logging/logDecorations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logDecorations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGDECORATIONS_HPP
-#define SHARE_VM_LOGGING_LOGDECORATIONS_HPP
+#ifndef SHARE_LOGGING_LOGDECORATIONS_HPP
+#define SHARE_LOGGING_LOGDECORATIONS_HPP
 
 #include "logging/logDecorators.hpp"
 #include "logging/logTagSet.hpp"
@@ -64,4 +64,4 @@
   }
 };
 
-#endif // SHARE_VM_LOGGING_LOGDECORATIONS_HPP
+#endif // SHARE_LOGGING_LOGDECORATIONS_HPP
--- a/src/hotspot/share/logging/logDecorators.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logDecorators.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGDECORATORS_HPP
-#define SHARE_VM_LOGGING_LOGDECORATORS_HPP
+#ifndef SHARE_LOGGING_LOGDECORATORS_HPP
+#define SHARE_LOGGING_LOGDECORATORS_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -115,4 +115,4 @@
   bool parse(const char* decorator_args, outputStream* errstream = NULL);
 };
 
-#endif // SHARE_VM_LOGGING_LOGDECORATORS_HPP
+#endif // SHARE_LOGGING_LOGDECORATORS_HPP
--- a/src/hotspot/share/logging/logDiagnosticCommand.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logDiagnosticCommand.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
-#define SHARE_VM_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
+#ifndef SHARE_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
+#define SHARE_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
 
 #include "services/diagnosticCommand.hpp"
 
@@ -66,4 +66,4 @@
   }
 };
 
-#endif // SHARE_VM_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
+#endif // SHARE_LOGGING_LOGDIAGNOSTICCOMMAND_HPP
--- a/src/hotspot/share/logging/logFileOutput.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logFileOutput.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -45,7 +45,7 @@
 LogFileOutput::LogFileOutput(const char* name)
     : LogFileStreamOutput(NULL), _name(os::strdup_check_oom(name, mtLogging)),
       _file_name(NULL), _archive_name(NULL), _current_file(0),
-      _file_count(DefaultFileCount), _archive_name_len(0),
+      _file_count(DefaultFileCount), _is_default_file_count(true), _archive_name_len(0),
       _rotate_size(DefaultFileSize), _current_size(0), _rotation_semaphore(1) {
   assert(strstr(name, Prefix) == name, "invalid output name '%s': missing prefix: %s", name, Prefix);
   _file_name = make_file_name(name + strlen(Prefix), _pid_str, _vm_start_time_str);
@@ -101,6 +101,15 @@
   return (st.st_mode & S_IFMT) == S_IFREG;
 }
 
+static bool is_fifo_file(const char* filename) {
+  struct stat st;
+  int ret = os::stat(filename, &st);
+  if (ret != 0) {
+    return false;
+  }
+  return S_ISFIFO(st.st_mode);
+}
+
 // Try to find the next number that should be used for file rotation.
 // Return UINT_MAX on error.
 static uint next_file_number(const char* filename,
@@ -187,6 +196,7 @@
         break;
       }
       _file_count = static_cast<uint>(value);
+      _is_default_file_count = false;
     } else if (strcmp(FileSizeOptionKey, key) == 0) {
       julong value;
       success = Arguments::atojulong(value_str, &value);
@@ -214,6 +224,11 @@
     return false;
   }
 
+  bool file_exist = file_exists(_file_name);
+  if (file_exist && _is_default_file_count && is_fifo_file(_file_name)) {
+    _file_count = 0; // Prevent file rotation for fifo's such as named pipes.
+  }
+
   if (_file_count > 0) {
     // compute digits with filecount - 1 since numbers will start from 0
     _file_count_max_digits = number_of_digits(_file_count - 1);
@@ -225,7 +240,7 @@
                      ", filesize: " SIZE_FORMAT " KiB).",
                      _file_name, _file_count, _rotate_size / K);
 
-  if (_file_count > 0 && file_exists(_file_name)) {
+  if (_file_count > 0 && file_exist) {
     if (!is_regular_file(_file_name)) {
       errstream->print_cr("Unable to log to file %s with log file rotation: "
                           "%s is not a regular file",
--- a/src/hotspot/share/logging/logFileOutput.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logFileOutput.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGFILEOUTPUT_HPP
-#define SHARE_VM_LOGGING_LOGFILEOUTPUT_HPP
+#ifndef SHARE_LOGGING_LOGFILEOUTPUT_HPP
+#define SHARE_LOGGING_LOGFILEOUTPUT_HPP
 
 #include "logging/logFileStreamOutput.hpp"
 #include "runtime/semaphore.hpp"
@@ -54,6 +54,7 @@
   uint  _current_file;
   uint  _file_count;
   uint  _file_count_max_digits;
+  bool  _is_default_file_count;
 
   size_t  _archive_name_len;
   size_t  _rotate_size;
@@ -95,4 +96,4 @@
   static void set_file_name_parameters(jlong start_time);
 };
 
-#endif // SHARE_VM_LOGGING_LOGFILEOUTPUT_HPP
+#endif // SHARE_LOGGING_LOGFILEOUTPUT_HPP
--- a/src/hotspot/share/logging/logFileStreamOutput.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logFileStreamOutput.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGFILESTREAMOUTPUT_HPP
-#define SHARE_VM_LOGGING_LOGFILESTREAMOUTPUT_HPP
+#ifndef SHARE_LOGGING_LOGFILESTREAMOUTPUT_HPP
+#define SHARE_LOGGING_LOGFILESTREAMOUTPUT_HPP
 
 #include "logging/logDecorators.hpp"
 #include "logging/logOutput.hpp"
@@ -90,4 +90,4 @@
 extern LogStderrOutput &StderrLog;
 extern LogStdoutOutput &StdoutLog;
 
-#endif // SHARE_VM_LOGGING_LOGFILESTREAMOUTPUT_HPP
+#endif // SHARE_LOGGING_LOGFILESTREAMOUTPUT_HPP
--- a/src/hotspot/share/logging/logHandle.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logHandle.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGHANDLE_HPP
-#define SHARE_VM_LOGGING_LOGHANDLE_HPP
+#ifndef SHARE_LOGGING_LOGHANDLE_HPP
+#define SHARE_LOGGING_LOGHANDLE_HPP
 
 #include "logging/log.hpp"
 
@@ -101,4 +101,4 @@
 
 };
 
-#endif // SHARE_VM_LOGGING_LOGHANDLE_HPP
+#endif // SHARE_LOGGING_LOGHANDLE_HPP
--- a/src/hotspot/share/logging/logLevel.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logLevel.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGLEVEL_HPP
-#define SHARE_VM_LOGGING_LOGLEVEL_HPP
+#ifndef SHARE_LOGGING_LOGLEVEL_HPP
+#define SHARE_LOGGING_LOGLEVEL_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -79,4 +79,4 @@
 
 typedef LogLevel::type LogLevelType;
 
-#endif // SHARE_VM_LOGGING_LOGLEVEL_HPP
+#endif // SHARE_LOGGING_LOGLEVEL_HPP
--- a/src/hotspot/share/logging/logMessage.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logMessage.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGMESSAGE_HPP
-#define SHARE_VM_LOGGING_LOGMESSAGE_HPP
+#ifndef SHARE_LOGGING_LOGMESSAGE_HPP
+#define SHARE_LOGGING_LOGMESSAGE_HPP
 
 #include "logging/log.hpp"
 #include "logging/logMessageBuffer.hpp"
@@ -102,4 +102,4 @@
 #undef LOG_LEVEL
 };
 
-#endif // SHARE_VM_LOGGING_LOGMESSAGE_HPP
+#endif // SHARE_LOGGING_LOGMESSAGE_HPP
--- a/src/hotspot/share/logging/logMessageBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logMessageBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGMESSAGEBUFFER_HPP
-#define SHARE_VM_LOGGING_LOGMESSAGEBUFFER_HPP
+#ifndef SHARE_LOGGING_LOGMESSAGEBUFFER_HPP
+#define SHARE_LOGGING_LOGMESSAGEBUFFER_HPP
 
 #include "logging/logDecorations.hpp"
 #include "logging/logLevel.hpp"
@@ -128,4 +128,4 @@
 #undef LOG_LEVEL
 };
 
-#endif // SHARE_VM_LOGGING_LOGMESSAGEBUFFER_HPP
+#endif // SHARE_LOGGING_LOGMESSAGEBUFFER_HPP
--- a/src/hotspot/share/logging/logOutput.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logOutput.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGOUTPUT_HPP
-#define SHARE_VM_LOGGING_LOGOUTPUT_HPP
+#ifndef SHARE_LOGGING_LOGOUTPUT_HPP
+#define SHARE_LOGGING_LOGOUTPUT_HPP
 
 #include "logging/logDecorators.hpp"
 #include "logging/logLevel.hpp"
@@ -101,4 +101,4 @@
   virtual int write(LogMessageBuffer::Iterator msg_iterator) = 0;
 };
 
-#endif // SHARE_VM_LOGGING_LOGOUTPUT_HPP
+#endif // SHARE_LOGGING_LOGOUTPUT_HPP
--- a/src/hotspot/share/logging/logOutputList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logOutputList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGOUTPUTLIST_HPP
-#define SHARE_VM_LOGGING_LOGOUTPUTLIST_HPP
+#ifndef SHARE_LOGGING_LOGOUTPUTLIST_HPP
+#define SHARE_LOGGING_LOGOUTPUTLIST_HPP
 
 #include "logging/logLevel.hpp"
 #include "memory/allocation.hpp"
@@ -128,4 +128,4 @@
   }
 };
 
-#endif // SHARE_VM_LOGGING_LOGOUTPUTLIST_HPP
+#endif // SHARE_LOGGING_LOGOUTPUTLIST_HPP
--- a/src/hotspot/share/logging/logPrefix.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logPrefix.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGPREFIX_HPP
-#define SHARE_VM_LOGGING_LOGPREFIX_HPP
+#ifndef SHARE_LOGGING_LOGPREFIX_HPP
+#define SHARE_LOGGING_LOGPREFIX_HPP
 
 #include "gc/shared/gcId.hpp"
 #include "logging/logTag.hpp"
@@ -117,4 +117,4 @@
 LOG_PREFIX_LIST
 #undef LOG_PREFIX
 
-#endif // SHARE_VM_LOGGING_LOGPREFIX_HPP
+#endif // SHARE_LOGGING_LOGPREFIX_HPP
--- a/src/hotspot/share/logging/logSelection.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logSelection.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGSELECTION_HPP
-#define SHARE_VM_LOGGING_LOGSELECTION_HPP
+#ifndef SHARE_LOGGING_LOGSELECTION_HPP
+#define SHARE_LOGGING_LOGSELECTION_HPP
 
 #include "logging/logLevel.hpp"
 #include "logging/logTag.hpp"
@@ -71,4 +71,4 @@
   double similarity(const LogSelection& other) const;
 };
 
-#endif // SHARE_VM_LOGGING_LOGSELECTION_HPP
+#endif // SHARE_LOGGING_LOGSELECTION_HPP
--- a/src/hotspot/share/logging/logSelectionList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logSelectionList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGSELECTIONLIST_HPP
-#define SHARE_VM_LOGGING_LOGSELECTIONLIST_HPP
+#ifndef SHARE_LOGGING_LOGSELECTIONLIST_HPP
+#define SHARE_LOGGING_LOGSELECTIONLIST_HPP
 
 #include "logging/logConfiguration.hpp"
 #include "logging/logSelection.hpp"
@@ -62,4 +62,4 @@
   bool verify_selections(outputStream* out = NULL) const;
 };
 
-#endif // SHARE_VM_LOGGING_LOGSELECTIONLIST_HPP
+#endif // SHARE_LOGGING_LOGSELECTIONLIST_HPP
--- a/src/hotspot/share/logging/logStream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logStream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_LOGGING_LOGSTREAM_HPP
-#define SHARE_VM_LOGGING_LOGSTREAM_HPP
+#ifndef SHARE_LOGGING_LOGSTREAM_HPP
+#define SHARE_LOGGING_LOGSTREAM_HPP
 
 #include "logging/log.hpp"
 #include "logging/logHandle.hpp"
@@ -105,4 +105,4 @@
   LogStreamTemplate() : LogStream((LogTargetImpl<level, T0, T1, T2, T3, T4, GuardTag>*)NULL) {}
 };
 
-#endif // SHARE_VM_LOGGING_LOGSTREAM_HPP
+#endif // SHARE_LOGGING_LOGSTREAM_HPP
--- a/src/hotspot/share/logging/logTag.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logTag.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGTAG_HPP
-#define SHARE_VM_LOGGING_LOGTAG_HPP
+#ifndef SHARE_LOGGING_LOGTAG_HPP
+#define SHARE_LOGGING_LOGTAG_HPP
 
 #include "logging/logTag_ext.hpp"
 #include "memory/allocation.hpp"
@@ -133,6 +133,7 @@
   LOG_TAG(reloc) \
   LOG_TAG(remset) \
   LOG_TAG(parser) \
+  LOG_TAG(ptrqueue) \
   LOG_TAG(purge) \
   LOG_TAG(resolve) \
   LOG_TAG(safepoint) \
@@ -220,4 +221,4 @@
 
 typedef LogTag::type LogTagType;
 
-#endif // SHARE_VM_LOGGING_LOGTAG_HPP
+#endif // SHARE_LOGGING_LOGTAG_HPP
--- a/src/hotspot/share/logging/logTagSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logTagSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGTAGSET_HPP
-#define SHARE_VM_LOGGING_LOGTAGSET_HPP
+#ifndef SHARE_LOGGING_LOGTAGSET_HPP
+#define SHARE_LOGGING_LOGTAGSET_HPP
 
 #include "logging/logDecorators.hpp"
 #include "logging/logLevel.hpp"
@@ -156,4 +156,4 @@
 template <LogTagType T0, LogTagType T1, LogTagType T2, LogTagType T3, LogTagType T4, LogTagType GuardTag>
 LogTagSet LogTagSetMapping<T0, T1, T2, T3, T4, GuardTag>::_tagset(&LogPrefix<T0, T1, T2, T3, T4>::prefix, T0, T1, T2, T3, T4);
 
-#endif // SHARE_VM_LOGGING_LOGTAGSET_HPP
+#endif // SHARE_LOGGING_LOGTAGSET_HPP
--- a/src/hotspot/share/logging/logTagSetDescriptions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logTagSetDescriptions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
-#define SHARE_VM_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
+#ifndef SHARE_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
+#define SHARE_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
 
 class LogTagSet;
 
@@ -33,4 +33,4 @@
 
 extern struct LogTagSetDescription tagset_descriptions[];
 
-#endif // SHARE_VM_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
+#endif // SHARE_LOGGING_LOGTAGSETDESCRIPTIONS_HPP
--- a/src/hotspot/share/logging/logTag_ext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/logging/logTag_ext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -21,9 +21,9 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_LOGGING_LOGTAG_EXT_HPP
-#define SHARE_VM_LOGGING_LOGTAG_EXT_HPP
+#ifndef SHARE_LOGGING_LOGTAG_EXT_HPP
+#define SHARE_LOGGING_LOGTAG_EXT_HPP
 
 #define LOG_TAG_LIST_EXT
 
-#endif // SHARE_VM_LOGGING_LOGTAG_EXT_HPP
+#endif // SHARE_LOGGING_LOGTAG_EXT_HPP
--- a/src/hotspot/share/memory/allocation.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/allocation.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_ALLOCATION_HPP
-#define SHARE_VM_MEMORY_ALLOCATION_HPP
+#ifndef SHARE_MEMORY_ALLOCATION_HPP
+#define SHARE_MEMORY_ALLOCATION_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -570,4 +570,4 @@
   static void free(E* addr);
 };
 
-#endif // SHARE_VM_MEMORY_ALLOCATION_HPP
+#endif // SHARE_MEMORY_ALLOCATION_HPP
--- a/src/hotspot/share/memory/allocation.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/allocation.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_ALLOCATION_INLINE_HPP
-#define SHARE_VM_MEMORY_ALLOCATION_INLINE_HPP
+#ifndef SHARE_MEMORY_ALLOCATION_INLINE_HPP
+#define SHARE_MEMORY_ALLOCATION_INLINE_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/os.hpp"
@@ -171,4 +171,4 @@
   }
 }
 
-#endif // SHARE_VM_MEMORY_ALLOCATION_INLINE_HPP
+#endif // SHARE_MEMORY_ALLOCATION_INLINE_HPP
--- a/src/hotspot/share/memory/arena.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/arena.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_ARENA_HPP
-#define SHARE_VM_ARENA_HPP
+#ifndef SHARE_MEMORY_ARENA_HPP
+#define SHARE_MEMORY_ARENA_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/globals.hpp"
@@ -256,4 +256,4 @@
 #define NEW_ARENA_OBJ(arena, type) \
   NEW_ARENA_ARRAY(arena, type, 1)
 
-#endif // SHARE_VM_ARENA_HPP
+#endif // SHARE_MEMORY_ARENA_HPP
--- a/src/hotspot/share/memory/binaryTreeDictionary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/binaryTreeDictionary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_BINARYTREEDICTIONARY_HPP
-#define SHARE_VM_MEMORY_BINARYTREEDICTIONARY_HPP
+#ifndef SHARE_MEMORY_BINARYTREEDICTIONARY_HPP
+#define SHARE_MEMORY_BINARYTREEDICTIONARY_HPP
 
 #include "memory/freeList.hpp"
 #include "memory/memRegion.hpp"
@@ -392,4 +392,4 @@
   }
 };
 
-#endif // SHARE_VM_MEMORY_BINARYTREEDICTIONARY_HPP
+#endif // SHARE_MEMORY_BINARYTREEDICTIONARY_HPP
--- a/src/hotspot/share/memory/binaryTreeDictionary.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/binaryTreeDictionary.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
-#define SHARE_VM_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
+#ifndef SHARE_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
+#define SHARE_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
 
 #include "gc/shared/spaceDecorator.hpp"
 #include "logging/log.hpp"
@@ -1035,4 +1035,4 @@
   return total_size();
 }
 
-#endif // SHARE_VM_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
+#endif // SHARE_MEMORY_BINARYTREEDICTIONARY_INLINE_HPP
--- a/src/hotspot/share/memory/filemap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/filemap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_FILEMAP_HPP
-#define SHARE_VM_MEMORY_FILEMAP_HPP
+#ifndef SHARE_MEMORY_FILEMAP_HPP
+#define SHARE_MEMORY_FILEMAP_HPP
 
 #include "classfile/classLoader.hpp"
 #include "include/cds.h"
@@ -350,4 +350,4 @@
   address decode_start_address(CDSFileMapRegion* spc, bool with_current_oop_encoding_mode);
 };
 
-#endif // SHARE_VM_MEMORY_FILEMAP_HPP
+#endif // SHARE_MEMORY_FILEMAP_HPP
--- a/src/hotspot/share/memory/freeList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/freeList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_FREELIST_HPP
-#define SHARE_VM_MEMORY_FREELIST_HPP
+#ifndef SHARE_MEMORY_FREELIST_HPP
+#define SHARE_MEMORY_FREELIST_HPP
 
 // A class for maintaining a free list of Chunk's.  The FreeList
 // maintains a the structure of the list (head, tail, etc.) plus
@@ -173,4 +173,4 @@
   void print_on(outputStream* st, const char* c = NULL) const;
 };
 
-#endif // SHARE_VM_MEMORY_FREELIST_HPP
+#endif // SHARE_MEMORY_FREELIST_HPP
--- a/src/hotspot/share/memory/guardedMemory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/guardedMemory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_GUARDEDMEMORY_HPP
-#define SHARE_VM_MEMORY_GUARDEDMEMORY_HPP
+#ifndef SHARE_MEMORY_GUARDEDMEMORY_HPP
+#define SHARE_MEMORY_GUARDEDMEMORY_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -320,4 +320,4 @@
 
 }; // GuardedMemory
 
-#endif // SHARE_VM_MEMORY_GUARDEDMEMORY_HPP
+#endif // SHARE_MEMORY_GUARDEDMEMORY_HPP
--- a/src/hotspot/share/memory/heap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/heap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_HEAP_HPP
-#define SHARE_VM_MEMORY_HEAP_HPP
+#ifndef SHARE_MEMORY_HEAP_HPP
+#define SHARE_MEMORY_HEAP_HPP
 
 #include "code/codeBlob.hpp"
 #include "memory/allocation.hpp"
@@ -223,4 +223,4 @@
   void print()  PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_MEMORY_HEAP_HPP
+#endif // SHARE_MEMORY_HEAP_HPP
--- a/src/hotspot/share/memory/heapInspection.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/heapInspection.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_HEAPINSPECTION_HPP
-#define SHARE_VM_MEMORY_HEAPINSPECTION_HPP
+#ifndef SHARE_MEMORY_HEAPINSPECTION_HPP
+#define SHARE_MEMORY_HEAPINSPECTION_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/objArrayOop.hpp"
@@ -365,4 +365,4 @@
   void iterate_over_heap(KlassInfoTable* cit, BoolObjectClosure* filter = NULL);
 };
 
-#endif // SHARE_VM_MEMORY_HEAPINSPECTION_HPP
+#endif // SHARE_MEMORY_HEAPINSPECTION_HPP
--- a/src/hotspot/share/memory/heapShared.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/heapShared.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_HEAPSHARED_HPP
-#define SHARE_VM_MEMORY_HEAPSHARED_HPP
+#ifndef SHARE_MEMORY_HEAPSHARED_HPP
+#define SHARE_MEMORY_HEAPSHARED_HPP
 
 #include "classfile/compactHashtable.hpp"
 #include "classfile/systemDictionary.hpp"
@@ -342,4 +342,4 @@
   static void write_subgraph_info_table() NOT_CDS_JAVA_HEAP_RETURN;
   static void serialize_subgraph_info_table_header(SerializeClosure* soc) NOT_CDS_JAVA_HEAP_RETURN;
 };
-#endif // SHARE_VM_MEMORY_HEAPSHARED_HPP
+#endif // SHARE_MEMORY_HEAPSHARED_HPP
--- a/src/hotspot/share/memory/heapShared.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/heapShared.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_HEAPSHARED_INLINE_HPP
-#define SHARE_VM_MEMORY_HEAPSHARED_INLINE_HPP
+#ifndef SHARE_MEMORY_HEAPSHARED_INLINE_HPP
+#define SHARE_MEMORY_HEAPSHARED_INLINE_HPP
 
 #include "oops/compressedOops.inline.hpp"
 #include "memory/heapShared.hpp"
@@ -46,4 +46,4 @@
 
 #endif
 
-#endif // SHARE_VM_MEMORY_HEAPSHARED_INLINE_HPP
+#endif // SHARE_MEMORY_HEAPSHARED_INLINE_HPP
--- a/src/hotspot/share/memory/iterator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/iterator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_ITERATOR_HPP
-#define SHARE_VM_MEMORY_ITERATOR_HPP
+#ifndef SHARE_MEMORY_ITERATOR_HPP
+#define SHARE_MEMORY_ITERATOR_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
@@ -362,4 +362,4 @@
   template <typename OopClosureType> static void oop_oop_iterate_backwards(OopClosureType* cl, oop obj, Klass* klass);
 };
 
-#endif // SHARE_VM_MEMORY_ITERATOR_HPP
+#endif // SHARE_MEMORY_ITERATOR_HPP
--- a/src/hotspot/share/memory/iterator.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/iterator.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_ITERATOR_INLINE_HPP
-#define SHARE_VM_MEMORY_ITERATOR_INLINE_HPP
+#ifndef SHARE_MEMORY_ITERATOR_INLINE_HPP
+#define SHARE_MEMORY_ITERATOR_INLINE_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "memory/iterator.hpp"
@@ -420,4 +420,4 @@
   OopOopIterateBackwardsDispatch<OopClosureType>::function(klass)(cl, obj, klass);
 }
 
-#endif // SHARE_VM_MEMORY_ITERATOR_INLINE_HPP
+#endif // SHARE_MEMORY_ITERATOR_INLINE_HPP
--- a/src/hotspot/share/memory/memRegion.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/memRegion.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_MEMREGION_HPP
-#define SHARE_VM_MEMORY_MEMREGION_HPP
+#ifndef SHARE_MEMORY_MEMREGION_HPP
+#define SHARE_MEMORY_MEMREGION_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -124,4 +124,4 @@
   void  operator delete(void* p) {} // nothing to do
 };
 
-#endif // SHARE_VM_MEMORY_MEMREGION_HPP
+#endif // SHARE_MEMORY_MEMREGION_HPP
--- a/src/hotspot/share/memory/metadataFactory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metadataFactory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METADATAFACTORY_HPP
-#define SHARE_VM_MEMORY_METADATAFACTORY_HPP
+#ifndef SHARE_MEMORY_METADATAFACTORY_HPP
+#define SHARE_MEMORY_METADATAFACTORY_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "oops/array.hpp"
@@ -73,4 +73,4 @@
   }
 };
 
-#endif // SHARE_VM_MEMORY_METADATAFACTORY_HPP
+#endif // SHARE_MEMORY_METADATAFACTORY_HPP
--- a/src/hotspot/share/memory/metaspace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_MEMORY_METASPACE_HPP
-#define SHARE_VM_MEMORY_METASPACE_HPP
+#ifndef SHARE_MEMORY_METASPACE_HPP
+#define SHARE_MEMORY_METASPACE_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
@@ -484,4 +484,4 @@
   static void compute_new_size();
 };
 
-#endif // SHARE_VM_MEMORY_METASPACE_HPP
+#endif // SHARE_MEMORY_METASPACE_HPP
--- a/src/hotspot/share/memory/metaspace/blockFreelist.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/blockFreelist.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -89,5 +89,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_BLOCKFREELIST_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_BLOCKFREELIST_HPP
--- a/src/hotspot/share/memory/metaspace/chunkManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/chunkManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -220,5 +220,4 @@
 } // namespace metaspace
 
 
-#endif /* SHARE_MEMORY_METASPACE_CHUNKMANAGER_HPP_ */
-
+#endif // SHARE_MEMORY_METASPACE_CHUNKMANAGER_HPP
--- a/src/hotspot/share/memory/metaspace/metaDebug.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metaDebug.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -43,5 +43,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METADEBUG_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_METADEBUG_HPP
--- a/src/hotspot/share/memory/metaspace/metabase.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metabase.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -78,5 +78,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METABASE_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_METABASE_HPP
--- a/src/hotspot/share/memory/metaspace/metablock.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metablock.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -47,5 +47,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METABLOCK_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_METABLOCK_HPP
--- a/src/hotspot/share/memory/metaspace/metachunk.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metachunk.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,8 +21,8 @@
  * questions.
  *
  */
-#ifndef SHARE_VM_MEMORY_METACHUNK_HPP
-#define SHARE_VM_MEMORY_METACHUNK_HPP
+#ifndef SHARE_MEMORY_METASPACE_METACHUNK_HPP
+#define SHARE_MEMORY_METASPACE_METACHUNK_HPP
 
 #include "memory/metaspace/metabase.hpp"
 #include "memory/metaspace/metaspaceCommon.hpp"
@@ -170,4 +170,4 @@
 
 } // namespace metaspace
 
-#endif  // SHARE_VM_MEMORY_METACHUNK_HPP
+#endif // SHARE_MEMORY_METASPACE_METACHUNK_HPP
--- a/src/hotspot/share/memory/metaspace/metaspaceCommon.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metaspaceCommon.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -123,5 +123,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METASPACESTATISTICS_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_METASPACECOMMON_HPP
--- a/src/hotspot/share/memory/metaspace/metaspaceDCmd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metaspaceDCmd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018, SAP and/or its affiliates.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -63,4 +63,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METASPACESTATISTICS_HPP */
+#endif // SHARE_MEMORY_METASPACE_METASPACEDCMD_HPP
--- a/src/hotspot/share/memory/metaspace/metaspaceStatistics.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/metaspaceStatistics.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -184,5 +184,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_METASPACESTATISTICS_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_METASPACESTATISTICS_HPP
--- a/src/hotspot/share/memory/metaspace/occupancyMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/occupancyMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -239,5 +239,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_OCCUPANCYMAP_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_OCCUPANCYMAP_HPP
--- a/src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -60,5 +60,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_PRINTCLDMETASPACEINFOCLOSURE_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_PRINTCLDMETASPACEINFOCLOSURE_HPP
--- a/src/hotspot/share/memory/metaspace/printMetaspaceInfoKlassClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/printMetaspaceInfoKlassClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018, SAP and/or its affiliates.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP_
-#define SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP_
+#ifndef SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP
+#define SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP
 
 #include "memory/iterator.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -55,4 +55,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP_ */
+#endif // SHARE_MEMORY_METASPACE_PRINTMETASPACEINFOKLASSCLOSURE_HPP
--- a/src/hotspot/share/memory/metaspace/smallBlocks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/smallBlocks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -85,5 +85,4 @@
 } // namespace metaspace
 
 
-#endif /* SHARE_MEMORY_METASPACE_SMALLBLOCKS_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_SMALLBLOCKS_HPP
--- a/src/hotspot/share/memory/metaspace/spaceManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/spaceManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -230,5 +230,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_SPACEMANAGER_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_SPACEMANAGER_HPP
--- a/src/hotspot/share/memory/metaspace/virtualSpaceList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/virtualSpaceList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -148,5 +148,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_VIRTUALSPACELIST_HPP */
-
+#endif // SHARE_MEMORY_METASPACE_VIRTUALSPACELIST_HPP
--- a/src/hotspot/share/memory/metaspace/virtualSpaceNode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspace/virtualSpaceNode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -162,4 +162,4 @@
 
 } // namespace metaspace
 
-#endif /* SHARE_MEMORY_METASPACE_VIRTUALSPACENODE_HPP */
+#endif // SHARE_MEMORY_METASPACE_VIRTUALSPACENODE_HPP
--- a/src/hotspot/share/memory/metaspaceChunkFreeListSummary.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceChunkFreeListSummary.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
-#define SHARE_VM_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
+#ifndef SHARE_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
+#define SHARE_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
 
 
 class MetaspaceChunkFreeListSummary {
@@ -100,4 +100,4 @@
   }
 };
 
-#endif // SHARE_VM_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
+#endif // SHARE_MEMORY_METASPACECHUNKFREELISTSUMMARY_HPP
--- a/src/hotspot/share/memory/metaspaceClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACE_ITERATOR_HPP
-#define SHARE_VM_MEMORY_METASPACE_ITERATOR_HPP
+#ifndef SHARE_MEMORY_METASPACECLOSURE_HPP
+#define SHARE_MEMORY_METASPACECLOSURE_HPP
 
 #include "logging/log.hpp"
 #include "memory/allocation.hpp"
@@ -273,4 +273,4 @@
   KVHashtable<address, bool, mtInternal> _has_been_visited;
 };
 
-#endif // SHARE_VM_MEMORY_METASPACE_ITERATOR_HPP
+#endif // SHARE_MEMORY_METASPACECLOSURE_HPP
--- a/src/hotspot/share/memory/metaspaceCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACECOUNTERS_HPP
-#define SHARE_VM_MEMORY_METASPACECOUNTERS_HPP
+#ifndef SHARE_MEMORY_METASPACECOUNTERS_HPP
+#define SHARE_MEMORY_METASPACECOUNTERS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -51,4 +51,4 @@
   static void update_performance_counters();
 };
 
-#endif // SHARE_VM_MEMORY_METASPACECOUNTERS_HPP
+#endif // SHARE_MEMORY_METASPACECOUNTERS_HPP
--- a/src/hotspot/share/memory/metaspaceGCThresholdUpdater.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceGCThresholdUpdater.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
-#define SHARE_VM_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
+#ifndef SHARE_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
+#define SHARE_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -49,4 +49,4 @@
   }
 };
 
-#endif // SHARE_VM_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
+#endif // SHARE_MEMORY_METASPACEGCTHRESHOLDUPDATER_HPP
--- a/src/hotspot/share/memory/metaspaceShared.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceShared.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -1659,7 +1659,6 @@
     ResourceMark rm;
     char class_list_path_str[JVM_MAXPATHLEN];
     // Preload classes to be shared.
-    // Should use some os:: method rather than fopen() here. aB.
     const char* class_list_path;
     if (SharedClassListFile == NULL) {
       // Construct the path to the class list (in jre/lib)
--- a/src/hotspot/share/memory/metaspaceShared.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceShared.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACESHARED_HPP
-#define SHARE_VM_MEMORY_METASPACESHARED_HPP
+#ifndef SHARE_MEMORY_METASPACESHARED_HPP
+#define SHARE_MEMORY_METASPACESHARED_HPP
 
 #include "classfile/compactHashtable.hpp"
 #include "memory/allocation.hpp"
@@ -203,4 +203,4 @@
 private:
   static void read_extra_data(const char* filename, TRAPS) NOT_CDS_RETURN;
 };
-#endif // SHARE_VM_MEMORY_METASPACESHARED_HPP
+#endif // SHARE_MEMORY_METASPACESHARED_HPP
--- a/src/hotspot/share/memory/metaspaceShared.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceShared.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
-#define SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
+#ifndef SHARE_MEMORY_METASPACESHARED_INLINE_HPP
+#define SHARE_MEMORY_METASPACESHARED_INLINE_HPP
 
 #include "memory/metaspaceShared.hpp"
 #if INCLUDE_G1GC
@@ -36,4 +36,4 @@
 }
 #endif
 
-#endif // SHARE_VM_MEMORY_METASPACESHARED_INLINE_HPP
+#endif // SHARE_MEMORY_METASPACESHARED_INLINE_HPP
--- a/src/hotspot/share/memory/metaspaceTracer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/metaspaceTracer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_METASPACETRACER_HPP
-#define SHARE_VM_MEMORY_METASPACETRACER_HPP
+#ifndef SHARE_MEMORY_METASPACETRACER_HPP
+#define SHARE_MEMORY_METASPACETRACER_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/metaspace.hpp"
@@ -52,4 +52,4 @@
 
 };
 
-#endif // SHARE_VM_MEMORY_METASPACETRACER_HPP
+#endif // SHARE_MEMORY_METASPACETRACER_HPP
--- a/src/hotspot/share/memory/oopFactory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/oopFactory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_OOPFACTORY_HPP
-#define SHARE_VM_MEMORY_OOPFACTORY_HPP
+#ifndef SHARE_MEMORY_OOPFACTORY_HPP
+#define SHARE_MEMORY_OOPFACTORY_HPP
 
 #include "classfile/symbolTable.hpp"
 #include "classfile/systemDictionary.hpp"
@@ -72,4 +72,4 @@
   static typeArrayHandle new_byteArray_handle(int length, TRAPS);
 };
 
-#endif // SHARE_VM_MEMORY_OOPFACTORY_HPP
+#endif // SHARE_MEMORY_OOPFACTORY_HPP
--- a/src/hotspot/share/memory/padded.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/padded.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,9 +22,10 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_PADDED_HPP
-#define SHARE_VM_MEMORY_PADDED_HPP
+#ifndef SHARE_MEMORY_PADDED_HPP
+#define SHARE_MEMORY_PADDED_HPP
 
+#include "memory/allocation.hpp"
 #include "utilities/align.hpp"
 #include "utilities/globalDefinitions.hpp"
 
@@ -117,4 +118,4 @@
   static T* create_unfreeable(size_t length);
 };
 
-#endif // SHARE_VM_MEMORY_PADDED_HPP
+#endif // SHARE_MEMORY_PADDED_HPP
--- a/src/hotspot/share/memory/padded.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/padded.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_PADDED_INLINE_HPP
-#define SHARE_VM_MEMORY_PADDED_INLINE_HPP
+#ifndef SHARE_MEMORY_PADDED_INLINE_HPP
+#define SHARE_MEMORY_PADDED_INLINE_HPP
 
 #include "memory/allocation.inline.hpp"
 #include "memory/padded.hpp"
@@ -90,4 +90,4 @@
   return (T*)align_up(chunk, alignment);
 }
 
-#endif // SHARE_VM_MEMORY_PADDED_INLINE_HPP
+#endif // SHARE_MEMORY_PADDED_INLINE_HPP
--- a/src/hotspot/share/memory/referenceType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/referenceType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_REFERENCETYPE_HPP
-#define SHARE_VM_MEMORY_REFERENCETYPE_HPP
+#ifndef SHARE_MEMORY_REFERENCETYPE_HPP
+#define SHARE_MEMORY_REFERENCETYPE_HPP
 
 #include "utilities/debug.hpp"
 
@@ -38,4 +38,4 @@
   REF_PHANTOM    // Subclass of java/lang/ref/PhantomReference
 };
 
-#endif // SHARE_VM_MEMORY_REFERENCETYPE_HPP
+#endif // SHARE_MEMORY_REFERENCETYPE_HPP
--- a/src/hotspot/share/memory/resourceArea.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/resourceArea.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_RESOURCEAREA_HPP
-#define SHARE_VM_MEMORY_RESOURCEAREA_HPP
+#ifndef SHARE_MEMORY_RESOURCEAREA_HPP
+#define SHARE_MEMORY_RESOURCEAREA_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/thread.hpp"
@@ -261,4 +261,4 @@
   size_t size_in_bytes() { return _size_in_bytes; };
 };
 
-#endif // SHARE_VM_MEMORY_RESOURCEAREA_HPP
+#endif // SHARE_MEMORY_RESOURCEAREA_HPP
--- a/src/hotspot/share/memory/resourceArea.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/resourceArea.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_RESOURCEAREA_INLINE_HPP
-#define SHARE_VM_MEMORY_RESOURCEAREA_INLINE_HPP
+#ifndef SHARE_MEMORY_RESOURCEAREA_INLINE_HPP
+#define SHARE_MEMORY_RESOURCEAREA_INLINE_HPP
 
 #include "memory/resourceArea.hpp"
 
@@ -40,4 +40,4 @@
   return (char*)Amalloc(size, alloc_failmode);
 }
 
-#endif // SHARE_VM_MEMORY_RESOURCEAREA_INLINE_HPP
+#endif // SHARE_MEMORY_RESOURCEAREA_INLINE_HPP
--- a/src/hotspot/share/memory/universe.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/universe.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_MEMORY_UNIVERSE_HPP
-#define SHARE_VM_MEMORY_UNIVERSE_HPP
+#ifndef SHARE_MEMORY_UNIVERSE_HPP
+#define SHARE_MEMORY_UNIVERSE_HPP
 
 #include "oops/array.hpp"
 #include "runtime/handles.hpp"
@@ -538,4 +538,4 @@
     oop    get_oop()  { return _oop; }
 };
 
-#endif // SHARE_VM_MEMORY_UNIVERSE_HPP
+#endif // SHARE_MEMORY_UNIVERSE_HPP
--- a/src/hotspot/share/memory/virtualspace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/memory/virtualspace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VIRTUALSPACE_HPP
-#define SHARE_VM_RUNTIME_VIRTUALSPACE_HPP
+#ifndef SHARE_MEMORY_VIRTUALSPACE_HPP
+#define SHARE_MEMORY_VIRTUALSPACE_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -236,4 +236,4 @@
   void print();
 };
 
-#endif // SHARE_VM_RUNTIME_VIRTUALSPACE_HPP
+#endif // SHARE_MEMORY_VIRTUALSPACE_HPP
--- a/src/hotspot/share/metaprogramming/conditional.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/conditional.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_CONDITIONAL_HPP
-#define SHARE_VM_METAPROGRAMMING_CONDITIONAL_HPP
+#ifndef SHARE_METAPROGRAMMING_CONDITIONAL_HPP
+#define SHARE_METAPROGRAMMING_CONDITIONAL_HPP
 
 #include "memory/allocation.hpp"
 
@@ -40,4 +40,4 @@
   typedef FalseType type;
 };
 
-#endif // SHARE_VM_METAPROGRAMMING_CONDITIONAL_HPP
+#endif // SHARE_METAPROGRAMMING_CONDITIONAL_HPP
--- a/src/hotspot/share/metaprogramming/decay.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/decay.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_DECAY_HPP
-#define SHARE_VM_METAPROGRAMMING_DECAY_HPP
+#ifndef SHARE_METAPROGRAMMING_DECAY_HPP
+#define SHARE_METAPROGRAMMING_DECAY_HPP
 
 #include "memory/allocation.hpp"
 #include "metaprogramming/removeCV.hpp"
@@ -38,4 +38,4 @@
   typedef typename RemoveCV<typename RemoveReference<T>::type>::type type;
 };
 
-#endif // SHARE_VM_METAPROGRAMMING_DECAY_HPP
+#endif // SHARE_METAPROGRAMMING_DECAY_HPP
--- a/src/hotspot/share/metaprogramming/enableIf.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/enableIf.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ENABLEIF_HPP
-#define SHARE_VM_METAPROGRAMMING_ENABLEIF_HPP
+#ifndef SHARE_METAPROGRAMMING_ENABLEIF_HPP
+#define SHARE_METAPROGRAMMING_ENABLEIF_HPP
 
 #include "memory/allocation.hpp"
 
@@ -44,4 +44,4 @@
   typedef T type;
 };
 
-#endif // SHARE_VM_METAPROGRAMMING_ENABLEIF_HPP
+#endif // SHARE_METAPROGRAMMING_ENABLEIF_HPP
--- a/src/hotspot/share/metaprogramming/integralConstant.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/integralConstant.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_INTEGRALCONSTANT_HPP
-#define SHARE_VM_METAPROGRAMMING_INTEGRALCONSTANT_HPP
+#ifndef SHARE_METAPROGRAMMING_INTEGRALCONSTANT_HPP
+#define SHARE_METAPROGRAMMING_INTEGRALCONSTANT_HPP
 
 
 // An Integral Constant is a class providing a compile-time value of an
@@ -56,4 +56,4 @@
 // A bool valued IntegralConstant whose value is false.
 typedef IntegralConstant<bool, false> FalseType;
 
-#endif // SHARE_VM_METAPROGRAMMING_INTEGRALCONSTANT_HPP
+#endif // SHARE_METAPROGRAMMING_INTEGRALCONSTANT_HPP
--- a/src/hotspot/share/metaprogramming/isConst.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isConst.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISCONST_HPP
-#define SHARE_VM_METAPROGRAMMING_ISCONST_HPP
+#ifndef SHARE_METAPROGRAMMING_ISCONST_HPP
+#define SHARE_METAPROGRAMMING_ISCONST_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
 template <typename T> struct IsConst: public FalseType {};
 template <typename T> struct IsConst<const T>: public TrueType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISCONST_HPP
+#endif // SHARE_METAPROGRAMMING_ISCONST_HPP
--- a/src/hotspot/share/metaprogramming/isFloatingPoint.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isFloatingPoint.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISFLOATINGPOINT_HPP
-#define SHARE_VM_METAPROGRAMMING_ISFLOATINGPOINT_HPP
+#ifndef SHARE_METAPROGRAMMING_ISFLOATINGPOINT_HPP
+#define SHARE_METAPROGRAMMING_ISFLOATINGPOINT_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
@@ -47,4 +47,4 @@
 template <> struct IsFloatingPoint<volatile long double>: public TrueType {};
 template <> struct IsFloatingPoint<const volatile long double>: public TrueType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISFLOATINGPOINT_HPP
+#endif // SHARE_METAPROGRAMMING_ISFLOATINGPOINT_HPP
--- a/src/hotspot/share/metaprogramming/isIntegral.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isIntegral.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISINTEGRAL_HPP
-#define SHARE_VM_METAPROGRAMMING_ISINTEGRAL_HPP
+#ifndef SHARE_METAPROGRAMMING_ISINTEGRAL_HPP
+#define SHARE_METAPROGRAMMING_ISINTEGRAL_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 #include "metaprogramming/isSigned.hpp"
@@ -55,4 +55,4 @@
   : public IntegralConstant<bool, IsIntegral<T>::value && !IsSigned<T>::value>
 {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISINTEGRAL_HPP
+#endif // SHARE_METAPROGRAMMING_ISINTEGRAL_HPP
--- a/src/hotspot/share/metaprogramming/isPointer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isPointer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISPOINTER_HPP
-#define SHARE_VM_METAPROGRAMMING_ISPOINTER_HPP
+#ifndef SHARE_METAPROGRAMMING_ISPOINTER_HPP
+#define SHARE_METAPROGRAMMING_ISPOINTER_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
@@ -37,4 +37,4 @@
 template <typename T> class IsPointer<T* volatile>: public TrueType {};
 template <typename T> class IsPointer<T* const volatile>: public TrueType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISPOINTER_HPP
+#endif // SHARE_METAPROGRAMMING_ISPOINTER_HPP
--- a/src/hotspot/share/metaprogramming/isRegisteredEnum.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isRegisteredEnum.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISREGISTEREDENUM_HPP
-#define SHARE_VM_METAPROGRAMMING_ISREGISTEREDENUM_HPP
+#ifndef SHARE_METAPROGRAMMING_ISREGISTEREDENUM_HPP
+#define SHARE_METAPROGRAMMING_ISREGISTEREDENUM_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
@@ -37,5 +37,4 @@
 template<typename T>
 struct IsRegisteredEnum : public FalseType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISREGISTEREDENUM_HPP
-
+#endif // SHARE_METAPROGRAMMING_ISREGISTEREDENUM_HPP
--- a/src/hotspot/share/metaprogramming/isSame.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isSame.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISSAME_HPP
-#define SHARE_VM_METAPROGRAMMING_ISSAME_HPP
+#ifndef SHARE_METAPROGRAMMING_ISSAME_HPP
+#define SHARE_METAPROGRAMMING_ISSAME_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
@@ -35,4 +35,4 @@
 template <typename X>
 struct IsSame<X, X>: public TrueType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISSAME_HPP
+#endif // SHARE_METAPROGRAMMING_ISSAME_HPP
--- a/src/hotspot/share/metaprogramming/isSigned.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isSigned.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISSIGNED_HPP
-#define SHARE_VM_METAPROGRAMMING_ISSIGNED_HPP
+#ifndef SHARE_METAPROGRAMMING_ISSIGNED_HPP
+#define SHARE_METAPROGRAMMING_ISSIGNED_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 #include "metaprogramming/removeCV.hpp"
@@ -34,4 +34,4 @@
   : public IntegralConstant<bool, std::numeric_limits<typename RemoveCV<T>::type>::is_signed>
 {};
 
-#endif //  SHARE_VM_METAPROGRAMMING_ISSIGNED_HPP
+#endif // SHARE_METAPROGRAMMING_ISSIGNED_HPP
--- a/src/hotspot/share/metaprogramming/isVolatile.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/isVolatile.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_ISVOLATILE_HPP
-#define SHARE_VM_METAPROGRAMMING_ISVOLATILE_HPP
+#ifndef SHARE_METAPROGRAMMING_ISVOLATILE_HPP
+#define SHARE_METAPROGRAMMING_ISVOLATILE_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 
 template <typename T> struct IsVolatile: public FalseType {};
 template <typename T> struct IsVolatile<volatile T>: public TrueType {};
 
-#endif // SHARE_VM_METAPROGRAMMING_ISVOLATILE_HPP
+#endif // SHARE_METAPROGRAMMING_ISVOLATILE_HPP
--- a/src/hotspot/share/metaprogramming/primitiveConversions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/primitiveConversions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
-#define SHARE_VM_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
+#ifndef SHARE_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
+#define SHARE_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
 
 #include "memory/allocation.hpp"
 #include "metaprogramming/enableIf.hpp"
@@ -182,4 +182,4 @@
   static Value recover(Decayed x) { return PrimitiveConversions::cast<Value>(x); }
 };
 
-#endif // SHARE_VM_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
+#endif // SHARE_METAPROGRAMMING_PRIMITIVECONVERSIONS_HPP
--- a/src/hotspot/share/metaprogramming/removeCV.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/removeCV.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_REMOVECV_HPP
-#define SHARE_VM_METAPROGRAMMING_REMOVECV_HPP
+#ifndef SHARE_METAPROGRAMMING_REMOVECV_HPP
+#define SHARE_METAPROGRAMMING_REMOVECV_HPP
 
 #include "memory/allocation.hpp"
 
@@ -47,4 +47,4 @@
   typedef T type;
 };
 
-#endif // SHARE_VM_METAPROGRAMMING_REMOVECV_HPP
+#endif // SHARE_METAPROGRAMMING_REMOVECV_HPP
--- a/src/hotspot/share/metaprogramming/removePointer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/removePointer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
-#define SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
+#ifndef SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP
+#define SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -38,4 +38,4 @@
 template <typename T> struct RemovePointer<T* volatile>: AllStatic { typedef T type; };
 template <typename T> struct RemovePointer<T* const volatile>: AllStatic { typedef T type; };
 
-#endif // SHARE_VM_METAPROGRAMMING_REMOVEPOINTER_HPP
+#endif // SHARE_METAPROGRAMMING_REMOVEPOINTER_HPP
--- a/src/hotspot/share/metaprogramming/removeReference.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/metaprogramming/removeReference.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_METAPROGRAMMING_REMOVEREFERENCE_HPP
-#define SHARE_VM_METAPROGRAMMING_REMOVEREFERENCE_HPP
+#ifndef SHARE_METAPROGRAMMING_REMOVEREFERENCE_HPP
+#define SHARE_METAPROGRAMMING_REMOVEREFERENCE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -35,4 +35,4 @@
 
 template <typename T> struct RemoveReference<T&>: AllStatic { typedef T type; };
 
-#endif // SHARE_VM_METAPROGRAMMING_REMOVEREFERENCE_HPP
+#endif // SHARE_METAPROGRAMMING_REMOVEREFERENCE_HPP
--- a/src/hotspot/share/oops/accessBackend.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/accessBackend.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_ACCESSBACKEND_INLINE_HPP
-#define SHARE_VM_RUNTIME_ACCESSBACKEND_INLINE_HPP
+#ifndef SHARE_OOPS_ACCESSBACKEND_INLINE_HPP
+#define SHARE_OOPS_ACCESSBACKEND_INLINE_HPP
 
 #include "oops/access.hpp"
 #include "oops/accessBackend.hpp"
@@ -363,4 +363,4 @@
   dst->init_mark_raw();
 }
 
-#endif // SHARE_VM_RUNTIME_ACCESSBACKEND_INLINE_HPP
+#endif // SHARE_OOPS_ACCESSBACKEND_INLINE_HPP
--- a/src/hotspot/share/oops/annotations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/annotations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ANNOTATIONS_HPP
-#define SHARE_VM_OOPS_ANNOTATIONS_HPP
+#ifndef SHARE_OOPS_ANNOTATIONS_HPP
+#define SHARE_OOPS_ANNOTATIONS_HPP
 
 #include "oops/array.hpp"
 #include "oops/metadata.hpp"
@@ -106,4 +106,4 @@
 #endif
   void print_value_on(outputStream* st) const;
 };
-#endif // SHARE_VM_OOPS_ANNOTATIONS_HPP
+#endif // SHARE_OOPS_ANNOTATIONS_HPP
--- a/src/hotspot/share/oops/array.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/array.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ARRAY_HPP
-#define SHARE_VM_OOPS_ARRAY_HPP
+#ifndef SHARE_OOPS_ARRAY_HPP
+#define SHARE_OOPS_ARRAY_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/metaspace.hpp"
@@ -156,4 +156,4 @@
 };
 
 
-#endif // SHARE_VM_OOPS_ARRAY_HPP
+#endif // SHARE_OOPS_ARRAY_HPP
--- a/src/hotspot/share/oops/array.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/array.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ARRAY_INLINE_HPP
-#define SHARE_VM_OOPS_ARRAY_INLINE_HPP
+#ifndef SHARE_OOPS_ARRAY_INLINE_HPP
+#define SHARE_OOPS_ARRAY_INLINE_HPP
 
 #include "oops/array.hpp"
 #include "runtime/orderAccess.hpp"
@@ -34,4 +34,4 @@
 template <typename T>
 inline void Array<T>::release_at_put(int which, T contents) { OrderAccess::release_store(adr_at(which), contents); }
 
-#endif // SHARE_VM_OOPS_ARRAY_INLINE_HPP
+#endif // SHARE_OOPS_ARRAY_INLINE_HPP
--- a/src/hotspot/share/oops/arrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/arrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ARRAYKLASS_HPP
-#define SHARE_VM_OOPS_ARRAYKLASS_HPP
+#ifndef SHARE_OOPS_ARRAYKLASS_HPP
+#define SHARE_OOPS_ARRAYKLASS_HPP
 
 #include "memory/universe.hpp"
 #include "oops/klass.hpp"
@@ -144,4 +144,4 @@
   void oop_verify_on(oop obj, outputStream* st);
 };
 
-#endif // SHARE_VM_OOPS_ARRAYKLASS_HPP
+#endif // SHARE_OOPS_ARRAYKLASS_HPP
--- a/src/hotspot/share/oops/arrayKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/arrayKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ARRAYKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_ARRAYKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_ARRAYKLASS_INLINE_HPP
+#define SHARE_OOPS_ARRAYKLASS_INLINE_HPP
 
 #include "runtime/orderAccess.hpp"
 #include "oops/arrayKlass.hpp"
@@ -36,4 +36,4 @@
   OrderAccess::release_store(&_higher_dimension, k);
 }
 
-#endif // SHARE_VM_OOPS_ARRAYKLASS_INLINE_HPP
+#endif // SHARE_OOPS_ARRAYKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/arrayOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/arrayOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_ARRAYOOP_HPP
-#define SHARE_VM_OOPS_ARRAYOOP_HPP
+#ifndef SHARE_OOPS_ARRAYOOP_HPP
+#define SHARE_OOPS_ARRAYOOP_HPP
 
 #include "memory/universe.hpp"
 #include "oops/oop.hpp"
@@ -150,4 +150,4 @@
 
 };
 
-#endif // SHARE_VM_OOPS_ARRAYOOP_HPP
+#endif // SHARE_OOPS_ARRAYOOP_HPP
--- a/src/hotspot/share/oops/compiledICHolder.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/compiledICHolder.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP
-#define SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP
+#ifndef SHARE_OOPS_COMPILEDICHOLDER_HPP
+#define SHARE_OOPS_COMPILEDICHOLDER_HPP
 
 #include "oops/oop.hpp"
 #include "utilities/macros.hpp"
@@ -97,4 +97,4 @@
   void claim() NOT_DEBUG_RETURN;
 };
 
-#endif // SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP
+#endif // SHARE_OOPS_COMPILEDICHOLDER_HPP
--- a/src/hotspot/share/oops/constMethod.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/constMethod.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_CONSTMETHODOOP_HPP
-#define SHARE_VM_OOPS_CONSTMETHODOOP_HPP
+#ifndef SHARE_OOPS_CONSTMETHOD_HPP
+#define SHARE_OOPS_CONSTMETHOD_HPP
 
 #include "oops/oop.hpp"
 #include "utilities/align.hpp"
@@ -561,4 +561,4 @@
   void verify_on(outputStream* st);
 };
 
-#endif // SHARE_VM_OOPS_CONSTMETHODOOP_HPP
+#endif // SHARE_OOPS_CONSTMETHOD_HPP
--- a/src/hotspot/share/oops/constantPool.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/constantPool.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -504,10 +504,6 @@
     }
   }
 
-  // Make this class loader depend upon the class loader owning the class reference
-  ClassLoaderData* this_key = this_cp->pool_holder()->class_loader_data();
-  this_key->record_dependency(k);
-
   // logging for class+resolve.
   if (log_is_enabled(Debug, class, resolve)){
     trace_class_resolution(this_cp, k);
--- a/src/hotspot/share/oops/constantPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/constantPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
-#define SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
+#ifndef SHARE_OOPS_CONSTANTPOOL_HPP
+#define SHARE_OOPS_CONSTANTPOOL_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/arrayOop.hpp"
@@ -1024,4 +1024,4 @@
   ~SymbolHashMap();
 }; // End SymbolHashMap class
 
-#endif // SHARE_VM_OOPS_CONSTANTPOOLOOP_HPP
+#endif // SHARE_OOPS_CONSTANTPOOL_HPP
--- a/src/hotspot/share/oops/constantPool.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/constantPool.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_CONSTANTPOOL_INLINE_HPP
-#define SHARE_VM_OOPS_CONSTANTPOOL_INLINE_HPP
+#ifndef SHARE_OOPS_CONSTANTPOOL_INLINE_HPP
+#define SHARE_OOPS_CONSTANTPOOL_INLINE_HPP
 
 #include "oops/constantPool.hpp"
 #include "oops/cpCache.inline.hpp"
@@ -67,4 +67,4 @@
   return s;
 }
 
-#endif // SHARE_VM_OOPS_CONSTANTPOOL_INLINE_HPP
+#endif // SHARE_OOPS_CONSTANTPOOL_INLINE_HPP
--- a/src/hotspot/share/oops/cpCache.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/cpCache.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -253,11 +253,21 @@
   if (byte_no == 1) {
     assert(invoke_code != Bytecodes::_invokevirtual &&
            invoke_code != Bytecodes::_invokeinterface, "");
+    bool do_resolve = true;
     // Don't mark invokespecial to method as resolved if sender is an interface.  The receiver
     // has to be checked that it is a subclass of the current class every time this bytecode
     // is executed.
-    if (invoke_code != Bytecodes::_invokespecial || !sender_is_interface ||
-        method->name() == vmSymbols::object_initializer_name()) {
+    if (invoke_code == Bytecodes::_invokespecial && sender_is_interface &&
+        method->name() != vmSymbols::object_initializer_name()) {
+      do_resolve = false;
+    }
+    // Don't mark invokestatic to method as resolved if the holder class has not yet completed
+    // initialization. An invokestatic must only proceed if the class is initialized, but if
+    // we resolve it before then that class initialization check is skipped.
+    if (invoke_code == Bytecodes::_invokestatic && !method->method_holder()->is_initialized()) {
+      do_resolve = false;
+    }
+    if (do_resolve) {
       set_bytecode_1(invoke_code);
     }
   } else if (byte_no == 2)  {
--- a/src/hotspot/share/oops/cpCache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/cpCache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_CPCACHEOOP_HPP
-#define SHARE_VM_OOPS_CPCACHEOOP_HPP
+#ifndef SHARE_OOPS_CPCACHE_HPP
+#define SHARE_OOPS_CPCACHE_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "memory/allocation.hpp"
@@ -526,4 +526,4 @@
   void verify_on(outputStream* st);
 };
 
-#endif // SHARE_VM_OOPS_CPCACHEOOP_HPP
+#endif // SHARE_OOPS_CPCACHE_HPP
--- a/src/hotspot/share/oops/cpCache.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/cpCache.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_CPCACHEOOP_INLINE_HPP
-#define SHARE_VM_OOPS_CPCACHEOOP_INLINE_HPP
+#ifndef SHARE_OOPS_CPCACHE_INLINE_HPP
+#define SHARE_OOPS_CPCACHE_INLINE_HPP
 
 #include "oops/cpCache.hpp"
 #include "oops/oopHandle.inline.hpp"
@@ -99,4 +99,4 @@
 
 inline oop ConstantPoolCache::resolved_references() { return _resolved_references.resolve(); }
 
-#endif // SHARE_VM_OOPS_CPCACHEOOP_INLINE_HPP
+#endif // SHARE_OOPS_CPCACHE_INLINE_HPP
--- a/src/hotspot/share/oops/fieldInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/fieldInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_FIELDINFO_HPP
-#define SHARE_VM_OOPS_FIELDINFO_HPP
+#ifndef SHARE_OOPS_FIELDINFO_HPP
+#define SHARE_OOPS_FIELDINFO_HPP
 
 #include "oops/constantPool.hpp"
 #include "oops/typeArrayOop.hpp"
@@ -254,4 +254,4 @@
   }
 };
 
-#endif // SHARE_VM_OOPS_FIELDINFO_HPP
+#endif // SHARE_OOPS_FIELDINFO_HPP
--- a/src/hotspot/share/oops/fieldStreams.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/fieldStreams.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_FIELDSTREAMS_HPP
-#define SHARE_VM_OOPS_FIELDSTREAMS_HPP
+#ifndef SHARE_OOPS_FIELDSTREAMS_HPP
+#define SHARE_OOPS_FIELDSTREAMS_HPP
 
 #include "oops/instanceKlass.hpp"
 #include "oops/fieldInfo.hpp"
@@ -246,4 +246,4 @@
   AllFieldStream(InstanceKlass* k):      FieldStreamBase(k->fields(), k->constants()) {}
 };
 
-#endif // SHARE_VM_OOPS_FIELDSTREAMS_HPP
+#endif // SHARE_OOPS_FIELDSTREAMS_HPP
--- a/src/hotspot/share/oops/generateOopMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/generateOopMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_GENERATEOOPMAP_HPP
-#define SHARE_VM_OOPS_GENERATEOOPMAP_HPP
+#ifndef SHARE_OOPS_GENERATEOOPMAP_HPP
+#define SHARE_OOPS_GENERATEOOPMAP_HPP
 
 #include "interpreter/bytecodeStream.hpp"
 #include "memory/allocation.hpp"
@@ -563,4 +563,4 @@
   // Call compute_map(CHECK) to generate info.
 };
 
-#endif // SHARE_VM_OOPS_GENERATEOOPMAP_HPP
+#endif // SHARE_OOPS_GENERATEOOPMAP_HPP
--- a/src/hotspot/share/oops/instanceClassLoaderKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceClassLoaderKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
-#define SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
+#ifndef SHARE_OOPS_INSTANCECLASSLOADERKLASS_HPP
+#define SHARE_OOPS_INSTANCECLASSLOADERKLASS_HPP
 
 #include "oops/instanceKlass.hpp"
 #include "utilities/macros.hpp"
@@ -68,4 +68,4 @@
   inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
 };
 
-#endif // SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_HPP
+#endif // SHARE_OOPS_INSTANCECLASSLOADERKLASS_HPP
--- a/src/hotspot/share/oops/instanceClassLoaderKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceClassLoaderKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
+#define SHARE_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "memory/iterator.hpp"
@@ -70,4 +70,4 @@
   }
 }
 
-#endif // SHARE_VM_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
+#endif // SHARE_OOPS_INSTANCECLASSLOADERKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/instanceKlass.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -918,25 +918,28 @@
 
   bool wait = false;
 
+  assert(THREAD->is_Java_thread(), "non-JavaThread in initialize_impl");
+  JavaThread* jt = (JavaThread*)THREAD;
+
   // refer to the JVM book page 47 for description of steps
   // Step 1
   {
     Handle h_init_lock(THREAD, init_lock());
     ObjectLocker ol(h_init_lock, THREAD, h_init_lock() != NULL);
 
-    Thread *self = THREAD; // it's passed the current thread
-
     // Step 2
     // If we were to use wait() instead of waitInterruptibly() then
     // we might end up throwing IE from link/symbol resolution sites
     // that aren't expected to throw.  This would wreak havoc.  See 6320309.
-    while(is_being_initialized() && !is_reentrant_initialization(self)) {
-        wait = true;
-      ol.waitUninterruptibly(CHECK);
+    while (is_being_initialized() && !is_reentrant_initialization(jt)) {
+      wait = true;
+      jt->set_class_to_be_initialized(this);
+      ol.waitUninterruptibly(jt);
+      jt->set_class_to_be_initialized(NULL);
     }
 
     // Step 3
-    if (is_being_initialized() && is_reentrant_initialization(self)) {
+    if (is_being_initialized() && is_reentrant_initialization(jt)) {
       DTRACE_CLASSINIT_PROBE_WAIT(recursive, -1, wait);
       return;
     }
@@ -966,7 +969,7 @@
 
     // Step 6
     set_init_state(being_initialized);
-    set_init_thread(self);
+    set_init_thread(jt);
   }
 
   // Step 7
@@ -1006,8 +1009,6 @@
 
   // Step 8
   {
-    assert(THREAD->is_Java_thread(), "non-JavaThread in initialize_impl");
-    JavaThread* jt = (JavaThread*)THREAD;
     DTRACE_CLASSINIT_PROBE_WAIT(clinit, -1, wait);
     // Timer includes any side effects of class initialization (resolution,
     // etc), but not recursive entry into call_class_initializer().
@@ -1033,14 +1034,14 @@
     CLEAR_PENDING_EXCEPTION;
     // JVMTI has already reported the pending exception
     // JVMTI internal flag reset is needed in order to report ExceptionInInitializerError
-    JvmtiExport::clear_detected_exception((JavaThread*)THREAD);
+    JvmtiExport::clear_detected_exception(jt);
     {
       EXCEPTION_MARK;
       set_initialization_state_and_notify(initialization_error, THREAD);
       CLEAR_PENDING_EXCEPTION;   // ignore any exception thrown, class initialization error is thrown below
       // JVMTI has already reported the pending exception
       // JVMTI internal flag reset is needed in order to report ExceptionInInitializerError
-      JvmtiExport::clear_detected_exception((JavaThread*)THREAD);
+      JvmtiExport::clear_detected_exception(jt);
     }
     DTRACE_CLASSINIT_PROBE_WAIT(error, -1, wait);
     if (e->is_a(SystemDictionary::Error_klass())) {
@@ -2178,6 +2179,7 @@
   for (int m = 0; m < methods()->length(); m++) {
     MethodData* mdo = methods()->at(m)->method_data();
     if (mdo != NULL) {
+      MutexLockerEx ml(SafepointSynchronize::is_at_safepoint() ? NULL : mdo->extra_data_lock());
       mdo->clean_method_data(/*always_clean*/false);
     }
   }
@@ -2372,9 +2374,8 @@
 
   Array<Method*>* methods = this->methods();
   int num_methods = methods->length();
-  for (int index2 = 0; index2 < num_methods; ++index2) {
-    methodHandle m(THREAD, methods->at(index2));
-    m->restore_unshareable_info(CHECK);
+  for (int index = 0; index < num_methods; ++index) {
+    methods->at(index)->restore_unshareable_info(CHECK);
   }
   if (JvmtiExport::has_redefined_a_class()) {
     // Reinitialize vtable because RedefineClasses may have changed some
--- a/src/hotspot/share/oops/instanceKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEKLASS_HPP
-#define SHARE_VM_OOPS_INSTANCEKLASS_HPP
+#ifndef SHARE_OOPS_INSTANCEKLASS_HPP
+#define SHARE_OOPS_INSTANCEKLASS_HPP
 
 #include "classfile/classLoader.hpp"
 #include "classfile/classLoaderData.hpp"
@@ -1470,4 +1470,4 @@
   }
 };
 
-#endif // SHARE_VM_OOPS_INSTANCEKLASS_HPP
+#endif // SHARE_OOPS_INSTANCEKLASS_HPP
--- a/src/hotspot/share/oops/instanceKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_INSTANCEKLASS_INLINE_HPP
+#define SHARE_OOPS_INSTANCEKLASS_INLINE_HPP
 
 #include "memory/iterator.hpp"
 #include "oops/instanceKlass.hpp"
@@ -157,4 +157,4 @@
   oop_oop_iterate_oop_maps_bounded<T>(obj, closure, mr);
 }
 
-#endif // SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP
+#endif // SHARE_OOPS_INSTANCEKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/instanceMirrorKlass.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceMirrorKlass.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -23,7 +23,7 @@
  */
 
 #include "precompiled.hpp"
-#include "classfile/javaClasses.hpp"
+#include "classfile/javaClasses.inline.hpp"
 #include "classfile/systemDictionary.hpp"
 #include "gc/shared/collectedHeap.inline.hpp"
 #include "memory/iterator.inline.hpp"
--- a/src/hotspot/share/oops/instanceMirrorKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceMirrorKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP
-#define SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP
+#ifndef SHARE_OOPS_INSTANCEMIRRORKLASS_HPP
+#define SHARE_OOPS_INSTANCEMIRRORKLASS_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "oops/instanceKlass.hpp"
@@ -121,4 +121,4 @@
   inline void oop_oop_iterate_statics_bounded(oop obj, OopClosureType* closure, MemRegion mr);
 };
 
-#endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP
+#endif // SHARE_OOPS_INSTANCEMIRRORKLASS_HPP
--- a/src/hotspot/share/oops/instanceMirrorKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceMirrorKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+/* 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
@@ -21,8 +21,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
+#define SHARE_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "oops/instanceKlass.inline.hpp"
@@ -127,4 +127,4 @@
   oop_oop_iterate_statics_bounded<T>(obj, closure, mr);
 }
 
-#endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
+#endif // SHARE_OOPS_INSTANCEMIRRORKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/instanceOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEOOP_HPP
-#define SHARE_VM_OOPS_INSTANCEOOP_HPP
+#ifndef SHARE_OOPS_INSTANCEOOP_HPP
+#define SHARE_OOPS_INSTANCEOOP_HPP
 
 #include "oops/oop.hpp"
 
@@ -51,4 +51,4 @@
   }
 };
 
-#endif // SHARE_VM_OOPS_INSTANCEOOP_HPP
+#endif // SHARE_OOPS_INSTANCEOOP_HPP
--- a/src/hotspot/share/oops/instanceRefKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceRefKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEREFKLASS_HPP
-#define SHARE_VM_OOPS_INSTANCEREFKLASS_HPP
+#ifndef SHARE_OOPS_INSTANCEREFKLASS_HPP
+#define SHARE_OOPS_INSTANCEREFKLASS_HPP
 
 #include "oops/instanceKlass.hpp"
 #include "utilities/macros.hpp"
@@ -138,4 +138,4 @@
   void oop_verify_on(oop obj, outputStream* st);
 };
 
-#endif // SHARE_VM_OOPS_INSTANCEREFKLASS_HPP
+#endif // SHARE_OOPS_INSTANCEREFKLASS_HPP
--- a/src/hotspot/share/oops/instanceRefKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/instanceRefKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_INSTANCEREFKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_INSTANCEREFKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_INSTANCEREFKLASS_INLINE_HPP
+#define SHARE_OOPS_INSTANCEREFKLASS_INLINE_HPP
 
 #include "classfile/javaClasses.inline.hpp"
 #include "gc/shared/referenceProcessor.hpp"
@@ -197,4 +197,4 @@
 }
 #endif
 
-#endif // SHARE_VM_OOPS_INSTANCEREFKLASS_INLINE_HPP
+#endif // SHARE_OOPS_INSTANCEREFKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/klass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/klass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_KLASS_HPP
-#define SHARE_VM_OOPS_KLASS_HPP
+#ifndef SHARE_OOPS_KLASS_HPP
+#define SHARE_OOPS_KLASS_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "memory/iterator.hpp"
@@ -706,4 +706,4 @@
   static Klass* decode_klass(narrowKlass v);
 };
 
-#endif // SHARE_VM_OOPS_KLASS_HPP
+#endif // SHARE_OOPS_KLASS_HPP
--- a/src/hotspot/share/oops/klass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/klass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_KLASS_INLINE_HPP
-#define SHARE_VM_OOPS_KLASS_INLINE_HPP
+#ifndef SHARE_OOPS_KLASS_INLINE_HPP
+#define SHARE_OOPS_KLASS_INLINE_HPP
 
 #include "memory/universe.hpp"
 #include "oops/klass.hpp"
@@ -71,4 +71,4 @@
   return is_null(v) ? (Klass*)NULL : decode_klass_not_null(v);
 }
 
-#endif // SHARE_VM_OOPS_KLASS_INLINE_HPP
+#endif // SHARE_OOPS_KLASS_INLINE_HPP
--- a/src/hotspot/share/oops/klassVtable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/klassVtable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_KLASSVTABLE_HPP
-#define SHARE_VM_OOPS_KLASSVTABLE_HPP
+#ifndef SHARE_OOPS_KLASSVTABLE_HPP
+#define SHARE_OOPS_KLASSVTABLE_HPP
 
 #include "oops/oopsHierarchy.hpp"
 #include "runtime/handles.hpp"
@@ -352,4 +352,4 @@
   static void update_stats(int size) PRODUCT_RETURN NOT_PRODUCT({ _total_classes++; _total_size += size; })
 };
 
-#endif // SHARE_VM_OOPS_KLASSVTABLE_HPP
+#endif // SHARE_OOPS_KLASSVTABLE_HPP
--- a/src/hotspot/share/oops/markOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/markOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_MARKOOP_HPP
-#define SHARE_VM_OOPS_MARKOOP_HPP
+#ifndef SHARE_OOPS_MARKOOP_HPP
+#define SHARE_OOPS_MARKOOP_HPP
 
 #include "oops/oop.hpp"
 
@@ -403,4 +403,4 @@
 #endif // _LP64
 };
 
-#endif // SHARE_VM_OOPS_MARKOOP_HPP
+#endif // SHARE_OOPS_MARKOOP_HPP
--- a/src/hotspot/share/oops/markOop.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/markOop.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_MARKOOP_INLINE_HPP
-#define SHARE_VM_OOPS_MARKOOP_INLINE_HPP
+#ifndef SHARE_OOPS_MARKOOP_INLINE_HPP
+#define SHARE_OOPS_MARKOOP_INLINE_HPP
 
 #include "oops/klass.hpp"
 #include "oops/markOop.hpp"
@@ -111,4 +111,4 @@
   return obj->klass()->prototype_header();
 }
 
-#endif // SHARE_VM_OOPS_MARKOOP_INLINE_HPP
+#endif // SHARE_OOPS_MARKOOP_INLINE_HPP
--- a/src/hotspot/share/oops/metadata.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/metadata.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METADATA_HPP
-#define SHARE_VM_OOPS_METADATA_HPP
+#ifndef SHARE_OOPS_METADATA_HPP
+#define SHARE_OOPS_METADATA_HPP
 
 #include "utilities/exceptions.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -76,4 +76,4 @@
   static void mark_on_stack(Metadata* m) { m->set_on_stack(true); }
 };
 
-#endif // SHARE_VM_OOPS_METADATA_HPP
+#endif // SHARE_OOPS_METADATA_HPP
--- a/src/hotspot/share/oops/method.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/method.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METHODOOP_HPP
-#define SHARE_VM_OOPS_METHODOOP_HPP
+#ifndef SHARE_OOPS_METHOD_HPP
+#define SHARE_OOPS_METHOD_HPP
 
 #include "classfile/vmSymbols.hpp"
 #include "code/compressedStream.hpp"
@@ -1176,4 +1176,4 @@
   }
 };
 
-#endif // SHARE_VM_OOPS_METHODOOP_HPP
+#endif // SHARE_OOPS_METHOD_HPP
--- a/src/hotspot/share/oops/method.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/method.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METHOD_INLINE_HPP
-#define SHARE_VM_OOPS_METHOD_INLINE_HPP
+#ifndef SHARE_OOPS_METHOD_INLINE_HPP
+#define SHARE_OOPS_METHOD_INLINE_HPP
 
 #include "oops/method.hpp"
 #include "runtime/orderAccess.hpp"
@@ -50,4 +50,4 @@
 
 inline bool Method::has_compiled_code() const { return code() != NULL; }
 
-#endif // SHARE_VM_OOPS_METHOD_INLINE_HPP
+#endif // SHARE_OOPS_METHOD_INLINE_HPP
--- a/src/hotspot/share/oops/methodCounters.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/methodCounters.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METHODCOUNTERS_HPP
-#define SHARE_VM_OOPS_METHODCOUNTERS_HPP
+#ifndef SHARE_OOPS_METHODCOUNTERS_HPP
+#define SHARE_OOPS_METHODCOUNTERS_HPP
 
 #include "oops/metadata.hpp"
 #include "compiler/compilerDefinitions.hpp"
@@ -265,4 +265,4 @@
   virtual void print_value_on(outputStream* st) const;
 
 };
-#endif //SHARE_VM_OOPS_METHODCOUNTERS_HPP
+#endif // SHARE_OOPS_METHODCOUNTERS_HPP
--- a/src/hotspot/share/oops/methodData.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/methodData.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1653,11 +1653,6 @@
   }
 }
 
-class CleanExtraDataClosure : public StackObj {
-public:
-  virtual bool is_live(Method* m) = 0;
-};
-
 // Check for entries that reference an unloaded method
 class CleanExtraDataKlassClosure : public CleanExtraDataClosure {
   bool _always_clean;
--- a/src/hotspot/share/oops/methodData.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/methodData.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METHODDATAOOP_HPP
-#define SHARE_VM_OOPS_METHODDATAOOP_HPP
+#ifndef SHARE_OOPS_METHODDATA_HPP
+#define SHARE_OOPS_METHODDATA_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "memory/universe.hpp"
@@ -1943,7 +1943,11 @@
 // adjusted in the event of a change in control flow.
 //
 
-class CleanExtraDataClosure;
+class CleanExtraDataClosure : public StackObj {
+public:
+  virtual bool is_live(Method* m) = 0;
+};
+
 
 class MethodData : public Metadata {
   friend class VMStructs;
@@ -2116,11 +2120,12 @@
   static bool profile_parameters_jsr292_only();
   static bool profile_all_parameters();
 
-  void clean_extra_data(CleanExtraDataClosure* cl);
   void clean_extra_data_helper(DataLayout* dp, int shift, bool reset = false);
   void verify_extra_data_clean(CleanExtraDataClosure* cl);
 
 public:
+  void clean_extra_data(CleanExtraDataClosure* cl);
+
   static int header_size() {
     return sizeof(MethodData)/wordSize;
   }
@@ -2427,4 +2432,4 @@
   Mutex* extra_data_lock() { return &_extra_data_lock; }
 };
 
-#endif // SHARE_VM_OOPS_METHODDATAOOP_HPP
+#endif // SHARE_OOPS_METHODDATA_HPP
--- a/src/hotspot/share/oops/methodData.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/methodData.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_METHODDATA_INLINE_HPP
-#define SHARE_VM_OOPS_METHODDATA_INLINE_HPP
+#ifndef SHARE_OOPS_METHODDATA_INLINE_HPP
+#define SHARE_OOPS_METHODDATA_INLINE_HPP
 
 #include "oops/methodData.hpp"
 #include "runtime/orderAccess.hpp"
@@ -52,4 +52,4 @@
   release_set_int_at(bci0_offset + row * ret_row_cell_count, bci);
 }
 
-#endif // SHARE_VM_OOPS_METHODDATA_INLINE_HPP
+#endif // SHARE_OOPS_METHODDATA_INLINE_HPP
--- a/src/hotspot/share/oops/objArrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/objArrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OBJARRAYKLASS_HPP
-#define SHARE_VM_OOPS_OBJARRAYKLASS_HPP
+#ifndef SHARE_OOPS_OBJARRAYKLASS_HPP
+#define SHARE_OOPS_OBJARRAYKLASS_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "oops/arrayKlass.hpp"
@@ -174,4 +174,4 @@
   void oop_verify_on(oop obj, outputStream* st);
 };
 
-#endif // SHARE_VM_OOPS_OBJARRAYKLASS_HPP
+#endif // SHARE_OOPS_OBJARRAYKLASS_HPP
--- a/src/hotspot/share/oops/objArrayKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/objArrayKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OBJARRAYKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_OBJARRAYKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_OBJARRAYKLASS_INLINE_HPP
+#define SHARE_OOPS_OBJARRAYKLASS_INLINE_HPP
 
 #include "memory/memRegion.hpp"
 #include "memory/iterator.hpp"
@@ -117,4 +117,4 @@
   }
 }
 
-#endif // SHARE_VM_OOPS_OBJARRAYKLASS_INLINE_HPP
+#endif // SHARE_OOPS_OBJARRAYKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/objArrayOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/objArrayOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OBJARRAYOOP_HPP
-#define SHARE_VM_OOPS_OBJARRAYOOP_HPP
+#ifndef SHARE_OOPS_OBJARRAYOOP_HPP
+#define SHARE_OOPS_OBJARRAYOOP_HPP
 
 #include "oops/arrayOop.hpp"
 #include "utilities/align.hpp"
@@ -112,4 +112,4 @@
   void oop_iterate_range(OopClosureType* blk, int start, int end);
 };
 
-#endif // SHARE_VM_OOPS_OBJARRAYOOP_HPP
+#endif // SHARE_OOPS_OBJARRAYOOP_HPP
--- a/src/hotspot/share/oops/objArrayOop.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/objArrayOop.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
-#define SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
+#ifndef SHARE_OOPS_OBJARRAYOOP_INLINE_HPP
+#define SHARE_OOPS_OBJARRAYOOP_INLINE_HPP
 
 #include "oops/access.inline.hpp"
 #include "oops/arrayOop.inline.hpp"
@@ -54,4 +54,4 @@
   HeapAccess<IS_ARRAY>::oop_store_at(as_oop(), offset, value);
 }
 
-#endif // SHARE_VM_OOPS_OBJARRAYOOP_INLINE_HPP
+#endif // SHARE_OOPS_OBJARRAYOOP_INLINE_HPP
--- a/src/hotspot/share/oops/oop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/oop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OOP_HPP
-#define SHARE_VM_OOPS_OOP_HPP
+#ifndef SHARE_OOPS_OOP_HPP
+#define SHARE_OOPS_OOP_HPP
 
 #include "memory/iterator.hpp"
 #include "memory/memRegion.hpp"
@@ -331,4 +331,4 @@
   static oop   oop_or_null(address addr);
 };
 
-#endif // SHARE_VM_OOPS_OOP_HPP
+#endif // SHARE_OOPS_OOP_HPP
--- a/src/hotspot/share/oops/oop.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/oop.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OOP_INLINE_HPP
-#define SHARE_VM_OOPS_OOP_INLINE_HPP
+#ifndef SHARE_OOPS_OOP_INLINE_HPP
+#define SHARE_OOPS_OOP_INLINE_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "oops/access.inline.hpp"
@@ -481,4 +481,4 @@
   mark_raw()->set_displaced_mark_helper(m);
 }
 
-#endif // SHARE_VM_OOPS_OOP_INLINE_HPP
+#endif // SHARE_OOPS_OOP_INLINE_HPP
--- a/src/hotspot/share/oops/oopHandle.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/oopHandle.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OOPHANDLE_HPP
-#define SHARE_VM_OOPS_OOPHANDLE_HPP
+#ifndef SHARE_OOPS_OOPHANDLE_HPP
+#define SHARE_OOPS_OOPHANDLE_HPP
 
 #include "oops/oop.hpp"
 
@@ -50,4 +50,4 @@
   oop* ptr_raw() const { return _obj; }
 };
 
-#endif // SHARE_VM_OOPS_OOPHANDLE_HPP
+#endif // SHARE_OOPS_OOPHANDLE_HPP
--- a/src/hotspot/share/oops/oopHandle.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/oopHandle.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OOPHANDLE_INLINE_HPP
-#define SHARE_VM_OOPS_OOPHANDLE_INLINE_HPP
+#ifndef SHARE_OOPS_OOPHANDLE_INLINE_HPP
+#define SHARE_OOPS_OOPHANDLE_INLINE_HPP
 
 #include "oops/access.inline.hpp"
 #include "oops/oopHandle.hpp"
@@ -36,4 +36,4 @@
   return (_obj == NULL) ? (oop)NULL : NativeAccess<AS_NO_KEEPALIVE>::oop_load(_obj);
 }
 
-#endif //  SHARE_VM_OOPS_OOPHANDLE_INLINE_HPP
+#endif // SHARE_OOPS_OOPHANDLE_INLINE_HPP
--- a/src/hotspot/share/oops/oopsHierarchy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/oopsHierarchy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_OOPSHIERARCHY_HPP
-#define SHARE_VM_OOPS_OOPSHIERARCHY_HPP
+#ifndef SHARE_OOPS_OOPSHIERARCHY_HPP
+#define SHARE_OOPS_OOPSHIERARCHY_HPP
 
 #include "metaprogramming/integralConstant.hpp"
 #include "metaprogramming/primitiveConversions.hpp"
@@ -220,4 +220,4 @@
 class     ObjArrayKlass;
 class     TypeArrayKlass;
 
-#endif // SHARE_VM_OOPS_OOPSHIERARCHY_HPP
+#endif // SHARE_OOPS_OOPSHIERARCHY_HPP
--- a/src/hotspot/share/oops/reflectionAccessorImplKlassHelper.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/reflectionAccessorImplKlassHelper.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018, SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef HOTSPOT_SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP
-#define HOTSPOT_SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP
+#ifndef SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP
+#define SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP
 
 #include "memory/allocation.hpp"
 
@@ -71,5 +71,4 @@
 
 
 
-#endif /* HOTSPOT_SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP */
-
+#endif // SHARE_OOPS_REFLECTIONACCESSORIMPLKLASSHELPER_HPP
--- a/src/hotspot/share/oops/symbol.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/symbol.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_SYMBOL_HPP
-#define SHARE_VM_OOPS_SYMBOL_HPP
+#ifndef SHARE_OOPS_SYMBOL_HPP
+#define SHARE_OOPS_SYMBOL_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/exceptions.hpp"
@@ -271,4 +271,4 @@
  return (((uintptr_t)this < (uintptr_t)other) ? -1
    : ((uintptr_t)this == (uintptr_t) other) ? 0 : 1);
 }
-#endif // SHARE_VM_OOPS_SYMBOL_HPP
+#endif // SHARE_OOPS_SYMBOL_HPP
--- a/src/hotspot/share/oops/typeArrayKlass.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/typeArrayKlass.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_TYPEARRAYKLASS_HPP
-#define SHARE_VM_OOPS_TYPEARRAYKLASS_HPP
+#ifndef SHARE_OOPS_TYPEARRAYKLASS_HPP
+#define SHARE_OOPS_TYPEARRAYKLASS_HPP
 
 #include "classfile/classLoaderData.hpp"
 #include "oops/arrayKlass.hpp"
@@ -135,4 +135,4 @@
   PackageEntry* package() const;
 };
 
-#endif // SHARE_VM_OOPS_TYPEARRAYKLASS_HPP
+#endif // SHARE_OOPS_TYPEARRAYKLASS_HPP
--- a/src/hotspot/share/oops/typeArrayKlass.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/typeArrayKlass.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP
-#define SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP
+#ifndef SHARE_OOPS_TYPEARRAYKLASS_INLINE_HPP
+#define SHARE_OOPS_TYPEARRAYKLASS_INLINE_HPP
 
 #include "oops/arrayKlass.hpp"
 #include "oops/klass.hpp"
@@ -54,4 +54,4 @@
   oop_oop_iterate_impl(obj, closure);
 }
 
-#endif // SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP
+#endif // SHARE_OOPS_TYPEARRAYKLASS_INLINE_HPP
--- a/src/hotspot/share/oops/typeArrayOop.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/typeArrayOop.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_TYPEARRAYOOP_HPP
-#define SHARE_VM_OOPS_TYPEARRAYOOP_HPP
+#ifndef SHARE_OOPS_TYPEARRAYOOP_HPP
+#define SHARE_OOPS_TYPEARRAYOOP_HPP
 
 #include "oops/arrayOop.hpp"
 #include "oops/typeArrayKlass.hpp"
@@ -134,4 +134,4 @@
   inline int object_size();
 };
 
-#endif // SHARE_VM_OOPS_TYPEARRAYOOP_HPP
+#endif // SHARE_OOPS_TYPEARRAYOOP_HPP
--- a/src/hotspot/share/oops/typeArrayOop.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/typeArrayOop.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_TYPEARRAYOOP_INLINE_HPP
-#define SHARE_VM_OOPS_TYPEARRAYOOP_INLINE_HPP
+#ifndef SHARE_OOPS_TYPEARRAYOOP_INLINE_HPP
+#define SHARE_OOPS_TYPEARRAYOOP_INLINE_HPP
 
 #include "oops/access.inline.hpp"
 #include "oops/oop.inline.hpp"
@@ -203,4 +203,4 @@
 #endif // _LP64
 
 
-#endif // SHARE_VM_OOPS_TYPEARRAYOOP_INLINE_HPP
+#endif // SHARE_OOPS_TYPEARRAYOOP_INLINE_HPP
--- a/src/hotspot/share/oops/verifyOopClosure.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/verifyOopClosure.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_VERIFYOOPCLOSURE_HPP
-#define SHARE_VM_OOPS_VERIFYOOPCLOSURE_HPP
+#ifndef SHARE_OOPS_VERIFYOOPCLOSURE_HPP
+#define SHARE_OOPS_VERIFYOOPCLOSURE_HPP
 
 #include "memory/iterator.hpp"
 
@@ -36,4 +36,4 @@
   static VerifyOopClosure verify_oop;
 };
 
-#endif // SHARE_VM_OOPS_VERIFYOOPCLOSURE_HPP
+#endif // SHARE_OOPS_VERIFYOOPCLOSURE_HPP
--- a/src/hotspot/share/oops/weakHandle.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/weakHandle.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_WEAKHANDLE_HPP
-#define SHARE_VM_OOPS_WEAKHANDLE_HPP
+#ifndef SHARE_OOPS_WEAKHANDLE_HPP
+#define SHARE_OOPS_WEAKHANDLE_HPP
 
 #include "oops/oop.hpp"
 #include "runtime/handles.hpp"
@@ -66,4 +66,4 @@
 
 typedef WeakHandle<vm_class_loader_data> ClassLoaderWeakHandle;
 
-#endif // SHARE_VM_OOPS_WEAKHANDLE_HPP
+#endif // SHARE_OOPS_WEAKHANDLE_HPP
--- a/src/hotspot/share/oops/weakHandle.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/oops/weakHandle.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OOPS_WEAKHANDLE_INLINE_HPP
-#define SHARE_VM_OOPS_WEAKHANDLE_INLINE_HPP
+#ifndef SHARE_OOPS_WEAKHANDLE_INLINE_HPP
+#define SHARE_OOPS_WEAKHANDLE_INLINE_HPP
 
 #include "oops/weakHandle.hpp"
 #include "oops/access.inline.hpp"
@@ -45,5 +45,4 @@
   NativeAccess<ON_PHANTOM_OOP_REF>::oop_store(_obj, with_obj);
 }
 
-#endif // SHARE_VM_OOPS_WEAKHANDLE_INLINE_HPP
-
+#endif // SHARE_OOPS_WEAKHANDLE_INLINE_HPP
--- a/src/hotspot/share/opto/ad.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/ad.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,12 +22,12 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_AD_HPP
-#define SHARE_VM_OPTO_AD_HPP
+#ifndef SHARE_OPTO_AD_HPP
+#define SHARE_OPTO_AD_HPP
 
 
 #include "utilities/macros.hpp"
 
 #include CPU_HEADER(adfiles/ad)
 
-#endif // SHARE_VM_OPTO_AD_HPP
+#endif // SHARE_OPTO_AD_HPP
--- a/src/hotspot/share/opto/addnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/addnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_ADDNODE_HPP
-#define SHARE_VM_OPTO_ADDNODE_HPP
+#ifndef SHARE_OPTO_ADDNODE_HPP
+#define SHARE_OPTO_ADDNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -297,4 +297,4 @@
   virtual uint ideal_reg() const { return Op_RegD; }
 };
 
-#endif // SHARE_VM_OPTO_ADDNODE_HPP
+#endif // SHARE_OPTO_ADDNODE_HPP
--- a/src/hotspot/share/opto/adlcVMDeps.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/adlcVMDeps.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,20 +22,18 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_ADLCVMDEPS_HPP
-#define SHARE_VM_OPTO_ADLCVMDEPS_HPP
+#ifndef SHARE_OPTO_ADLCVMDEPS_HPP
+#define SHARE_OPTO_ADLCVMDEPS_HPP
+
 
 // adlcVMDeps.hpp is used by both adlc and vm builds.
-// Only include allocation.hpp when we're not building adlc.
-#ifndef SHARE_VM_ADLC_ARENA_HPP
-#include "memory/allocation.hpp"
-#endif
+// Don't inherit from AllStatic to avoid including memory/allocation.hpp.
 
 // Declare commonly known constant and data structures between the
 // ADLC and the VM
 //
 
-class AdlcVMDeps : public AllStatic {
+class AdlcVMDeps {   // AllStatic
  public:
   // Mirror of TypeFunc types
   enum { Control, I_O, Memory, FramePtr, ReturnAdr, Parms };
@@ -52,4 +50,4 @@
   static const char* none_reloc_type() { return "relocInfo::none"; }
 };
 
-#endif // SHARE_VM_OPTO_ADLCVMDEPS_HPP
+#endif // SHARE_OPTO_ADLCVMDEPS_HPP
--- a/src/hotspot/share/opto/arraycopynode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/arraycopynode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_ARRAYCOPYNODE_HPP
-#define SHARE_VM_OPTO_ARRAYCOPYNODE_HPP
+#ifndef SHARE_OPTO_ARRAYCOPYNODE_HPP
+#define SHARE_OPTO_ARRAYCOPYNODE_HPP
 
 #include "gc/shared/c2/barrierSetC2.hpp"
 #include "opto/callnode.hpp"
@@ -178,4 +178,4 @@
   virtual void dump_compact_spec(outputStream* st) const;
 #endif
 };
-#endif // SHARE_VM_OPTO_ARRAYCOPYNODE_HPP
+#endif // SHARE_OPTO_ARRAYCOPYNODE_HPP
--- a/src/hotspot/share/opto/block.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/block.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_BLOCK_HPP
-#define SHARE_VM_OPTO_BLOCK_HPP
+#ifndef SHARE_OPTO_BLOCK_HPP
+#define SHARE_OPTO_BLOCK_HPP
 
 #include "opto/multnode.hpp"
 #include "opto/node.hpp"
@@ -887,4 +887,4 @@
   void union_traces(Trace* from, Trace* to);
 };
 
-#endif // SHARE_VM_OPTO_BLOCK_HPP
+#endif // SHARE_OPTO_BLOCK_HPP
--- a/src/hotspot/share/opto/c2_globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/c2_globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_C2_GLOBALS_HPP
-#define SHARE_VM_OPTO_C2_GLOBALS_HPP
+#ifndef SHARE_OPTO_C2_GLOBALS_HPP
+#define SHARE_OPTO_C2_GLOBALS_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/macros.hpp"
@@ -773,4 +773,4 @@
          IGNORE_CONSTRAINT, \
          IGNORE_WRITEABLE)
 
-#endif // SHARE_VM_OPTO_C2_GLOBALS_HPP
+#endif // SHARE_OPTO_C2_GLOBALS_HPP
--- a/src/hotspot/share/opto/c2compiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/c2compiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_C2COMPILER_HPP
-#define SHARE_VM_OPTO_C2COMPILER_HPP
+#ifndef SHARE_OPTO_C2COMPILER_HPP
+#define SHARE_OPTO_C2COMPILER_HPP
 
 #include "compiler/abstractCompiler.hpp"
 #include "opto/output.hpp"
@@ -70,4 +70,4 @@
   static int initial_code_buffer_size(int const_size = initial_const_capacity);
 };
 
-#endif // SHARE_VM_OPTO_C2COMPILER_HPP
+#endif // SHARE_OPTO_C2COMPILER_HPP
--- a/src/hotspot/share/opto/callGenerator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/callGenerator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CALLGENERATOR_HPP
-#define SHARE_VM_OPTO_CALLGENERATOR_HPP
+#ifndef SHARE_OPTO_CALLGENERATOR_HPP
+#define SHARE_OPTO_CALLGENERATOR_HPP
 
 #include "compiler/compileBroker.hpp"
 #include "opto/callnode.hpp"
@@ -342,4 +342,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_CALLGENERATOR_HPP
+#endif // SHARE_OPTO_CALLGENERATOR_HPP
--- a/src/hotspot/share/opto/callnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/callnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CALLNODE_HPP
-#define SHARE_VM_OPTO_CALLNODE_HPP
+#ifndef SHARE_OPTO_CALLNODE_HPP
+#define SHARE_OPTO_CALLNODE_HPP
 
 #include "opto/connode.hpp"
 #include "opto/mulnode.hpp"
@@ -1126,4 +1126,4 @@
   JVMState* dbg_jvms() const { return NULL; }
 #endif
 };
-#endif // SHARE_VM_OPTO_CALLNODE_HPP
+#endif // SHARE_OPTO_CALLNODE_HPP
--- a/src/hotspot/share/opto/castnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/castnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CASTNODE_HPP
-#define SHARE_VM_OPTO_CASTNODE_HPP
+#ifndef SHARE_OPTO_CASTNODE_HPP
+#define SHARE_OPTO_CASTNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -151,4 +151,4 @@
 
 
 
-#endif // SHARE_VM_OPTO_CASTNODE_HPP
+#endif // SHARE_OPTO_CASTNODE_HPP
--- a/src/hotspot/share/opto/cfgnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/cfgnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CFGNODE_HPP
-#define SHARE_VM_OPTO_CFGNODE_HPP
+#ifndef SHARE_OPTO_CFGNODE_HPP
+#define SHARE_OPTO_CFGNODE_HPP
 
 #include "opto/multnode.hpp"
 #include "opto/node.hpp"
@@ -613,4 +613,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_CFGNODE_HPP
+#endif // SHARE_OPTO_CFGNODE_HPP
--- a/src/hotspot/share/opto/chaitin.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/chaitin.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CHAITIN_HPP
-#define SHARE_VM_OPTO_CHAITIN_HPP
+#ifndef SHARE_OPTO_CHAITIN_HPP
+#define SHARE_OPTO_CHAITIN_HPP
 
 #include "code/vmreg.hpp"
 #include "memory/resourceArea.hpp"
@@ -801,4 +801,4 @@
   friend class PhaseConservativeCoalesce;
 };
 
-#endif // SHARE_VM_OPTO_CHAITIN_HPP
+#endif // SHARE_OPTO_CHAITIN_HPP
--- a/src/hotspot/share/opto/coalesce.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/coalesce.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_COALESCE_HPP
-#define SHARE_VM_OPTO_COALESCE_HPP
+#ifndef SHARE_OPTO_COALESCE_HPP
+#define SHARE_OPTO_COALESCE_HPP
 
 #include "opto/phase.hpp"
 
@@ -114,4 +114,4 @@
   void update_ifg(uint lr1, uint lr2, IndexSet *n_lr1, IndexSet *n_lr2);
 };
 
-#endif // SHARE_VM_OPTO_COALESCE_HPP
+#endif // SHARE_OPTO_COALESCE_HPP
--- a/src/hotspot/share/opto/compile.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/compile.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_COMPILE_HPP
-#define SHARE_VM_OPTO_COMPILE_HPP
+#ifndef SHARE_OPTO_COMPILE_HPP
+#define SHARE_OPTO_COMPILE_HPP
 
 #include "asm/codeBuffer.hpp"
 #include "ci/compilerInterface.hpp"
@@ -1363,4 +1363,4 @@
   void          set_clone_map(Dict* d);
 };
 
-#endif // SHARE_VM_OPTO_COMPILE_HPP
+#endif // SHARE_OPTO_COMPILE_HPP
--- a/src/hotspot/share/opto/connode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/connode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CONNODE_HPP
-#define SHARE_VM_OPTO_CONNODE_HPP
+#ifndef SHARE_OPTO_CONNODE_HPP
+#define SHARE_OPTO_CONNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -151,4 +151,4 @@
 
 
 
-#endif // SHARE_VM_OPTO_CONNODE_HPP
+#endif // SHARE_OPTO_CONNODE_HPP
--- a/src/hotspot/share/opto/convertnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/convertnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_CONVERTNODE_HPP
-#define SHARE_VM_OPTO_CONVERTNODE_HPP
+#ifndef SHARE_OPTO_CONVERTNODE_HPP
+#define SHARE_OPTO_CONVERTNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -213,4 +213,4 @@
 };
 
 
-#endif // SHARE_VM_OPTO_CONVERTNODE_HPP
+#endif // SHARE_OPTO_CONVERTNODE_HPP
--- a/src/hotspot/share/opto/countbitsnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/countbitsnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_COUNTBITSNODE_HPP
-#define SHARE_VM_OPTO_COUNTBITSNODE_HPP
+#ifndef SHARE_OPTO_COUNTBITSNODE_HPP
+#define SHARE_OPTO_COUNTBITSNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -91,4 +91,4 @@
 };
 
 
-#endif // SHARE_VM_OPTO_COUNTBITSNODE_HPP
+#endif // SHARE_OPTO_COUNTBITSNODE_HPP
--- a/src/hotspot/share/opto/divnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/divnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_DIVNODE_HPP
-#define SHARE_VM_OPTO_DIVNODE_HPP
+#ifndef SHARE_OPTO_DIVNODE_HPP
+#define SHARE_OPTO_DIVNODE_HPP
 
 #include "opto/multnode.hpp"
 #include "opto/node.hpp"
@@ -184,4 +184,4 @@
   static DivModLNode* make(Node* div_or_mod);
 };
 
-#endif // SHARE_VM_OPTO_DIVNODE_HPP
+#endif // SHARE_OPTO_DIVNODE_HPP
--- a/src/hotspot/share/opto/escape.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/escape.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1727,7 +1727,8 @@
     //
     Node* n = field->ideal_node();
     for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
-      if (n->fast_out(i)->is_LoadStore()) {
+      Node* u = n->fast_out(i);
+      if (u->is_LoadStore() || (u->is_Mem() && u->as_Mem()->is_mismatched_access())) {
         jobj->set_scalar_replaceable(false);
         return;
       }
--- a/src/hotspot/share/opto/escape.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/escape.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_ESCAPE_HPP
-#define SHARE_VM_OPTO_ESCAPE_HPP
+#ifndef SHARE_OPTO_ESCAPE_HPP
+#define SHARE_OPTO_ESCAPE_HPP
 
 #include "opto/addnode.hpp"
 #include "opto/node.hpp"
@@ -615,4 +615,4 @@
   assert(n != NULL && es != UnknownEscape, "sanity");
 }
 
-#endif // SHARE_VM_OPTO_ESCAPE_HPP
+#endif // SHARE_OPTO_ESCAPE_HPP
--- a/src/hotspot/share/opto/graphKit.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/graphKit.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_GRAPHKIT_HPP
-#define SHARE_VM_OPTO_GRAPHKIT_HPP
+#ifndef SHARE_OPTO_GRAPHKIT_HPP
+#define SHARE_OPTO_GRAPHKIT_HPP
 
 #include "ci/ciEnv.hpp"
 #include "ci/ciMethodData.hpp"
@@ -927,4 +927,4 @@
   ~PreserveReexecuteState();
 };
 
-#endif // SHARE_VM_OPTO_GRAPHKIT_HPP
+#endif // SHARE_OPTO_GRAPHKIT_HPP
--- a/src/hotspot/share/opto/idealGraphPrinter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/idealGraphPrinter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_IDEALGRAPHPRINTER_HPP
-#define SHARE_VM_OPTO_IDEALGRAPHPRINTER_HPP
+#ifndef SHARE_OPTO_IDEALGRAPHPRINTER_HPP
+#define SHARE_OPTO_IDEALGRAPHPRINTER_HPP
 
 #include "libadt/dict.hpp"
 #include "libadt/vectset.hpp"
@@ -139,4 +139,4 @@
 
 #endif
 
-#endif // SHARE_VM_OPTO_IDEALGRAPHPRINTER_HPP
+#endif // SHARE_OPTO_IDEALGRAPHPRINTER_HPP
--- a/src/hotspot/share/opto/idealKit.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/idealKit.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_IDEALKIT_HPP
-#define SHARE_VM_OPTO_IDEALKIT_HPP
+#ifndef SHARE_OPTO_IDEALKIT_HPP
+#define SHARE_OPTO_IDEALKIT_HPP
 
 #include "opto/addnode.hpp"
 #include "opto/cfgnode.hpp"
@@ -260,4 +260,4 @@
                             Node* parm3);
 };
 
-#endif // SHARE_VM_OPTO_IDEALKIT_HPP
+#endif // SHARE_OPTO_IDEALKIT_HPP
--- a/src/hotspot/share/opto/indexSet.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/indexSet.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_INDEXSET_HPP
-#define SHARE_VM_OPTO_INDEXSET_HPP
+#ifndef SHARE_OPTO_INDEXSET_HPP
+#define SHARE_OPTO_INDEXSET_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/resourceArea.hpp"
@@ -468,4 +468,4 @@
   }
 };
 
-#endif // SHARE_VM_OPTO_INDEXSET_HPP
+#endif // SHARE_OPTO_INDEXSET_HPP
--- a/src/hotspot/share/opto/intrinsicnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/intrinsicnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_INTRINSICNODE_HPP
-#define SHARE_VM_OPTO_INTRINSICNODE_HPP
+#ifndef SHARE_OPTO_INTRINSICNODE_HPP
+#define SHARE_OPTO_INTRINSICNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -216,4 +216,4 @@
   virtual uint ideal_reg() const { return Op_RegI; }
 };
 
-#endif // SHARE_VM_OPTO_INTRINSICNODE_HPP
+#endif // SHARE_OPTO_INTRINSICNODE_HPP
--- a/src/hotspot/share/opto/live.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/live.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_LIVE_HPP
-#define SHARE_VM_OPTO_LIVE_HPP
+#ifndef SHARE_OPTO_LIVE_HPP
+#define SHARE_OPTO_LIVE_HPP
 
 #include "libadt/vectset.hpp"
 #include "opto/block.hpp"
@@ -90,4 +90,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_LIVE_HPP
+#endif // SHARE_OPTO_LIVE_HPP
--- a/src/hotspot/share/opto/locknode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/locknode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_LOCKNODE_HPP
-#define SHARE_VM_OPTO_LOCKNODE_HPP
+#ifndef SHARE_OPTO_LOCKNODE_HPP
+#define SHARE_OPTO_LOCKNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -128,4 +128,4 @@
 
 };
 
-#endif // SHARE_VM_OPTO_LOCKNODE_HPP
+#endif // SHARE_OPTO_LOCKNODE_HPP
--- a/src/hotspot/share/opto/loopPredicate.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/loopPredicate.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -160,7 +160,7 @@
   // When called from beautify_loops() idom is not constructed yet.
   if (_idom != NULL) {
     Node* ridom = idom(rgn);
-    Node* nrdom = dom_lca(ridom, new_iff);
+    Node* nrdom = dom_lca_internal(ridom, new_iff);
     set_idom(rgn, nrdom, dom_depth(rgn));
   }
 
@@ -1308,7 +1308,7 @@
 // range checks between the pre and main loop to validate the value
 // of the main loop induction variable. Make a copy of the predicates
 // here with an opaque node as a place holder for the value (will be
-// updated by PhaseIdealLoop::update_skeleton_predicate()).
+// updated by PhaseIdealLoop::clone_skeleton_predicate()).
 ProjNode* PhaseIdealLoop::insert_skeleton_predicate(IfNode* iff, IdealLoopTree *loop,
                                                     ProjNode* proj, ProjNode *predicate_proj,
                                                     ProjNode* upper_bound_proj,
--- a/src/hotspot/share/opto/loopTransform.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/loopTransform.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1067,8 +1067,9 @@
 // CastII/ConvI2L nodes cause some data paths to die. For consistency,
 // the control paths must die too but the range checks were removed by
 // predication. The range checks that we add here guarantee that they do.
-void PhaseIdealLoop::duplicate_predicates_helper(Node* predicate, Node* castii, IdealLoopTree* outer_loop,
-                                                 LoopNode* outer_main_head, uint dd_main_head) {
+void PhaseIdealLoop::duplicate_predicates_helper(Node* predicate, Node* start, Node* end,
+                                                 IdealLoopTree* outer_loop, LoopNode* outer_main_head,
+                                                 uint dd_main_head) {
   if (predicate != NULL) {
     IfNode* iff = predicate->in(0)->as_If();
     ProjNode* uncommon_proj = iff->proj_out(1 - predicate->as_Proj()->_con);
@@ -1084,13 +1085,14 @@
       if (uncommon_proj->unique_ctrl_out() != rgn)
         break;
       if (iff->in(1)->Opcode() == Op_Opaque4) {
+        assert(skeleton_predicate_has_opaque(iff), "unexpected");
         // Clone the predicate twice and initialize one with the initial
         // value of the loop induction variable. Leave the other predicate
         // to be initialized when increasing the stride during loop unrolling.
-        prev_proj = update_skeleton_predicate(iff, castii, predicate, uncommon_proj, current_proj, outer_loop, prev_proj);
-        Node* value = new Opaque1Node(C, castii);
-        register_new_node(value, current_proj);
-        prev_proj = update_skeleton_predicate(iff, value, predicate, uncommon_proj, current_proj, outer_loop, prev_proj);
+        prev_proj = clone_skeleton_predicate(iff, start, predicate, uncommon_proj, current_proj, outer_loop, prev_proj);
+        assert(skeleton_predicate_has_opaque(prev_proj->in(0)->as_If()) == (start->Opcode() == Op_Opaque1), "");
+        prev_proj = clone_skeleton_predicate(iff, end, predicate, uncommon_proj, current_proj, outer_loop, prev_proj);
+        assert(skeleton_predicate_has_opaque(prev_proj->in(0)->as_If()) == (end->Opcode() == Op_Opaque1), "");
         // Remove the skeleton predicate from the pre-loop
         _igvn.replace_input_of(iff, 1, _igvn.intcon(1));
       }
@@ -1101,9 +1103,47 @@
   }
 }
 
-Node* PhaseIdealLoop::update_skeleton_predicate(Node* iff, Node* value, Node* predicate, Node* uncommon_proj,
-                                                Node* current_proj, IdealLoopTree* outer_loop, Node* prev_proj) {
-  bool clone = (outer_loop != NULL); // Clone the predicate?
+static bool skeleton_follow_inputs(Node* n, int op) {
+  return (n->is_Bool() ||
+          n->is_Cmp() ||
+          op == Op_AndL ||
+          op == Op_OrL ||
+          op == Op_RShiftL ||
+          op == Op_LShiftL ||
+          op == Op_AddL ||
+          op == Op_AddI ||
+          op == Op_MulL ||
+          op == Op_MulI ||
+          op == Op_SubL ||
+          op == Op_SubI ||
+          op == Op_ConvI2L);
+}
+
+bool PhaseIdealLoop::skeleton_predicate_has_opaque(IfNode* iff) {
+  ResourceMark rm;
+  Unique_Node_List wq;
+  wq.push(iff->in(1)->in(1));
+  for (uint i = 0; i < wq.size(); i++) {
+    Node* n = wq.at(i);
+    int op = n->Opcode();
+    if (skeleton_follow_inputs(n, op)) {
+      for (uint j = 1; j < n->req(); j++) {
+        Node* m = n->in(j);
+        if (m != NULL) {
+          wq.push(m);
+        }
+      }
+      continue;
+    }
+    if (op == Op_Opaque1) {
+      return true;
+    }
+  }
+  return false;
+}
+
+Node* PhaseIdealLoop::clone_skeleton_predicate(Node* iff, Node* value, Node* predicate, Node* uncommon_proj,
+                                               Node* current_proj, IdealLoopTree* outer_loop, Node* prev_proj) {
   Node_Stack to_clone(2);
   to_clone.push(iff->in(1), 1);
   uint current = C->unique();
@@ -1118,28 +1158,11 @@
     uint i = to_clone.index();
     Node* m = n->in(i);
     int op = m->Opcode();
-    if (m->is_Bool() ||
-        m->is_Cmp() ||
-        op == Op_AndL ||
-        op == Op_OrL ||
-        op == Op_RShiftL ||
-        op == Op_LShiftL ||
-        op == Op_AddL ||
-        op == Op_AddI ||
-        op == Op_MulL ||
-        op == Op_MulI ||
-        op == Op_SubL ||
-        op == Op_SubI ||
-        op == Op_ConvI2L) {
+    if (skeleton_follow_inputs(m, op)) {
         to_clone.push(m, 1);
         continue;
     }
     if (op == Op_Opaque1) {
-      if (!clone) {
-        // Update the input of the Opaque1Node and exit
-        _igvn.replace_input_of(m, 1, value);
-        return prev_proj;
-      }
       if (n->_idx < current) {
         n = n->clone();
       }
@@ -1161,20 +1184,17 @@
       }
       Node* next = to_clone.node();
       j = to_clone.index();
-      if (clone && cur->_idx >= current) {
+      if (next->in(j) != cur) {
+        assert(cur->_idx >= current || next->in(j)->Opcode() == Op_Opaque1, "new node or Opaque1 being replaced");
         if (next->_idx < current) {
           next = next->clone();
           register_new_node(next, current_proj);
           to_clone.set_node(next);
         }
-        assert(next->in(j) != cur, "input should have been cloned");
         next->set_req(j, cur);
       }
     }
   } while (result == NULL);
-  if (!clone) {
-    return NULL;
-  }
   assert(result->_idx >= current, "new node expected");
 
   Node* proj = predicate->clone();
@@ -1197,8 +1217,9 @@
   return proj;
 }
 
-void PhaseIdealLoop::duplicate_predicates(CountedLoopNode* pre_head, Node* castii, IdealLoopTree* outer_loop,
-                                          LoopNode* outer_main_head, uint dd_main_head) {
+void PhaseIdealLoop::duplicate_predicates(CountedLoopNode* pre_head, Node* start, Node* end,
+                                          IdealLoopTree* outer_loop, LoopNode* outer_main_head,
+                                          uint dd_main_head) {
   if (UseLoopPredicate) {
     Node* entry = pre_head->in(LoopNode::EntryControl);
     Node* predicate = NULL;
@@ -1214,8 +1235,8 @@
       }
     }
     predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate);
-    duplicate_predicates_helper(predicate, castii, outer_loop, outer_main_head, dd_main_head);
-    duplicate_predicates_helper(profile_predicate, castii, outer_loop, outer_main_head, dd_main_head);
+    duplicate_predicates_helper(predicate, start, end, outer_loop, outer_main_head, dd_main_head);
+    duplicate_predicates_helper(profile_predicate, start, end, outer_loop, outer_main_head, dd_main_head);
   }
 }
 
@@ -1362,7 +1383,9 @@
   // CastII for the main loop:
   Node* castii = cast_incr_before_loop( pre_incr, min_taken, main_head );
   assert(castii != NULL, "no castII inserted");
-  duplicate_predicates(pre_head, castii, outer_loop, outer_main_head, dd_main_head);
+  Node* opaque_castii = new Opaque1Node(C, castii);
+  register_new_node(opaque_castii, outer_main_head->in(LoopNode::EntryControl));
+  duplicate_predicates(pre_head, castii, opaque_castii, outer_loop, outer_main_head, dd_main_head);
 
   // Step B4: Shorten the pre-loop to run only 1 iteration (for now).
   // RCE and alignment may change this later.
@@ -1641,6 +1664,49 @@
   return !is_member(_phase->get_loop(n_c));
 }
 
+void PhaseIdealLoop::update_skeleton_predicates(Node* ctrl, CountedLoopNode* loop_head, Node* init, int stride_con) {
+  // Search for skeleton predicates and update them according to the new stride
+  Node* entry = ctrl;
+  Node* prev_proj = ctrl;
+  LoopNode* outer_loop_head = loop_head->skip_strip_mined();
+  IdealLoopTree* outer_loop = get_loop(outer_loop_head);
+  while (entry != NULL && entry->is_Proj() && entry->in(0)->is_If()) {
+    IfNode* iff = entry->in(0)->as_If();
+    ProjNode* proj = iff->proj_out(1 - entry->as_Proj()->_con);
+    if (proj->unique_ctrl_out()->Opcode() != Op_Halt) {
+      break;
+    }
+    if (iff->in(1)->Opcode() == Op_Opaque4) {
+      // Look for predicate with an Opaque1 node that can be used as a template
+      if (!skeleton_predicate_has_opaque(iff)) {
+        // No Opaque1 node? It's either the check for the first value
+        // of the first iteration or the check for the last value of
+        // the first iteration of an unrolled loop. We can't
+        // tell. Kill it in any case.
+        _igvn.replace_input_of(iff, 1, iff->in(1)->in(2));
+      } else {
+        // Add back the predicate for the value at the beginning of the first entry
+        prev_proj = clone_skeleton_predicate(iff, init, entry, proj, ctrl, outer_loop, prev_proj);
+        assert(!skeleton_predicate_has_opaque(prev_proj->in(0)->as_If()), "unexpected");
+        // Compute the value of the loop induction variable at the end of the
+        // first iteration of the unrolled loop: init + new_stride_con - init_inc
+        int init_inc = stride_con/loop_head->unrolled_count();
+        assert(init_inc != 0, "invalid loop increment");
+        int new_stride_con = stride_con * 2;
+        Node* max_value = _igvn.intcon(new_stride_con - init_inc);
+        max_value = new AddINode(init, max_value);
+        register_new_node(max_value, get_ctrl(iff->in(1)));
+        prev_proj = clone_skeleton_predicate(iff, max_value, entry, proj, ctrl, outer_loop, prev_proj);
+        assert(!skeleton_predicate_has_opaque(prev_proj->in(0)->as_If()), "unexpected");
+      }
+    }
+    entry = entry->in(0)->in(0);
+  }
+  if (prev_proj != ctrl) {
+    _igvn.replace_input_of(outer_loop_head, LoopNode::EntryControl, prev_proj);
+    set_idom(outer_loop_head, prev_proj, dom_depth(outer_loop_head));
+  }
+}
 
 //------------------------------do_unroll--------------------------------------
 // Unroll the loop body one step - make each trip do 2 iterations.
@@ -1706,29 +1772,7 @@
   assert(old_trip_count > 1 &&
       (!adjust_min_trip || stride_p <= (1<<3)*loop_head->unrolled_count()), "sanity");
 
-  if (UseLoopPredicate) {
-    // Search for skeleton predicates and update them according to the new stride
-    Node* entry = ctrl;
-    while (entry != NULL && entry->is_Proj() && entry->in(0)->is_If()) {
-      IfNode* iff = entry->in(0)->as_If();
-      ProjNode* proj = iff->proj_out(1 - entry->as_Proj()->_con);
-      if (proj->unique_ctrl_out()->Opcode() != Op_Halt) {
-        break;
-      }
-      if (iff->in(1)->Opcode() == Op_Opaque4) {
-        // Compute the value of the loop induction variable at the end of the
-        // first iteration of the unrolled loop: init + new_stride_con - init_inc
-        int init_inc = stride_con/loop_head->unrolled_count();
-        assert(init_inc != 0, "invalid loop increment");
-        int new_stride_con = stride_con * 2;
-        Node* max_value = _igvn.intcon(new_stride_con - init_inc);
-        max_value = new AddINode(init, max_value);
-        register_new_node(max_value, get_ctrl(iff->in(1)));
-        update_skeleton_predicate(iff, max_value);
-      }
-      entry = entry->in(0)->in(0);
-    }
-  }
+  update_skeleton_predicates(ctrl, loop_head, init, stride_con);
 
   // Adjust loop limit to keep valid iterations number after unroll.
   // Use (limit - stride) instead of (((limit - init)/stride) & (-2))*stride
@@ -2296,9 +2340,9 @@
 // eliminated by iteration splitting.
 Node* PhaseIdealLoop::add_range_check_predicate(IdealLoopTree* loop, CountedLoopNode* cl,
                                                 Node* predicate_proj, int scale_con, Node* offset,
-                                                Node* limit, jint stride_con) {
+                                                Node* limit, jint stride_con, Node* value) {
   bool overflow = false;
-  BoolNode* bol = rc_predicate(loop, predicate_proj, scale_con, offset, cl->init_trip(), NULL, stride_con, limit, (stride_con > 0) != (scale_con > 0), overflow);
+  BoolNode* bol = rc_predicate(loop, predicate_proj, scale_con, offset, value, NULL, stride_con, limit, (stride_con > 0) != (scale_con > 0), overflow);
   Node* opaque_bol = new Opaque4Node(C, bol, _igvn.intcon(1));
   register_new_node(opaque_bol, predicate_proj);
   IfNode* new_iff = NULL;
@@ -2497,7 +2541,23 @@
           add_constraint( stride_con, scale_con, offset, zero, limit, pre_ctrl, &pre_limit, &main_limit );
           // (0-offset)/scale could be outside of loop iterations range.
           conditional_rc = true;
-          predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con);
+          Node* init = cl->init_trip();
+          Node* opaque_init = new Opaque1Node(C, init);
+          register_new_node(opaque_init, predicate_proj);
+          // template predicate so it can be updated on next unrolling
+          predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, opaque_init);
+          assert(skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected");
+          // predicate on first value of first iteration
+          predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, init);
+          assert(!skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected");
+          int init_inc = stride_con/cl->unrolled_count();
+          assert(init_inc != 0, "invalid loop increment");
+          Node* max_value = _igvn.intcon(stride_con - init_inc);
+          max_value = new AddINode(init, max_value);
+          register_new_node(max_value, predicate_proj);
+          // predicate on last value of first iteration (in case unrolling has already happened)
+          predicate_proj = add_range_check_predicate(loop, cl, predicate_proj, scale_con, offset, limit, stride_con, max_value);
+          assert(!skeleton_predicate_has_opaque(predicate_proj->in(0)->as_If()), "unexpected");
         } else {
           if (PrintOpto) {
             tty->print_cr("missed RCE opportunity");
--- a/src/hotspot/share/opto/loopnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/loopnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_LOOPNODE_HPP
-#define SHARE_VM_OPTO_LOOPNODE_HPP
+#ifndef SHARE_OPTO_LOOPNODE_HPP
+#define SHARE_OPTO_LOOPNODE_HPP
 
 #include "opto/cfgnode.hpp"
 #include "opto/multnode.hpp"
@@ -747,12 +747,14 @@
   }
 
   Node* cast_incr_before_loop(Node* incr, Node* ctrl, Node* loop);
-  void duplicate_predicates_helper(Node* predicate, Node* castii, IdealLoopTree* outer_loop,
+  void duplicate_predicates_helper(Node* predicate, Node* start, Node* end, IdealLoopTree* outer_loop,
                                    LoopNode* outer_main_head, uint dd_main_head);
-  void duplicate_predicates(CountedLoopNode* pre_head, Node* castii, IdealLoopTree* outer_loop,
+  void duplicate_predicates(CountedLoopNode* pre_head, Node* start, Node* end, IdealLoopTree* outer_loop,
                             LoopNode* outer_main_head, uint dd_main_head);
-  Node* update_skeleton_predicate(Node* iff, Node* value, Node* predicate = NULL, Node* uncommon_proj = NULL,
-                                  Node* current_proj = NULL, IdealLoopTree* outer_loop = NULL, Node* prev_proj = NULL);
+  Node* clone_skeleton_predicate(Node* iff, Node* value, Node* predicate, Node* uncommon_proj,
+                                  Node* current_proj, IdealLoopTree* outer_loop, Node* prev_proj);
+  bool skeleton_predicate_has_opaque(IfNode* iff);
+  void update_skeleton_predicates(Node* ctrl, CountedLoopNode* loop_head, Node* init, int stride_con);
   void insert_loop_limit_check(ProjNode* limit_check_proj, Node* cmp_limit, Node* bol);
 
 public:
@@ -1128,7 +1130,7 @@
                                       Deoptimization::DeoptReason reason);
   Node* add_range_check_predicate(IdealLoopTree* loop, CountedLoopNode* cl,
                                   Node* predicate_proj, int scale_con, Node* offset,
-                                  Node* limit, jint stride_con);
+                                  Node* limit, jint stride_con, Node* value);
 
   // Helper function to collect predicate for eliminating the useless ones
   void collect_potentially_useful_predicates(IdealLoopTree *loop, Unique_Node_List &predicate_opaque1);
@@ -1304,6 +1306,14 @@
   bool identical_backtoback_ifs(Node *n);
   bool can_split_if(Node *n_ctrl);
 
+  // Determine if a method is too big for a/another round of split-if, based on
+  // a magic (approximate) ratio derived from the equally magic constant 35000,
+  // previously used for this purpose (but without relating to the node limit).
+  bool must_throttle_split_if() {
+    uint threshold = C->max_node_limit() * 2 / 5;
+    return C->live_nodes() > threshold;
+  }
+
   bool _created_loop_node;
 public:
   void set_created_loop_node() { _created_loop_node = true; }
@@ -1428,4 +1438,4 @@
   IdealLoopTree* current() { return _curnt; }  // Return current value of iterator.
 };
 
-#endif // SHARE_VM_OPTO_LOOPNODE_HPP
+#endif // SHARE_OPTO_LOOPNODE_HPP
--- a/src/hotspot/share/opto/loopopts.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/loopopts.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -532,6 +532,12 @@
               register_new_node(nn, get_ctrl(n));
               _igvn.replace_node(n, nn);
               return nn;
+            } else if ((adr1->in(AddPNode::Base) == adr4->in(AddPNode::Base)) &&
+                       (adr2->in(AddPNode::Base) == adr3->in(AddPNode::Base))) {
+              nn = new MulAddS2INode(mul_in1, mul_in2, mul_in4, mul_in3);
+              register_new_node(nn, get_ctrl(n));
+              _igvn.replace_node(n, nn);
+              return nn;
             }
           }
         }
@@ -1024,8 +1030,7 @@
     }
   }
 
-  // Use same limit as split_if_with_blocks_post
-  if( C->live_nodes() > 35000 ) return n; // Method too big
+  if (must_throttle_split_if()) return n;
 
   // Split 'n' through the merge point if it is profitable
   Node *phi = split_thru_phi( n, n_blk, policy );
@@ -1143,9 +1148,10 @@
   return true;
 }
 
-bool PhaseIdealLoop::can_split_if(Node *n_ctrl) {
-  if (C->live_nodes() > 35000) {
-    return false; // Method too big
+
+bool PhaseIdealLoop::can_split_if(Node* n_ctrl) {
+  if (must_throttle_split_if()) {
+    return false;
   }
 
   // Do not do 'split-if' if irreducible loops are present.
@@ -1462,12 +1468,13 @@
 // Check for aggressive application of 'split-if' optimization,
 // using basic block level info.
 void PhaseIdealLoop::split_if_with_blocks(VectorSet &visited, Node_Stack &nstack, bool last_round) {
-  Node *n = C->root();
-  visited.set(n->_idx); // first, mark node as visited
+  Node* root = C->root();
+  visited.set(root->_idx); // first, mark root as visited
   // Do pre-visit work for root
-  n = split_if_with_blocks_pre( n );
-  uint cnt = n->outcnt();
-  uint i   = 0;
+  Node* n   = split_if_with_blocks_pre(root);
+  uint  cnt = n->outcnt();
+  uint  i   = 0;
+
   while (true) {
     // Visit all children
     if (i < cnt) {
@@ -1475,7 +1482,7 @@
       ++i;
       if (use->outcnt() != 0 && !visited.test_set(use->_idx)) {
         // Now do pre-visit work for this use
-        use = split_if_with_blocks_pre( use );
+        use = split_if_with_blocks_pre(use);
         nstack.push(n, i); // Save parent and next use's index.
         n   = use;         // Process all children of current use.
         cnt = use->outcnt();
@@ -1486,7 +1493,10 @@
       // All of n's children have been processed, complete post-processing.
       if (cnt != 0 && !n->is_Con()) {
         assert(has_node(n), "no dead nodes");
-        split_if_with_blocks_post( n, last_round );
+        split_if_with_blocks_post(n, last_round);
+      }
+      if (must_throttle_split_if()) {
+        nstack.clear();
       }
       if (nstack.is_empty()) {
         // Finished all nodes on stack.
--- a/src/hotspot/share/opto/machnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/machnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MACHNODE_HPP
-#define SHARE_VM_OPTO_MACHNODE_HPP
+#ifndef SHARE_OPTO_MACHNODE_HPP
+#define SHARE_OPTO_MACHNODE_HPP
 
 #include "opto/callnode.hpp"
 #include "opto/matcher.hpp"
@@ -1102,4 +1102,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_MACHNODE_HPP
+#endif // SHARE_OPTO_MACHNODE_HPP
--- a/src/hotspot/share/opto/macro.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/macro.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MACRO_HPP
-#define SHARE_VM_OPTO_MACRO_HPP
+#ifndef SHARE_OPTO_MACRO_HPP
+#define SHARE_OPTO_MACRO_HPP
 
 #include "opto/phase.hpp"
 
@@ -217,4 +217,4 @@
                             intx lines);
 };
 
-#endif // SHARE_VM_OPTO_MACRO_HPP
+#endif // SHARE_OPTO_MACRO_HPP
--- a/src/hotspot/share/opto/matcher.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/matcher.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MATCHER_HPP
-#define SHARE_VM_OPTO_MATCHER_HPP
+#ifndef SHARE_OPTO_MATCHER_HPP
+#define SHARE_OPTO_MATCHER_HPP
 
 #include "libadt/vectset.hpp"
 #include "memory/resourceArea.hpp"
@@ -564,4 +564,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_MATCHER_HPP
+#endif // SHARE_OPTO_MATCHER_HPP
--- a/src/hotspot/share/opto/mathexactnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/mathexactnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MATHEXACTNODE_HPP
-#define SHARE_VM_OPTO_MATHEXACTNODE_HPP
+#ifndef SHARE_OPTO_MATHEXACTNODE_HPP
+#define SHARE_OPTO_MATHEXACTNODE_HPP
 
 #include "opto/multnode.hpp"
 #include "opto/node.hpp"
@@ -135,5 +135,4 @@
   static bool is_overflow(jlong v1, jlong v2);
 };
 
-#endif
-
+#endif // SHARE_OPTO_MATHEXACTNODE_HPP
--- a/src/hotspot/share/opto/memnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/memnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MEMNODE_HPP
-#define SHARE_VM_OPTO_MEMNODE_HPP
+#ifndef SHARE_OPTO_MEMNODE_HPP
+#define SHARE_OPTO_MEMNODE_HPP
 
 #include "opto/multnode.hpp"
 #include "opto/node.hpp"
@@ -1640,4 +1640,4 @@
   virtual const Type *bottom_type() const { return ( AllocatePrefetchStyle == 3 ) ? Type::MEMORY : Type::ABIO; }
 };
 
-#endif // SHARE_VM_OPTO_MEMNODE_HPP
+#endif // SHARE_OPTO_MEMNODE_HPP
--- a/src/hotspot/share/opto/movenode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/movenode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MOVENODE_HPP
-#define SHARE_VM_OPTO_MOVENODE_HPP
+#ifndef SHARE_OPTO_MOVENODE_HPP
+#define SHARE_OPTO_MOVENODE_HPP
 
 #include "opto/node.hpp"
 
@@ -152,5 +152,4 @@
 };
 
 
-#endif // SHARE_VM_OPTO_MOVENODE_HPP
-
+#endif // SHARE_OPTO_MOVENODE_HPP
--- a/src/hotspot/share/opto/mulnode.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/mulnode.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1401,3 +1401,12 @@
   return TypeF::make(fma(f1, f2, f3));
 #endif
 }
+
+//=============================================================================
+//------------------------------hash-------------------------------------------
+// Hash function for MulAddS2INode.  Operation is commutative with commutative pairs.
+// The hash function must return the same value when edge swapping is performed.
+uint MulAddS2INode::hash() const {
+  return (uintptr_t)in(1) + (uintptr_t)in(2) + (uintptr_t)in(3) + (uintptr_t)in(4) + Opcode();
+}
+
--- a/src/hotspot/share/opto/mulnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/mulnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MULNODE_HPP
-#define SHARE_VM_OPTO_MULNODE_HPP
+#ifndef SHARE_OPTO_MULNODE_HPP
+#define SHARE_OPTO_MULNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -289,6 +289,7 @@
 // Multiply shorts into integers and add them.
 // Semantics: I_OUT = S1 * S2 + S3 * S4
 class MulAddS2INode : public Node {
+  virtual uint hash() const;
 public:
   MulAddS2INode(Node* in1, Node *in2, Node *in3, Node* in4) : Node(0, in1, in2, in3, in4) {}
   virtual int Opcode() const;
@@ -296,4 +297,4 @@
   virtual uint ideal_reg() const { return Op_RegI; }
 };
 
-#endif // SHARE_VM_OPTO_MULNODE_HPP
+#endif // SHARE_OPTO_MULNODE_HPP
--- a/src/hotspot/share/opto/multnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/multnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_MULTNODE_HPP
-#define SHARE_VM_OPTO_MULTNODE_HPP
+#ifndef SHARE_OPTO_MULTNODE_HPP
+#define SHARE_OPTO_MULTNODE_HPP
 
 #include "opto/node.hpp"
 
@@ -105,4 +105,4 @@
   ProjNode* other_if_proj() const;
 };
 
-#endif // SHARE_VM_OPTO_MULTNODE_HPP
+#endif // SHARE_OPTO_MULTNODE_HPP
--- a/src/hotspot/share/opto/narrowptrnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/narrowptrnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_NARROWPTRNODE_HPP
-#define SHARE_VM_OPTO_NARROWPTRNODE_HPP
+#ifndef SHARE_OPTO_NARROWPTRNODE_HPP
+#define SHARE_OPTO_NARROWPTRNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -114,5 +114,4 @@
   virtual Node* Identity(PhaseGVN* phase);
 };
 
-#endif // SHARE_VM_OPTO_NARROWPTRNODE_HPP
-
+#endif // SHARE_OPTO_NARROWPTRNODE_HPP
--- a/src/hotspot/share/opto/node.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/node.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_NODE_HPP
-#define SHARE_VM_OPTO_NODE_HPP
+#ifndef SHARE_OPTO_NODE_HPP
+#define SHARE_OPTO_NODE_HPP
 
 #include "libadt/vectset.hpp"
 #include "opto/compile.hpp"
@@ -1742,4 +1742,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_NODE_HPP
+#endif // SHARE_OPTO_NODE_HPP
--- a/src/hotspot/share/opto/opaquenode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/opaquenode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_OPAQUENODE_HPP
-#define SHARE_VM_OPTO_OPAQUENODE_HPP
+#ifndef SHARE_OPTO_OPAQUENODE_HPP
+#define SHARE_OPTO_OPAQUENODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -133,5 +133,4 @@
   virtual const Type *bottom_type() const { return TypeInt::BOOL; }
 };
 
-#endif // SHARE_VM_OPTO_OPAQUENODE_HPP
-
+#endif // SHARE_OPTO_OPAQUENODE_HPP
--- a/src/hotspot/share/opto/opcodes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/opcodes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_OPCODES_HPP
-#define SHARE_VM_OPTO_OPCODES_HPP
+#ifndef SHARE_OPTO_OPCODES_HPP
+#define SHARE_OPTO_OPCODES_HPP
 
 // Build a big enum of class names to give them dense integer indices
 #define macro(x) Op_##x,
@@ -53,4 +53,4 @@
 // Table of names, indexed by Opcode
 extern const char *NodeClassNames[];
 
-#endif // SHARE_VM_OPTO_OPCODES_HPP
+#endif // SHARE_OPTO_OPCODES_HPP
--- a/src/hotspot/share/opto/optoreg.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/optoreg.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_OPTOREG_HPP
-#define SHARE_VM_OPTO_OPTOREG_HPP
+#ifndef SHARE_OPTO_OPTOREG_HPP
+#define SHARE_OPTO_OPTOREG_HPP
 
 #include "utilities/macros.hpp"
 
@@ -207,4 +207,4 @@
   OptoRegPair() { _second = OptoReg::Bad; _first = OptoReg::Bad; }
 };
 
-#endif // SHARE_VM_OPTO_OPTOREG_HPP
+#endif // SHARE_OPTO_OPTOREG_HPP
--- a/src/hotspot/share/opto/output.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/output.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_OUTPUT_HPP
-#define SHARE_VM_OPTO_OUTPUT_HPP
+#ifndef SHARE_OPTO_OUTPUT_HPP
+#define SHARE_OPTO_OUTPUT_HPP
 
 #include "opto/ad.hpp"
 #include "opto/block.hpp"
@@ -218,4 +218,4 @@
 
 };
 
-#endif // SHARE_VM_OPTO_OUTPUT_HPP
+#endif // SHARE_OPTO_OUTPUT_HPP
--- a/src/hotspot/share/opto/parse.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/parse.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_PARSE_HPP
-#define SHARE_VM_OPTO_PARSE_HPP
+#ifndef SHARE_OPTO_PARSE_HPP
+#define SHARE_OPTO_PARSE_HPP
 
 #include "ci/ciMethodData.hpp"
 #include "ci/ciTypeFlow.hpp"
@@ -629,4 +629,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_PARSE_HPP
+#endif // SHARE_OPTO_PARSE_HPP
--- a/src/hotspot/share/opto/phase.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/phase.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_PHASE_HPP
-#define SHARE_VM_OPTO_PHASE_HPP
+#ifndef SHARE_OPTO_PHASE_HPP
+#define SHARE_OPTO_PHASE_HPP
 
 #include "runtime/timer.hpp"
 
@@ -140,4 +140,4 @@
   static void print_timers();
 };
 
-#endif // SHARE_VM_OPTO_PHASE_HPP
+#endif // SHARE_OPTO_PHASE_HPP
--- a/src/hotspot/share/opto/phaseX.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/phaseX.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_PHASEX_HPP
-#define SHARE_VM_OPTO_PHASEX_HPP
+#ifndef SHARE_OPTO_PHASEX_HPP
+#define SHARE_OPTO_PHASEX_HPP
 
 #include "libadt/dict.hpp"
 #include "libadt/vectset.hpp"
@@ -639,4 +639,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_PHASEX_HPP
+#endif // SHARE_OPTO_PHASEX_HPP
--- a/src/hotspot/share/opto/phasetype.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/phasetype.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_PHASETYPE_HPP
-#define SHARE_VM_OPTO_PHASETYPE_HPP
+#ifndef SHARE_OPTO_PHASETYPE_HPP
+#define SHARE_OPTO_PHASETYPE_HPP
 
 enum CompilerPhaseType {
   PHASE_BEFORE_STRINGOPTS,
@@ -101,4 +101,4 @@
   }
 };
 
-#endif //SHARE_VM_OPTO_PHASETYPE_HPP
+#endif // SHARE_OPTO_PHASETYPE_HPP
--- a/src/hotspot/share/opto/regalloc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/regalloc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_REGALLOC_HPP
-#define SHARE_VM_OPTO_REGALLOC_HPP
+#ifndef SHARE_OPTO_REGALLOC_HPP
+#define SHARE_OPTO_REGALLOC_HPP
 
 #include "code/vmreg.hpp"
 #include "opto/block.hpp"
@@ -132,4 +132,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_REGALLOC_HPP
+#endif // SHARE_OPTO_REGALLOC_HPP
--- a/src/hotspot/share/opto/regmask.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/regmask.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_REGMASK_HPP
-#define SHARE_VM_OPTO_REGMASK_HPP
+#ifndef SHARE_OPTO_REGMASK_HPP
+#define SHARE_OPTO_REGMASK_HPP
 
 #include "code/vmreg.hpp"
 #include "opto/optoreg.hpp"
@@ -313,4 +313,4 @@
 // Do not use this constant directly in client code!
 #undef RM_SIZE
 
-#endif // SHARE_VM_OPTO_REGMASK_HPP
+#endif // SHARE_OPTO_REGMASK_HPP
--- a/src/hotspot/share/opto/replacednodes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/replacednodes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_REPLACEDNODES_HPP
-#define SHARE_VM_OPTO_REPLACEDNODES_HPP
+#ifndef SHARE_OPTO_REPLACEDNODES_HPP
+#define SHARE_OPTO_REPLACEDNODES_HPP
 
 #include "opto/connode.hpp"
 
@@ -78,4 +78,4 @@
   void apply(Compile* C, Node* ctl);
 };
 
-#endif // SHARE_VM_OPTO_REPLACEDNODES_HPP
+#endif // SHARE_OPTO_REPLACEDNODES_HPP
--- a/src/hotspot/share/opto/rootnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/rootnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_ROOTNODE_HPP
-#define SHARE_VM_OPTO_ROOTNODE_HPP
+#ifndef SHARE_OPTO_ROOTNODE_HPP
+#define SHARE_OPTO_ROOTNODE_HPP
 
 #include "opto/loopnode.hpp"
 
@@ -70,4 +70,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_ROOTNODE_HPP
+#endif // SHARE_OPTO_ROOTNODE_HPP
--- a/src/hotspot/share/opto/runtime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/runtime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_RUNTIME_HPP
-#define SHARE_VM_OPTO_RUNTIME_HPP
+#ifndef SHARE_OPTO_RUNTIME_HPP
+#define SHARE_OPTO_RUNTIME_HPP
 
 #include "code/codeBlob.hpp"
 #include "opto/machnode.hpp"
@@ -331,4 +331,4 @@
 
 };
 
-#endif // SHARE_VM_OPTO_RUNTIME_HPP
+#endif // SHARE_OPTO_RUNTIME_HPP
--- a/src/hotspot/share/opto/stringopts.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/stringopts.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_STRINGOPTS_HPP
-#define SHARE_VM_OPTO_STRINGOPTS_HPP
+#ifndef SHARE_OPTO_STRINGOPTS_HPP
+#define SHARE_OPTO_STRINGOPTS_HPP
 
 #include "opto/node.hpp"
 #include "opto/phaseX.hpp"
@@ -115,4 +115,4 @@
   PhaseStringOpts(PhaseGVN* gvn, Unique_Node_List* worklist);
 };
 
-#endif // SHARE_VM_OPTO_STRINGOPTS_HPP
+#endif // SHARE_OPTO_STRINGOPTS_HPP
--- a/src/hotspot/share/opto/subnode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/subnode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_SUBNODE_HPP
-#define SHARE_VM_OPTO_SUBNODE_HPP
+#ifndef SHARE_OPTO_SUBNODE_HPP
+#define SHARE_OPTO_SUBNODE_HPP
 
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
@@ -502,4 +502,4 @@
   virtual uint ideal_reg() const { return Op_RegI; }
 };
 
-#endif // SHARE_VM_OPTO_SUBNODE_HPP
+#endif // SHARE_OPTO_SUBNODE_HPP
--- a/src/hotspot/share/opto/superword.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/superword.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1445,7 +1445,7 @@
     Node* t1 = s1->fast_out(i);
 
     // Only allow operand swap on commuting operations
-    if (!t1->is_Add() && !t1->is_Mul()) {
+    if (!t1->is_Add() && !t1->is_Mul() && !VectorNode::is_muladds2i(t1)) {
       break;
     }
 
@@ -1500,9 +1500,23 @@
       if ((i1 == (3-i2)) && (u2->is_Add() || u2->is_Mul())) {
         // Further analysis relies on operands position matching.
         u2->swap_edges(i1, i2);
+      } else if (VectorNode::is_muladds2i(u2) && u1 != u2) {
+        if (i1 == 5 - i2) { // ((i1 == 3 && i2 == 2) || (i1 == 2 && i2 == 3) || (i1 == 1 && i2 == 4) || (i1 == 4 && i2 == 1))
+          u2->swap_edges(1, 2);
+          u2->swap_edges(3, 4);
+        }
+        if (i1 == 3 - i2 || i1 == 7 - i2) { // ((i1 == 1 && i2 == 2) || (i1 == 2 && i2 == 1) || (i1 == 3 && i2 == 4) || (i1 == 4 && i2 == 3))
+          u2->swap_edges(2, 3);
+          u2->swap_edges(1, 4);
+        }
+        return false; // Just swap the edges, the muladds2i nodes get packed in follow_use_defs
       } else {
         return false;
       }
+    } else if (i1 == i2 && VectorNode::is_muladds2i(u2) && u1 != u2) {
+      u2->swap_edges(1, 3);
+      u2->swap_edges(2, 4);
+      return false; // Just swap the edges, the muladds2i nodes get packed in follow_use_defs
     }
   } while (i1 < ct);
   return true;
--- a/src/hotspot/share/opto/superword.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/superword.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_OPTO_SUPERWORD_HPP
-#define SHARE_VM_OPTO_SUPERWORD_HPP
+#ifndef SHARE_OPTO_SUPERWORD_HPP
+#define SHARE_OPTO_SUPERWORD_HPP
 
 #include "opto/loopnode.hpp"
 #include "opto/node.hpp"
@@ -695,4 +695,4 @@
 #endif
 };
 
-#endif // SHARE_VM_OPTO_SUPERWORD_HPP
+#endif // SHARE_OPTO_SUPERWORD_HPP
--- a/src/hotspot/share/opto/type.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/type.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_OPTO_TYPE_HPP
-#define SHARE_VM_OPTO_TYPE_HPP
+#ifndef SHARE_OPTO_TYPE_HPP
+#define SHARE_OPTO_TYPE_HPP
 
 #include "opto/adlcVMDeps.hpp"
 #include "runtime/handles.hpp"
@@ -1845,4 +1845,4 @@
 
 #endif
 
-#endif // SHARE_VM_OPTO_TYPE_HPP
+#endif // SHARE_OPTO_TYPE_HPP
--- a/src/hotspot/share/opto/vectornode.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/opto/vectornode.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-#ifndef SHARE_VM_OPTO_VECTORNODE_HPP
-#define SHARE_VM_OPTO_VECTORNODE_HPP
+#ifndef SHARE_OPTO_VECTORNODE_HPP
+#define SHARE_OPTO_VECTORNODE_HPP
 
 #include "opto/matcher.hpp"
 #include "opto/memnode.hpp"
@@ -859,4 +859,4 @@
   virtual const Type *Value(PhaseGVN *phase) const { return TypeInt::INT; }
 };
 
-#endif // SHARE_VM_OPTO_VECTORNODE_HPP
+#endif // SHARE_OPTO_VECTORNODE_HPP
--- a/src/hotspot/share/prims/forte.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/forte.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_FORTE_HPP
-#define SHARE_VM_PRIMS_FORTE_HPP
+#ifndef SHARE_PRIMS_FORTE_HPP
+#define SHARE_PRIMS_FORTE_HPP
 
 // Interface to Forte support.
 
@@ -34,4 +34,4 @@
                                                  // register internal VM stub
 };
 
-#endif // SHARE_VM_PRIMS_FORTE_HPP
+#endif // SHARE_PRIMS_FORTE_HPP
--- a/src/hotspot/share/prims/jni.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jni.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -2428,9 +2428,7 @@
   HOTSPOT_JNI_GETSTRINGLENGTH_ENTRY(env, string);
   jsize ret = 0;
   oop s = JNIHandles::resolve_non_null(string);
-  if (java_lang_String::value(s) != NULL) {
-    ret = java_lang_String::length(s);
-  }
+  ret = java_lang_String::length(s);
  HOTSPOT_JNI_GETSTRINGLENGTH_RETURN(ret);
   return ret;
 JNI_END
@@ -2444,7 +2442,7 @@
   oop s = JNIHandles::resolve_non_null(string);
   typeArrayOop s_value = java_lang_String::value(s);
   if (s_value != NULL) {
-    int s_len = java_lang_String::length(s);
+    int s_len = java_lang_String::length(s, s_value);
     bool is_latin1 = java_lang_String::is_latin1(s);
     buf = NEW_C_HEAP_ARRAY_RETURN_NULL(jchar, s_len + 1, mtInternal);  // add one for zero termination
     /* JNI Specification states return NULL on OOM */
@@ -2504,11 +2502,8 @@
 JNI_ENTRY(jsize, jni_GetStringUTFLength(JNIEnv *env, jstring string))
   JNIWrapper("GetStringUTFLength");
  HOTSPOT_JNI_GETSTRINGUTFLENGTH_ENTRY(env, string);
-  jsize ret = 0;
   oop java_string = JNIHandles::resolve_non_null(string);
-  if (java_lang_String::value(java_string) != NULL) {
-    ret = java_lang_String::utf8_length(java_string);
-  }
+  jsize ret = java_lang_String::utf8_length(java_string);
   HOTSPOT_JNI_GETSTRINGUTFLENGTH_RETURN(ret);
   return ret;
 JNI_END
@@ -2519,12 +2514,13 @@
  HOTSPOT_JNI_GETSTRINGUTFCHARS_ENTRY(env, string, (uintptr_t *) isCopy);
   char* result = NULL;
   oop java_string = JNIHandles::resolve_non_null(string);
-  if (java_lang_String::value(java_string) != NULL) {
-    size_t length = java_lang_String::utf8_length(java_string);
+  typeArrayOop s_value = java_lang_String::value(java_string);
+  if (s_value != NULL) {
+    size_t length = java_lang_String::utf8_length(java_string, s_value);
     /* JNI Specification states return NULL on OOM */
     result = AllocateHeap(length + 1, mtInternal, 0, AllocFailStrategy::RETURN_NULL);
     if (result != NULL) {
-      java_lang_String::as_utf8_string(java_string, result, (int) length + 1);
+      java_lang_String::as_utf8_string(java_string, s_value, result, (int) length + 1);
       if (isCopy != NULL) {
         *isCopy = JNI_TRUE;
       }
@@ -3097,12 +3093,12 @@
  HOTSPOT_JNI_GETSTRINGREGION_ENTRY(env, string, start, len, buf);
   DT_VOID_RETURN_MARK(GetStringRegion);
   oop s = JNIHandles::resolve_non_null(string);
-  int s_len = java_lang_String::length(s);
+  typeArrayOop s_value = java_lang_String::value(s);
+  int s_len = java_lang_String::length(s, s_value);
   if (start < 0 || len < 0 || start > s_len - len) {
     THROW(vmSymbols::java_lang_StringIndexOutOfBoundsException());
   } else {
     if (len > 0) {
-      typeArrayOop s_value = java_lang_String::value(s);
       bool is_latin1 = java_lang_String::is_latin1(s);
       if (!is_latin1) {
         ArrayAccess<>::arraycopy_to_native(s_value, typeArrayOopDesc::element_offset<jchar>(start),
@@ -3124,14 +3120,15 @@
  HOTSPOT_JNI_GETSTRINGUTFREGION_ENTRY(env, string, start, len, buf);
   DT_VOID_RETURN_MARK(GetStringUTFRegion);
   oop s = JNIHandles::resolve_non_null(string);
-  int s_len = java_lang_String::length(s);
+  typeArrayOop s_value = java_lang_String::value(s);
+  int s_len = java_lang_String::length(s, s_value);
   if (start < 0 || len < 0 || start > s_len - len) {
     THROW(vmSymbols::java_lang_StringIndexOutOfBoundsException());
   } else {
     //%note jni_7
     if (len > 0) {
       // Assume the buffer is large enough as the JNI spec. does not require user error checking
-      java_lang_String::as_utf8_string(s, start, len, buf, INT_MAX);
+      java_lang_String::as_utf8_string(s, s_value, start, len, buf, INT_MAX);
       // as_utf8_string null-terminates the result string
     } else {
       // JDK null-terminates the buffer even in len is zero
@@ -3203,7 +3200,7 @@
     ret = (jchar*) s_value->base(T_CHAR);
   } else {
     // Inflate latin1 encoded string to UTF16
-    int s_len = java_lang_String::length(s);
+    int s_len = java_lang_String::length(s, s_value);
     ret = NEW_C_HEAP_ARRAY_RETURN_NULL(jchar, s_len + 1, mtInternal);  // add one for zero termination
     /* JNI Specification states return NULL on OOM */
     if (ret != NULL) {
--- a/src/hotspot/share/prims/jniCheck.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jniCheck.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JNICHECK_HPP
-#define SHARE_VM_PRIMS_JNICHECK_HPP
+#ifndef SHARE_PRIMS_JNICHECK_HPP
+#define SHARE_PRIMS_JNICHECK_HPP
 
 #include "runtime/thread.hpp"
 
@@ -56,4 +56,4 @@
   static Method* validate_jmethod_id(JavaThread* thr, jmethodID method_id);
 };
 
-#endif // SHARE_VM_PRIMS_JNICHECK_HPP
+#endif // SHARE_PRIMS_JNICHECK_HPP
--- a/src/hotspot/share/prims/jniExport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jniExport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JNI_EXPORT_HPP
-#define SHARE_VM_PRIMS_JNI_EXPORT_HPP
+#ifndef SHARE_PRIMS_JNIEXPORT_HPP
+#define SHARE_PRIMS_JNIEXPORT_HPP
 
 #include "jni.h"
 #include "prims/jvmtiExport.hpp"
@@ -39,4 +39,4 @@
   }
 };
 
-#endif // SHARE_VM_PRIMS_JNI_EXPORT_HPP
+#endif // SHARE_PRIMS_JNIEXPORT_HPP
--- a/src/hotspot/share/prims/jniFastGetField.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jniFastGetField.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JNIFASTGETFIELD_HPP
-#define SHARE_VM_PRIMS_JNIFASTGETFIELD_HPP
+#ifndef SHARE_PRIMS_JNIFASTGETFIELD_HPP
+#define SHARE_PRIMS_JNIFASTGETFIELD_HPP
 
 #include "memory/allocation.hpp"
 #include "prims/jvm_misc.hpp"
@@ -99,4 +99,4 @@
   static address find_slowcase_pc(address pc);
 };
 
-#endif // SHARE_VM_PRIMS_JNIFASTGETFIELD_HPP
+#endif // SHARE_PRIMS_JNIFASTGETFIELD_HPP
--- a/src/hotspot/share/prims/jvm.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvm.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -873,7 +873,6 @@
   if (result != NULL) {
     oop mirror = JNIHandles::resolve_non_null(result);
     Klass* to_class = java_lang_Class::as_Klass(mirror);
-    ClassLoaderData::class_loader_data(h_loader())->record_dependency(to_class);
   }
 
   if (log_is_enabled(Debug, class, resolve) && result != NULL) {
--- a/src/hotspot/share/prims/jvm_misc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvm_misc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVM_MISC_HPP
-#define SHARE_VM_PRIMS_JVM_MISC_HPP
+#ifndef SHARE_PRIMS_JVM_MISC_HPP
+#define SHARE_PRIMS_JVM_MISC_HPP
 
 #include "jni.h"
 #include "runtime/handles.hpp"
@@ -78,4 +78,4 @@
 address jni_GetFloatField_addr();
 address jni_GetDoubleField_addr();
 
-#endif // SHARE_VM_PRIMS_JVM_MISC_HPP
+#endif // SHARE_PRIMS_JVM_MISC_HPP
--- a/src/hotspot/share/prims/jvmtiAgentThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiAgentThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIAGENTTHREAD_HPP
-#define SHARE_VM_PRIMS_JVMTIAGENTTHREAD_HPP
+#ifndef SHARE_PRIMS_JVMTIAGENTTHREAD_HPP
+#define SHARE_PRIMS_JVMTIAGENTTHREAD_HPP
 
 #include "jvmtifiles/jvmtiEnv.hpp"
 
@@ -48,4 +48,4 @@
   void call_start_function();
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIAGENTTHREAD_HPP
+#endif // SHARE_PRIMS_JVMTIAGENTTHREAD_HPP
--- a/src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
-#define SHARE_VM_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
+#ifndef SHARE_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
+#define SHARE_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
 
 #include "jvmtifiles/jvmtiEnv.hpp"
 
@@ -143,4 +143,4 @@
   static void copy_bytecodes(const methodHandle& method, unsigned char* bytecodes);
 };
 
-#endif // SHARE_VM_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
+#endif // SHARE_PRIMS_JVMTICLASSFILERECONSTITUTER_HPP
--- a/src/hotspot/share/prims/jvmtiCodeBlobEvents.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiCodeBlobEvents.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTICODEBLOBEVENTS_HPP
-#define SHARE_VM_PRIMS_JVMTICODEBLOBEVENTS_HPP
+#ifndef SHARE_PRIMS_JVMTICODEBLOBEVENTS_HPP
+#define SHARE_PRIMS_JVMTICODEBLOBEVENTS_HPP
 
 #include "jvmtifiles/jvmti.h"
 
@@ -53,4 +53,4 @@
                                             jint *map_length);
 };
 
-#endif // SHARE_VM_PRIMS_JVMTICODEBLOBEVENTS_HPP
+#endif // SHARE_PRIMS_JVMTICODEBLOBEVENTS_HPP
--- a/src/hotspot/share/prims/jvmtiEnter.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiEnter.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
-#define SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
+#ifndef SHARE_PRIMS_JVMTIENTER_INLINE_HPP
+#define SHARE_PRIMS_JVMTIENTER_INLINE_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "jvmtifiles/jvmtiEnv.hpp"
@@ -31,4 +31,4 @@
 #include "prims/jvmtiImpl.hpp"
 #include "runtime/interfaceSupport.inline.hpp"
 
-#endif // SHARE_VM_PRIMS_JVMTIENTER_INLINE_HPP
+#endif // SHARE_PRIMS_JVMTIENTER_INLINE_HPP
--- a/src/hotspot/share/prims/jvmtiEnvBase.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiEnvBase.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIENVBASE_HPP
-#define SHARE_VM_PRIMS_JVMTIENVBASE_HPP
+#ifndef SHARE_PRIMS_JVMTIENVBASE_HPP
+#define SHARE_PRIMS_JVMTIENVBASE_HPP
 
 #include "classfile/classLoader.hpp"
 #include "prims/jvmtiEnvThreadState.hpp"
@@ -644,4 +644,4 @@
   jvmtiError get_all_modules(JvmtiEnv* env, jint* module_count_ptr, jobject** modules_ptr);
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIENVBASE_HPP
+#endif // SHARE_PRIMS_JVMTIENVBASE_HPP
--- a/src/hotspot/share/prims/jvmtiEnvThreadState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiEnvThreadState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIENVTHREADSTATE_HPP
-#define SHARE_VM_PRIMS_JVMTIENVTHREADSTATE_HPP
+#ifndef SHARE_PRIMS_JVMTIENVTHREADSTATE_HPP
+#define SHARE_PRIMS_JVMTIENVTHREADSTATE_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/allocation.hpp"
@@ -182,4 +182,4 @@
 
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIENVTHREADSTATE_HPP
+#endif // SHARE_PRIMS_JVMTIENVTHREADSTATE_HPP
--- a/src/hotspot/share/prims/jvmtiEventController.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiEventController.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_HPP
-#define SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_HPP
+#ifndef SHARE_PRIMS_JVMTIEVENTCONTROLLER_HPP
+#define SHARE_PRIMS_JVMTIEVENTCONTROLLER_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/allocation.hpp"
@@ -241,4 +241,4 @@
   static void vm_death();
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_HPP
+#endif // SHARE_PRIMS_JVMTIEVENTCONTROLLER_HPP
--- a/src/hotspot/share/prims/jvmtiEventController.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiEventController.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
-#define SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
+#ifndef SHARE_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
+#define SHARE_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
 
 #include "prims/jvmtiEventController.hpp"
 #include "prims/jvmtiImpl.hpp"
@@ -107,4 +107,4 @@
   return _universal_global_event_enabled.is_enabled(event_type);
 }
 
-#endif // SHARE_VM_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
+#endif // SHARE_PRIMS_JVMTIEVENTCONTROLLER_INLINE_HPP
--- a/src/hotspot/share/prims/jvmtiExport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiExport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIEXPORT_HPP
-#define SHARE_VM_PRIMS_JVMTIEXPORT_HPP
+#ifndef SHARE_PRIMS_JVMTIEXPORT_HPP
+#define SHARE_PRIMS_JVMTIEXPORT_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/allocation.hpp"
@@ -601,4 +601,4 @@
   }
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIEXPORT_HPP
+#endif // SHARE_PRIMS_JVMTIEXPORT_HPP
--- a/src/hotspot/share/prims/jvmtiExtensions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiExtensions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIEXTENSIONS_HPP
-#define SHARE_VM_PRIMS_JVMTIEXTENSIONS_HPP
+#ifndef SHARE_PRIMS_JVMTIEXTENSIONS_HPP
+#define SHARE_PRIMS_JVMTIEXTENSIONS_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "jvmtifiles/jvmtiEnv.hpp"
@@ -58,4 +58,4 @@
                                        jvmtiExtensionEvent callback);
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIEXTENSIONS_HPP
+#endif // SHARE_PRIMS_JVMTIEXTENSIONS_HPP
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIGETLOADEDCLASSES_HPP
-#define SHARE_VM_PRIMS_JVMTIGETLOADEDCLASSES_HPP
+#ifndef SHARE_PRIMS_JVMTIGETLOADEDCLASSES_HPP
+#define SHARE_PRIMS_JVMTIGETLOADEDCLASSES_HPP
 
 #include "jvmtifiles/jvmtiEnv.hpp"
 
@@ -34,4 +34,4 @@
                                           jint* classCountPtr, jclass** classesPtr);
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIGETLOADEDCLASSES_HPP
+#endif // SHARE_PRIMS_JVMTIGETLOADEDCLASSES_HPP
--- a/src/hotspot/share/prims/jvmtiImpl.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiImpl.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIIMPL_HPP
-#define SHARE_VM_PRIMS_JVMTIIMPL_HPP
+#ifndef SHARE_PRIMS_JVMTIIMPL_HPP
+#define SHARE_PRIMS_JVMTIIMPL_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "jvmtifiles/jvmti.h"
@@ -532,4 +532,4 @@
 // Utility macro that checks for NULL pointers:
 #define NULL_CHECK(X, Y) if ((X) == NULL) { return (Y); }
 
-#endif // SHARE_VM_PRIMS_JVMTIIMPL_HPP
+#endif // SHARE_PRIMS_JVMTIIMPL_HPP
--- a/src/hotspot/share/prims/jvmtiManageCapabilities.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiManageCapabilities.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIMANAGECAPABILITIES_HPP
-#define SHARE_VM_PRIMS_JVMTIMANAGECAPABILITIES_HPP
+#ifndef SHARE_PRIMS_JVMTIMANAGECAPABILITIES_HPP
+#define SHARE_PRIMS_JVMTIMANAGECAPABILITIES_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/allocation.hpp"
@@ -82,4 +82,4 @@
 #endif
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIMANAGECAPABILITIES_HPP
+#endif // SHARE_PRIMS_JVMTIMANAGECAPABILITIES_HPP
--- a/src/hotspot/share/prims/jvmtiRawMonitor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiRawMonitor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIRAWMONITOR_HPP
-#define SHARE_VM_PRIMS_JVMTIRAWMONITOR_HPP
+#ifndef SHARE_PRIMS_JVMTIRAWMONITOR_HPP
+#define SHARE_PRIMS_JVMTIRAWMONITOR_HPP
 
 #include "runtime/objectMonitor.hpp"
 #include "utilities/growableArray.hpp"
@@ -104,4 +104,4 @@
   static void transition_raw_monitors();
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIRAWMONITOR_HPP
+#endif // SHARE_PRIMS_JVMTIRAWMONITOR_HPP
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP
-#define SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP
+#ifndef SHARE_PRIMS_JVMTIREDEFINECLASSES_HPP
+#define SHARE_PRIMS_JVMTIREDEFINECLASSES_HPP
 
 #include "jvmtifiles/jvmtiEnv.hpp"
 #include "memory/oopFactory.hpp"
@@ -552,4 +552,4 @@
   // Error printing
   void print_on_error(outputStream* st) const;
 };
-#endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES_HPP
+#endif // SHARE_PRIMS_JVMTIREDEFINECLASSES_HPP
--- a/src/hotspot/share/prims/jvmtiTagMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiTagMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -24,8 +24,8 @@
 
 // JvmtiTagMap
 
-#ifndef SHARE_VM_PRIMS_JVMTITAGMAP_HPP
-#define SHARE_VM_PRIMS_JVMTITAGMAP_HPP
+#ifndef SHARE_PRIMS_JVMTITAGMAP_HPP
+#define SHARE_PRIMS_JVMTITAGMAP_HPP
 
 #include "gc/shared/collectedHeap.hpp"
 #include "jvmtifiles/jvmti.h"
@@ -125,4 +125,4 @@
       BoolObjectClosure* is_alive, OopClosure* f) NOT_JVMTI_RETURN;
 };
 
-#endif // SHARE_VM_PRIMS_JVMTITAGMAP_HPP
+#endif // SHARE_PRIMS_JVMTITAGMAP_HPP
--- a/src/hotspot/share/prims/jvmtiThreadState.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiThreadState.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTITHREADSTATE_HPP
-#define SHARE_VM_PRIMS_JVMTITHREADSTATE_HPP
+#ifndef SHARE_PRIMS_JVMTITHREADSTATE_HPP
+#define SHARE_PRIMS_JVMTITHREADSTATE_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/allocation.hpp"
@@ -413,4 +413,4 @@
   }
 };
 
-#endif // SHARE_VM_PRIMS_JVMTITHREADSTATE_HPP
+#endif // SHARE_PRIMS_JVMTITHREADSTATE_HPP
--- a/src/hotspot/share/prims/jvmtiThreadState.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiThreadState.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTITHREADSTATE_INLINE_HPP
-#define SHARE_VM_PRIMS_JVMTITHREADSTATE_INLINE_HPP
+#ifndef SHARE_PRIMS_JVMTITHREADSTATE_INLINE_HPP
+#define SHARE_PRIMS_JVMTITHREADSTATE_INLINE_HPP
 
 #include "prims/jvmtiEnvThreadState.hpp"
 #include "prims/jvmtiThreadState.hpp"
@@ -95,4 +95,4 @@
   return state;
 }
 
-#endif // SHARE_VM_PRIMS_JVMTITHREADSTATE_INLINE_HPP
+#endif // SHARE_PRIMS_JVMTITHREADSTATE_INLINE_HPP
--- a/src/hotspot/share/prims/jvmtiTrace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiTrace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTITRACE_HPP
-#define SHARE_VM_PRIMS_JVMTITRACE_HPP
+#ifndef SHARE_PRIMS_JVMTITRACE_HPP
+#define SHARE_PRIMS_JVMTITRACE_HPP
 
 #include "classfile/systemDictionary.hpp"
 #include "jvmtifiles/jvmti.h"
@@ -109,4 +109,4 @@
 
 #endif /*JVMTI_TRACE */
 
-#endif // SHARE_VM_PRIMS_JVMTITRACE_HPP
+#endif // SHARE_PRIMS_JVMTITRACE_HPP
--- a/src/hotspot/share/prims/jvmtiUtil.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/jvmtiUtil.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_JVMTIUTIL_HPP
-#define SHARE_VM_PRIMS_JVMTIUTIL_HPP
+#ifndef SHARE_PRIMS_JVMTIUTIL_HPP
+#define SHARE_PRIMS_JVMTIUTIL_HPP
 
 #include "jvmtifiles/jvmti.h"
 #include "memory/resourceArea.hpp"
@@ -92,4 +92,4 @@
 
 };
 
-#endif // SHARE_VM_PRIMS_JVMTIUTIL_HPP
+#endif // SHARE_PRIMS_JVMTIUTIL_HPP
--- a/src/hotspot/share/prims/methodComparator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/methodComparator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_METHODCOMPARATOR_HPP
-#define SHARE_VM_PRIMS_METHODCOMPARATOR_HPP
+#ifndef SHARE_PRIMS_METHODCOMPARATOR_HPP
+#define SHARE_PRIMS_METHODCOMPARATOR_HPP
 
 #include "interpreter/bytecodeStream.hpp"
 #include "oops/constantPool.hpp"
@@ -52,4 +52,4 @@
 
 };
 
-#endif // SHARE_VM_PRIMS_METHODCOMPARATOR_HPP
+#endif // SHARE_PRIMS_METHODCOMPARATOR_HPP
--- a/src/hotspot/share/prims/methodHandles.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/methodHandles.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_METHODHANDLES_HPP
-#define SHARE_VM_PRIMS_METHODHANDLES_HPP
+#ifndef SHARE_PRIMS_METHODHANDLES_HPP
+#define SHARE_PRIMS_METHODHANDLES_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "classfile/vmSymbols.hpp"
@@ -215,4 +215,4 @@
   void generate();
 };
 
-#endif // SHARE_VM_PRIMS_METHODHANDLES_HPP
+#endif // SHARE_PRIMS_METHODHANDLES_HPP
--- a/src/hotspot/share/prims/nativeLookup.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/nativeLookup.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_NATIVELOOKUP_HPP
-#define SHARE_VM_PRIMS_NATIVELOOKUP_HPP
+#ifndef SHARE_PRIMS_NATIVELOOKUP_HPP
+#define SHARE_PRIMS_NATIVELOOKUP_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -53,4 +53,4 @@
   static address base_library_lookup(const char* class_name, const char* method_name, const char* signature);
 };
 
-#endif // SHARE_VM_PRIMS_NATIVELOOKUP_HPP
+#endif // SHARE_PRIMS_NATIVELOOKUP_HPP
--- a/src/hotspot/share/prims/resolvedMethodTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/resolvedMethodTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_RESOLVEDMETHOD_HPP
-#define SHARE_VM_PRIMS_RESOLVEDMETHOD_HPP
+#ifndef SHARE_PRIMS_RESOLVEDMETHODTABLE_HPP
+#define SHARE_PRIMS_RESOLVEDMETHODTABLE_HPP
 
 #include "oops/symbol.hpp"
 #include "oops/weakHandle.hpp"
@@ -110,4 +110,4 @@
   void verify();
 };
 
-#endif // SHARE_VM_PRIMS_RESOLVEDMETHOD_HPP
+#endif // SHARE_PRIMS_RESOLVEDMETHODTABLE_HPP
--- a/src/hotspot/share/prims/stackwalk.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/stackwalk.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef SHARE_VM_PRIMS_STACKWALK_HPP
-#define SHARE_VM_PRIMS_STACKWALK_HPP
+#ifndef SHARE_PRIMS_STACKWALK_HPP
+#define SHARE_PRIMS_STACKWALK_HPP
 
 #include "oops/oop.hpp"
 #include "runtime/vframe.hpp"
@@ -157,4 +157,4 @@
                              int frame_count, int start_index,
                              objArrayHandle frames_array, TRAPS);
 };
-#endif // SHARE_VM_PRIMS_STACKWALK_HPP
+#endif // SHARE_PRIMS_STACKWALK_HPP
--- a/src/hotspot/share/prims/unsafe.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/unsafe.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef SHARE_VM_PRIMS_UNSAFE_HPP
-#define SHARE_VM_PRIMS_UNSAFE_HPP
+#ifndef SHARE_PRIMS_UNSAFE_HPP
+#define SHARE_PRIMS_UNSAFE_HPP
 
 #include "jni.h"
 
@@ -36,4 +36,4 @@
 
 jlong Unsafe_field_offset_from_byte_offset(jlong byte_offset);
 
-#endif // SHARE_VM_PRIMS_UNSAFE_HPP
+#endif // SHARE_PRIMS_UNSAFE_HPP
--- a/src/hotspot/share/prims/wbtestmethods/parserTests.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/wbtestmethods/parserTests.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -21,12 +21,12 @@
  * questions.
  */
 
-#ifndef SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
-#define SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
+#ifndef SHARE_PRIMS_WBTESTMETHODS_PARSERTESTS_HPP
+#define SHARE_PRIMS_WBTESTMETHODS_PARSERTESTS_HPP
 
 #include "jni.h"
 #include "prims/whitebox.hpp"
 
 WB_METHOD_DECLARE(jobjectArray) WB_ParseCommandLine(JNIEnv* env, jobject o, jstring args, jchar delim, jobjectArray arguments);
 
-#endif //SHARE_VM_PRIMS_WBTESTMETHODS_PARSERTESTS_H
+#endif //SHARE_PRIMS_WBTESTMETHODS_PARSERTESTS_HPP
--- a/src/hotspot/share/prims/whitebox.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/whitebox.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_WHITEBOX_HPP
-#define SHARE_VM_PRIMS_WHITEBOX_HPP
+#ifndef SHARE_PRIMS_WHITEBOX_HPP
+#define SHARE_PRIMS_WHITEBOX_HPP
 
 #include "jni.h"
 
@@ -70,4 +70,4 @@
   static bool compile_method(Method* method, int comp_level, int bci, Thread* THREAD);
 };
 
-#endif // SHARE_VM_PRIMS_WHITEBOX_HPP
+#endif // SHARE_PRIMS_WHITEBOX_HPP
--- a/src/hotspot/share/prims/whitebox.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/prims/whitebox.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
-#define SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
+#ifndef SHARE_PRIMS_WHITEBOX_INLINE_HPP
+#define SHARE_PRIMS_WHITEBOX_INLINE_HPP
 
 #include "prims/whitebox.hpp"
 #include "runtime/interfaceSupport.inline.hpp"
@@ -35,4 +35,4 @@
 
 #define WB_END JNI_END
 
-#endif // SHARE_VM_PRIMS_WHITEBOX_INLINE_HPP
+#endif // SHARE_PRIMS_WHITEBOX_INLINE_HPP
--- a/src/hotspot/share/runtime/arguments.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/arguments.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -3283,11 +3283,7 @@
   memset(buf, 0, bytes_alloc);
 
   // Fill buffer
-  // Use ::read() instead of os::read because os::read()
-  // might do a thread state transition
-  // and it is too early for that here
-
-  ssize_t bytes_read = ::read(fd, (void *)buf, (unsigned)bytes_alloc);
+  ssize_t bytes_read = os::read(fd, (void *)buf, (unsigned)bytes_alloc);
   os::close(fd);
   if (bytes_read < 0) {
     FREE_C_HEAP_ARRAY(char, buf);
--- a/src/hotspot/share/runtime/arguments.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/arguments.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_ARGUMENTS_HPP
-#define SHARE_VM_RUNTIME_ARGUMENTS_HPP
+#ifndef SHARE_RUNTIME_ARGUMENTS_HPP
+#define SHARE_RUNTIME_ARGUMENTS_HPP
 
 #include "logging/logLevel.hpp"
 #include "logging/logTag.hpp"
@@ -665,4 +665,4 @@
   }                                                      \
 } while(0)
 
-#endif // SHARE_VM_RUNTIME_ARGUMENTS_HPP
+#endif // SHARE_RUNTIME_ARGUMENTS_HPP
--- a/src/hotspot/share/runtime/atomic.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/atomic.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_ATOMIC_HPP
-#define SHARE_VM_RUNTIME_ATOMIC_HPP
+#ifndef SHARE_RUNTIME_ATOMIC_HPP
+#define SHARE_RUNTIME_ATOMIC_HPP
 
 #include "memory/allocation.hpp"
 #include "metaprogramming/conditional.hpp"
@@ -873,4 +873,4 @@
   return XchgImpl<T, D>()(exchange_value, dest, order);
 }
 
-#endif // SHARE_VM_RUNTIME_ATOMIC_HPP
+#endif // SHARE_RUNTIME_ATOMIC_HPP
--- a/src/hotspot/share/runtime/basicLock.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/basicLock.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_BASICLOCK_HPP
-#define SHARE_VM_RUNTIME_BASICLOCK_HPP
+#ifndef SHARE_RUNTIME_BASICLOCK_HPP
+#define SHARE_RUNTIME_BASICLOCK_HPP
 
 #include "oops/markOop.hpp"
 #include "runtime/handles.hpp"
@@ -78,4 +78,4 @@
 };
 
 
-#endif // SHARE_VM_RUNTIME_BASICLOCK_HPP
+#endif // SHARE_RUNTIME_BASICLOCK_HPP
--- a/src/hotspot/share/runtime/biasedLocking.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/biasedLocking.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_BIASEDLOCKING_HPP
-#define SHARE_VM_RUNTIME_BIASEDLOCKING_HPP
+#ifndef SHARE_RUNTIME_BIASEDLOCKING_HPP
+#define SHARE_RUNTIME_BIASEDLOCKING_HPP
 
 #include "runtime/handles.hpp"
 #include "utilities/growableArray.hpp"
@@ -192,4 +192,4 @@
   static void restore_marks();
 };
 
-#endif // SHARE_VM_RUNTIME_BIASEDLOCKING_HPP
+#endif // SHARE_RUNTIME_BIASEDLOCKING_HPP
--- a/src/hotspot/share/runtime/compilationPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/compilationPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_COMPILATIONPOLICY_HPP
-#define SHARE_VM_RUNTIME_COMPILATIONPOLICY_HPP
+#ifndef SHARE_RUNTIME_COMPILATIONPOLICY_HPP
+#define SHARE_RUNTIME_COMPILATIONPOLICY_HPP
 
 #include "code/nmethod.hpp"
 #include "compiler/compileBroker.hpp"
@@ -140,4 +140,4 @@
 };
 #endif
 
-#endif // SHARE_VM_RUNTIME_COMPILATIONPOLICY_HPP
+#endif // SHARE_RUNTIME_COMPILATIONPOLICY_HPP
--- a/src/hotspot/share/runtime/deoptimization.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/deoptimization.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_DEOPTIMIZATION_HPP
-#define SHARE_VM_RUNTIME_DEOPTIMIZATION_HPP
+#ifndef SHARE_RUNTIME_DEOPTIMIZATION_HPP
+#define SHARE_RUNTIME_DEOPTIMIZATION_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/frame.hpp"
@@ -468,4 +468,4 @@
   static bool is_active() { return _is_active; }
 };
 
-#endif // SHARE_VM_RUNTIME_DEOPTIMIZATION_HPP
+#endif // SHARE_RUNTIME_DEOPTIMIZATION_HPP
--- a/src/hotspot/share/runtime/extendedPC.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/extendedPC.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_EXTENDEDPC_HPP
-#define SHARE_VM_RUNTIME_EXTENDEDPC_HPP
+#ifndef SHARE_RUNTIME_EXTENDEDPC_HPP
+#define SHARE_RUNTIME_EXTENDEDPC_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -40,4 +40,4 @@
   ExtendedPC()           { _pc  = NULL; }
 };
 
-#endif // SHARE_VM_RUNTIME_EXTENDEDPC_HPP
+#endif // SHARE_RUNTIME_EXTENDEDPC_HPP
--- a/src/hotspot/share/runtime/fieldDescriptor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/fieldDescriptor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FIELDDESCRIPTOR_HPP
-#define SHARE_VM_RUNTIME_FIELDDESCRIPTOR_HPP
+#ifndef SHARE_RUNTIME_FIELDDESCRIPTOR_HPP
+#define SHARE_RUNTIME_FIELDDESCRIPTOR_HPP
 
 #include "oops/constantPool.hpp"
 #include "oops/fieldInfo.hpp"
@@ -117,4 +117,4 @@
   void verify() const                           PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_RUNTIME_FIELDDESCRIPTOR_HPP
+#endif // SHARE_RUNTIME_FIELDDESCRIPTOR_HPP
--- a/src/hotspot/share/runtime/fieldDescriptor.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/fieldDescriptor.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
-#define SHARE_VM_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
+#ifndef SHARE_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
+#define SHARE_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
 
 #include "runtime/handles.inline.hpp"
 
@@ -79,4 +79,4 @@
   return FieldType::basic_type(signature());
 }
 
-#endif // SHARE_VM_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
+#endif // SHARE_RUNTIME_FIELDDESCRIPTOR_INLINE_HPP
--- a/src/hotspot/share/runtime/fieldType.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/fieldType.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FIELDTYPE_HPP
-#define SHARE_VM_RUNTIME_FIELDTYPE_HPP
+#ifndef SHARE_RUNTIME_FIELDTYPE_HPP
+#define SHARE_RUNTIME_FIELDTYPE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/symbol.hpp"
@@ -72,4 +72,4 @@
   static BasicType get_array_info(Symbol* signature, FieldArrayInfo& ai, TRAPS);
 };
 
-#endif // SHARE_VM_RUNTIME_FIELDTYPE_HPP
+#endif // SHARE_RUNTIME_FIELDTYPE_HPP
--- a/src/hotspot/share/runtime/flags/flagSetting.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/flagSetting.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FLAGS_FLAGSETTING_HPP
-#define SHARE_VM_RUNTIME_FLAGS_FLAGSETTING_HPP
+#ifndef SHARE_RUNTIME_FLAGS_FLAGSETTING_HPP
+#define SHARE_RUNTIME_FLAGS_FLAGSETTING_HPP
 
 #include "memory/allocation.hpp"
 
@@ -68,4 +68,4 @@
 
 #define FLAG_GUARD(f) FlagGuard<sizeof(f)> f ## _guard(&f)
 
-#endif // SHARE_VM_RUNTIME_FLAGS_FLAGSETTING_HPP
+#endif // SHARE_RUNTIME_FLAGS_FLAGSETTING_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlag.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlag.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FLAGS_JVMFLAG_HPP
-#define SHARE_VM_RUNTIME_FLAGS_JVMFLAG_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAG_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAG_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
@@ -279,4 +279,4 @@
   static void verify() PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_RUNTIME_FLAGS_JVMFLAG_HPP
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAG_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTLIST_HPP
-#define SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTLIST_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTLIST_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTLIST_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 #include "utilities/growableArray.hpp"
@@ -98,4 +98,4 @@
   static bool check_constraints(JVMFlagConstraint::ConstraintType type);
 };
 
-#endif /* SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTLIST_HPP */
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTLIST_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSCOMPILER_HPP
-#define SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSCOMPILER_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSCOMPILER_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSCOMPILER_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 
@@ -71,4 +71,4 @@
 
 JVMFlag::Error RTMTotalCountIncrRateConstraintFunc(int value, bool verbose);
 
-#endif /* SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSCOMPILER_HPP */
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSCOMPILER_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSRUNTIME_HPP
-#define SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSRUNTIME_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSRUNTIME_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSRUNTIME_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 
@@ -47,4 +47,4 @@
 JVMFlag::Error ThreadLocalHandshakesConstraintFunc(bool value, bool verbose);
 
 
-#endif /* SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSRUNTIME_HPP */
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAGCONSTRAINTSRUNTIME_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP
-#define SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGRANGELIST_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAGRANGELIST_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 #include "utilities/growableArray.hpp"
@@ -70,4 +70,4 @@
   static bool check_ranges();
 };
 
-#endif // SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAGRANGELIST_HPP
--- a/src/hotspot/share/runtime/flags/jvmFlagWriteableList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/flags/jvmFlagWriteableList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JVMFLAGWRITEABLE_HPP
-#define SHARE_VM_RUNTIME_JVMFLAGWRITEABLE_HPP
+#ifndef SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP
+#define SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP
 
 #include "utilities/growableArray.hpp"
 
@@ -64,4 +64,4 @@
   static void mark_startup(void);
 };
 
-#endif // SHARE_VM_RUNTIME_JVMFLAGWRITEABLE_HPP
+#endif // SHARE_RUNTIME_FLAGS_JVMFLAGWRITEABLELIST_HPP
--- a/src/hotspot/share/runtime/frame.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/frame.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FRAME_HPP
-#define SHARE_VM_RUNTIME_FRAME_HPP
+#ifndef SHARE_RUNTIME_FRAME_HPP
+#define SHARE_RUNTIME_FRAME_HPP
 
 #include "oops/method.hpp"
 #include "runtime/basicLock.hpp"
@@ -470,4 +470,4 @@
   RegisterMap* register_map()     { return &_reg_map; }
 };
 
-#endif // SHARE_VM_RUNTIME_FRAME_HPP
+#endif // SHARE_RUNTIME_FRAME_HPP
--- a/src/hotspot/share/runtime/frame.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/frame.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_FRAME_INLINE_HPP
-#define SHARE_VM_RUNTIME_FRAME_INLINE_HPP
+#ifndef SHARE_RUNTIME_FRAME_INLINE_HPP
+#define SHARE_RUNTIME_FRAME_INLINE_HPP
 
 #include "code/compiledMethod.inline.hpp"
 #include "interpreter/bytecodeInterpreter.hpp"
@@ -67,4 +67,4 @@
   return (_is_done) ? true : (_is_done = _fr.is_first_frame(), false);
 }
 
-#endif // SHARE_VM_RUNTIME_FRAME_INLINE_HPP
+#endif // SHARE_RUNTIME_FRAME_INLINE_HPP
--- a/src/hotspot/share/runtime/globals.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/globals.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_GLOBALS_HPP
-#define SHARE_VM_RUNTIME_GLOBALS_HPP
+#ifndef SHARE_RUNTIME_GLOBALS_HPP
+#define SHARE_RUNTIME_GLOBALS_HPP
 
 #include "gc/shared/gc_globals.hpp"
 #include "utilities/align.hpp"
@@ -1327,9 +1327,6 @@
   develop(bool, TypeProfileCasts,  true,                                    \
           "treat casts like calls for purposes of type profiling")          \
                                                                             \
-  develop(bool, TimeLivenessAnalysis, false,                                \
-          "Time computation of bytecode liveness analysis")                 \
-                                                                            \
   develop(bool, TraceLivenessGen, false,                                    \
           "Trace the generation of liveness analysis information")          \
                                                                             \
@@ -1673,9 +1670,6 @@
   develop(intx, DontYieldALotInterval,    10,                               \
           "Interval between which yields will be dropped (milliseconds)")   \
                                                                             \
-  develop(intx, ProfilerPCTickThreshold,    15,                             \
-          "Number of ticks in a PC buckets to be a hotspot")                \
-                                                                            \
   notproduct(intx, DeoptimizeALotInterval,     5,                           \
           "Number of exits until DeoptimizeALot kicks in")                  \
                                                                             \
@@ -1997,10 +1991,6 @@
   product(bool, CICompilerCountPerCPU, false,                               \
           "1 compiler thread for log(N CPUs)")                              \
                                                                             \
-  develop(intx, CIFireOOMAt,    -1,                                         \
-          "Fire OutOfMemoryErrors throughout CI for testing the compiler "  \
-          "(non-negative value throws OOM after this many CI accesses "     \
-          "in each compile)")                                               \
   notproduct(intx, CICrashAt, -1,                                           \
           "id of compilation to trigger assert in compiler thread for "     \
           "the purpose of testing, e.g. generation of replay data")         \
@@ -2733,4 +2723,4 @@
 
 #include "runtime/globals_ext.hpp"
 
-#endif // SHARE_VM_RUNTIME_GLOBALS_HPP
+#endif // SHARE_RUNTIME_GLOBALS_HPP
--- a/src/hotspot/share/runtime/globals_ext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/globals_ext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_GLOBALS_EXT_HPP
-#define SHARE_VM_RUNTIME_GLOBALS_EXT_HPP
+#ifndef SHARE_RUNTIME_GLOBALS_EXT_HPP
+#define SHARE_RUNTIME_GLOBALS_EXT_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 
@@ -69,4 +69,4 @@
   return JVMFlag::NONE;
 }
 
-#endif // SHARE_VM_RUNTIME_GLOBALS_EXT_HPP
+#endif // SHARE_RUNTIME_GLOBALS_EXT_HPP
--- a/src/hotspot/share/runtime/globals_extension.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/globals_extension.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
-#define SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
+#ifndef SHARE_RUNTIME_GLOBALS_EXTENSION_HPP
+#define SHARE_RUNTIME_GLOBALS_EXTENSION_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/macros.hpp"
@@ -305,6 +305,8 @@
 #define FLAG_SET_CMDLINE(type, name, value) (JVMFlagEx::setOnCmdLine(FLAG_MEMBER_WITH_TYPE(name, type)), \
                                              JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::COMMAND_LINE))
 #define FLAG_SET_ERGO(type, name, value)    (JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::ERGONOMIC))
+#define FLAG_SET_MGMT(type, name, value)    (JVMFlagEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name, type), (type)(value), JVMFlag::MANAGEMENT))
+
 #define FLAG_SET_ERGO_IF_DEFAULT(type, name, value) \
   do {                                              \
     if (FLAG_IS_DEFAULT(name)) {                    \
@@ -334,4 +336,4 @@
   static void setOnCmdLine(JVMFlagsWithType flag);
 };
 
-#endif // SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
+#endif // SHARE_RUNTIME_GLOBALS_EXTENSION_HPP
--- a/src/hotspot/share/runtime/handles.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/handles.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_HANDLES_HPP
-#define SHARE_VM_RUNTIME_HANDLES_HPP
+#ifndef SHARE_RUNTIME_HANDLES_HPP
+#define SHARE_RUNTIME_HANDLES_HPP
 
 #include "memory/arena.hpp"
 #include "oops/oop.hpp"
@@ -310,4 +310,4 @@
   inline ~HandleMarkCleaner();
 };
 
-#endif // SHARE_VM_RUNTIME_HANDLES_HPP
+#endif // SHARE_RUNTIME_HANDLES_HPP
--- a/src/hotspot/share/runtime/handles.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/handles.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_HANDLES_INLINE_HPP
-#define SHARE_VM_RUNTIME_HANDLES_INLINE_HPP
+#ifndef SHARE_RUNTIME_HANDLES_INLINE_HPP
+#define SHARE_RUNTIME_HANDLES_INLINE_HPP
 
 #include "runtime/handles.hpp"
 #include "runtime/thread.inline.hpp"
@@ -113,4 +113,4 @@
   _thread->last_handle_mark()->pop_and_restore();
 }
 
-#endif // SHARE_VM_RUNTIME_HANDLES_INLINE_HPP
+#endif // SHARE_RUNTIME_HANDLES_INLINE_HPP
--- a/src/hotspot/share/runtime/handshake.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/handshake.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_HANDSHAKE_HPP
-#define SHARE_VM_RUNTIME_HANDSHAKE_HPP
+#ifndef SHARE_RUNTIME_HANDSHAKE_HPP
+#define SHARE_RUNTIME_HANDSHAKE_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/flags/flagSetting.hpp"
@@ -81,4 +81,4 @@
   void process_by_vmthread(JavaThread* target);
 };
 
-#endif // SHARE_VM_RUNTIME_HANDSHAKE_HPP
+#endif // SHARE_RUNTIME_HANDSHAKE_HPP
--- a/src/hotspot/share/runtime/icache.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/icache.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_ICACHE_HPP
-#define SHARE_VM_RUNTIME_ICACHE_HPP
+#ifndef SHARE_RUNTIME_ICACHE_HPP
+#define SHARE_RUNTIME_ICACHE_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/stubCodeGenerator.hpp"
@@ -120,4 +120,4 @@
   void generate_icache_flush(ICache::flush_icache_stub_t* flush_icache_stub);
 };
 
-#endif // SHARE_VM_RUNTIME_ICACHE_HPP
+#endif // SHARE_RUNTIME_ICACHE_HPP
--- a/src/hotspot/share/runtime/init.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/init.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_INIT_HPP
-#define SHARE_VM_RUNTIME_INIT_HPP
+#ifndef SHARE_RUNTIME_INIT_HPP
+#define SHARE_RUNTIME_INIT_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -42,4 +42,4 @@
 bool is_init_completed();     // returns true when bootstrapping has completed
 void set_init_completed();    // set basic init to completed
 
-#endif // SHARE_VM_RUNTIME_INIT_HPP
+#endif // SHARE_RUNTIME_INIT_HPP
--- a/src/hotspot/share/runtime/interfaceSupport.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/interfaceSupport.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
-#define SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
+#ifndef SHARE_RUNTIME_INTERFACESUPPORT_INLINE_HPP
+#define SHARE_RUNTIME_INTERFACESUPPORT_INLINE_HPP
 
 #include "runtime/handles.inline.hpp"
 #include "runtime/mutexLocker.hpp"
@@ -568,4 +568,4 @@
 
 #define JVM_END } }
 
-#endif // SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
+#endif // SHARE_RUNTIME_INTERFACESUPPORT_INLINE_HPP
--- a/src/hotspot/share/runtime/java.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/java.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -81,7 +81,6 @@
 #endif
 #ifdef COMPILER2
 #include "code/compiledIC.hpp"
-#include "compiler/methodLiveness.hpp"
 #include "opto/compile.hpp"
 #include "opto/indexSet.hpp"
 #include "opto/runtime.hpp"
@@ -258,10 +257,6 @@
   if (PrintLockStatistics || PrintPreciseBiasedLockingStatistics || PrintPreciseRTMLockingStatistics) {
     OptoRuntime::print_named_counters();
   }
-
-  if (TimeLivenessAnalysis) {
-    MethodLiveness::print_times();
-  }
 #ifdef ASSERT
   if (CollectIndexSetStatistics) {
     IndexSet::print_statistics();
--- a/src/hotspot/share/runtime/java.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/java.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JAVA_HPP
-#define SHARE_VM_RUNTIME_JAVA_HPP
+#ifndef SHARE_RUNTIME_JAVA_HPP
+#define SHARE_RUNTIME_JAVA_HPP
 
 #include "runtime/os.hpp"
 
@@ -157,4 +157,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_JAVA_HPP
+#endif // SHARE_RUNTIME_JAVA_HPP
--- a/src/hotspot/share/runtime/javaCalls.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/javaCalls.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JAVACALLS_HPP
-#define SHARE_VM_RUNTIME_JAVACALLS_HPP
+#ifndef SHARE_RUNTIME_JAVACALLS_HPP
+#define SHARE_RUNTIME_JAVACALLS_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/method.hpp"
@@ -268,4 +268,4 @@
   static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
 };
 
-#endif // SHARE_VM_RUNTIME_JAVACALLS_HPP
+#endif // SHARE_RUNTIME_JAVACALLS_HPP
--- a/src/hotspot/share/runtime/javaFrameAnchor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/javaFrameAnchor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JAVAFRAMEANCHOR_HPP
-#define SHARE_VM_RUNTIME_JAVAFRAMEANCHOR_HPP
+#ifndef SHARE_RUNTIME_JAVAFRAMEANCHOR_HPP
+#define SHARE_RUNTIME_JAVAFRAMEANCHOR_HPP
 
 #include "runtime/orderAccess.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -94,4 +94,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_JAVAFRAMEANCHOR_HPP
+#endif // SHARE_RUNTIME_JAVAFRAMEANCHOR_HPP
--- a/src/hotspot/share/runtime/jfieldIDWorkaround.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/jfieldIDWorkaround.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JFIELDIDWORKAROUND_HPP
-#define SHARE_VM_RUNTIME_JFIELDIDWORKAROUND_HPP
+#ifndef SHARE_RUNTIME_JFIELDIDWORKAROUND_HPP
+#define SHARE_RUNTIME_JFIELDIDWORKAROUND_HPP
 
 class jfieldIDWorkaround: AllStatic {
   // This workaround is because JVMTI doesn't have distinct entry points
@@ -161,4 +161,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_JFIELDIDWORKAROUND_HPP
+#endif // SHARE_RUNTIME_JFIELDIDWORKAROUND_HPP
--- a/src/hotspot/share/runtime/jniHandles.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/jniHandles.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JNIHANDLES_HPP
-#define SHARE_VM_RUNTIME_JNIHANDLES_HPP
+#ifndef SHARE_RUNTIME_JNIHANDLES_HPP
+#define SHARE_RUNTIME_JNIHANDLES_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
@@ -206,4 +206,4 @@
   #endif
 };
 
-#endif // SHARE_VM_RUNTIME_JNIHANDLES_HPP
+#endif // SHARE_RUNTIME_JNIHANDLES_HPP
--- a/src/hotspot/share/runtime/jniHandles.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/jniHandles.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -102,4 +102,3 @@
 }
 
 #endif // SHARE_RUNTIME_JNIHANDLES_INLINE_HPP
-
--- a/src/hotspot/share/runtime/jniPeriodicChecker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/jniPeriodicChecker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_JNIPERIODICCHECKER_HPP
-#define SHARE_VM_RUNTIME_JNIPERIODICCHECKER_HPP
+#ifndef SHARE_RUNTIME_JNIPERIODICCHECKER_HPP
+#define SHARE_RUNTIME_JNIPERIODICCHECKER_HPP
 
 class JniPeriodicCheckerTask;
 
@@ -54,4 +54,4 @@
 
 void jniPeriodicChecker_exit();
 
-#endif // SHARE_VM_RUNTIME_JNIPERIODICCHECKER_HPP
+#endif // SHARE_RUNTIME_JNIPERIODICCHECKER_HPP
--- a/src/hotspot/share/runtime/memprofiler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/memprofiler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_MEMPROFILER_HPP
-#define SHARE_VM_RUNTIME_MEMPROFILER_HPP
+#ifndef SHARE_RUNTIME_MEMPROFILER_HPP
+#define SHARE_RUNTIME_MEMPROFILER_HPP
 
 // Prints periodic memory usage trace of HotSpot VM
 
@@ -44,4 +44,4 @@
   static bool is_active()     PRODUCT_RETURN0;
 };
 
-#endif // SHARE_VM_RUNTIME_MEMPROFILER_HPP
+#endif // SHARE_RUNTIME_MEMPROFILER_HPP
--- a/src/hotspot/share/runtime/monitorChunk.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/monitorChunk.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_MONITORCHUNK_HPP
-#define SHARE_VM_RUNTIME_MONITORCHUNK_HPP
+#ifndef SHARE_RUNTIME_MONITORCHUNK_HPP
+#define SHARE_RUNTIME_MONITORCHUNK_HPP
 
 #include "runtime/synchronizer.hpp"
 
@@ -62,4 +62,4 @@
   bool contains(void* addr) const           { return (addr >= (void*) monitors()) && (addr <  (void*) (monitors() + number_of_monitors())); }
 };
 
-#endif // SHARE_VM_RUNTIME_MONITORCHUNK_HPP
+#endif // SHARE_RUNTIME_MONITORCHUNK_HPP
--- a/src/hotspot/share/runtime/mutex.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/mutex.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_MUTEX_HPP
-#define SHARE_VM_RUNTIME_MUTEX_HPP
+#ifndef SHARE_RUNTIME_MUTEX_HPP
+#define SHARE_RUNTIME_MUTEX_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/os.hpp"
@@ -320,4 +320,4 @@
     Mutex(rank, name, allow_vm_block, safepoint_check_required) {};
 };
 
-#endif // SHARE_VM_RUNTIME_MUTEX_HPP
+#endif // SHARE_RUNTIME_MUTEX_HPP
--- a/src/hotspot/share/runtime/mutexLocker.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/mutexLocker.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -79,10 +79,8 @@
 Monitor* CGC_lock                     = NULL;
 Monitor* STS_lock                     = NULL;
 Monitor* FullGCCount_lock             = NULL;
-Mutex*   SATB_Q_FL_lock               = NULL;
 Monitor* SATB_Q_CBL_mon               = NULL;
 Mutex*   Shared_SATB_Q_lock           = NULL;
-Mutex*   DirtyCardQ_FL_lock           = NULL;
 Monitor* DirtyCardQ_CBL_mon           = NULL;
 Mutex*   Shared_DirtyCardQ_lock       = NULL;
 Mutex*   MarkStackFreeList_lock       = NULL;
@@ -214,11 +212,9 @@
     def(FullGCCount_lock           , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);      // in support of ExplicitGCInvokesConcurrent
   }
   if (UseG1GC) {
-    def(SATB_Q_FL_lock             , PaddedMutex  , access,      true,  Monitor::_safepoint_check_never);
     def(SATB_Q_CBL_mon             , PaddedMonitor, access,      true,  Monitor::_safepoint_check_never);
     def(Shared_SATB_Q_lock         , PaddedMutex  , access + 1,  true,  Monitor::_safepoint_check_never);
 
-    def(DirtyCardQ_FL_lock         , PaddedMutex  , access,      true,  Monitor::_safepoint_check_never);
     def(DirtyCardQ_CBL_mon         , PaddedMonitor, access,      true,  Monitor::_safepoint_check_never);
     def(Shared_DirtyCardQ_lock     , PaddedMutex  , access + 1,  true,  Monitor::_safepoint_check_never);
 
@@ -235,7 +231,6 @@
     def(MonitoringSupport_lock     , PaddedMutex  , native   ,   true,  Monitor::_safepoint_check_never);      // used for serviceability monitoring support
   }
   if (UseShenandoahGC) {
-    def(SATB_Q_FL_lock             , PaddedMutex  , access,      true,  Monitor::_safepoint_check_never);
     def(SATB_Q_CBL_mon             , PaddedMonitor, access,      true,  Monitor::_safepoint_check_never);
     def(Shared_SATB_Q_lock         , PaddedMutex  , access + 1,  true,  Monitor::_safepoint_check_never);
 
--- a/src/hotspot/share/runtime/mutexLocker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/mutexLocker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
-#define SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
+#ifndef SHARE_RUNTIME_MUTEXLOCKER_HPP
+#define SHARE_RUNTIME_MUTEXLOCKER_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/flags/flagSetting.hpp"
@@ -76,16 +76,12 @@
                                                  // fore- & background GC threads.
 extern Monitor* STS_lock;                        // used for joining/leaving SuspendibleThreadSet.
 extern Monitor* FullGCCount_lock;                // in support of "concurrent" full gc
-extern Mutex*   SATB_Q_FL_lock;                  // Protects SATB Q
-                                                 // buffer free list.
 extern Monitor* SATB_Q_CBL_mon;                  // Protects SATB Q
                                                  // completed buffer queue.
 extern Mutex*   Shared_SATB_Q_lock;              // Lock protecting SATB
                                                  // queue shared by
                                                  // non-Java threads.
 
-extern Mutex*   DirtyCardQ_FL_lock;              // Protects dirty card Q
-                                                 // buffer free list.
 extern Monitor* DirtyCardQ_CBL_mon;              // Protects dirty card Q
                                                  // completed buffer queue.
 extern Mutex*   Shared_DirtyCardQ_lock;          // Lock protecting dirty card
@@ -352,4 +348,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
+#endif // SHARE_RUNTIME_MUTEXLOCKER_HPP
--- a/src/hotspot/share/runtime/objectMonitor.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/objectMonitor.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OBJECTMONITOR_HPP
-#define SHARE_VM_RUNTIME_OBJECTMONITOR_HPP
+#ifndef SHARE_RUNTIME_OBJECTMONITOR_HPP
+#define SHARE_RUNTIME_OBJECTMONITOR_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/padded.hpp"
@@ -315,4 +315,4 @@
   bool      ExitSuspendEquivalent(JavaThread * Self);
 };
 
-#endif // SHARE_VM_RUNTIME_OBJECTMONITOR_HPP
+#endif // SHARE_RUNTIME_OBJECTMONITOR_HPP
--- a/src/hotspot/share/runtime/objectMonitor.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/objectMonitor.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OBJECTMONITOR_INLINE_HPP
-#define SHARE_VM_RUNTIME_OBJECTMONITOR_INLINE_HPP
+#ifndef SHARE_RUNTIME_OBJECTMONITOR_INLINE_HPP
+#define SHARE_RUNTIME_OBJECTMONITOR_INLINE_HPP
 
 inline intptr_t ObjectMonitor::is_entered(TRAPS) const {
   if (THREAD == _owner || THREAD->is_lock_owned((address) _owner)) {
@@ -110,4 +110,4 @@
 }
 
 
-#endif // SHARE_VM_RUNTIME_OBJECTMONITOR_INLINE_HPP
+#endif // SHARE_RUNTIME_OBJECTMONITOR_INLINE_HPP
--- a/src/hotspot/share/runtime/orderAccess.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/orderAccess.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_ORDERACCESS_HPP
-#define SHARE_VM_RUNTIME_ORDERACCESS_HPP
+#ifndef SHARE_RUNTIME_ORDERACCESS_HPP
+#define SHARE_RUNTIME_ORDERACCESS_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/atomic.hpp"
@@ -346,4 +346,4 @@
 inline void OrderAccess::release_store_fence(volatile D* p, T v) {
   StoreImpl<T, D, PlatformOrderedStore<sizeof(D), RELEASE_X_FENCE> >()(v, p);
 }
-#endif // SHARE_VM_RUNTIME_ORDERACCESS_HPP
+#endif // SHARE_RUNTIME_ORDERACCESS_HPP
--- a/src/hotspot/share/runtime/os.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/os.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -217,7 +217,8 @@
 OSReturn os::set_priority(Thread* thread, ThreadPriority p) {
   debug_only(Thread::check_for_dangling_thread_pointer(thread);)
 
-  if (p >= MinPriority && p <= MaxPriority) {
+  if ((p >= MinPriority && p <= MaxPriority) ||
+      (p == CriticalPriority && thread->is_ConcurrentGC_thread())) {
     int priority = java_to_os_priority[p];
     return set_native_priority(thread, priority);
   } else {
--- a/src/hotspot/share/runtime/os.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/os.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OS_HPP
-#define SHARE_VM_RUNTIME_OS_HPP
+#ifndef SHARE_RUNTIME_OS_HPP
+#define SHARE_RUNTIME_OS_HPP
 
 #include "jvm.h"
 #include "jvmtifiles/jvmti.h"
@@ -539,9 +539,8 @@
 
   //File i/o operations
 
-  static size_t read(int fd, void *buf, unsigned int nBytes);
-  static size_t read_at(int fd, void *buf, unsigned int nBytes, jlong offset);
-  static size_t restartable_read(int fd, void *buf, unsigned int nBytes);
+  static ssize_t read(int fd, void *buf, unsigned int nBytes);
+  static ssize_t read_at(int fd, void *buf, unsigned int nBytes, jlong offset);
   static size_t write(int fd, const void *buf, unsigned int nBytes);
 
   // Reading directories.
@@ -995,4 +994,4 @@
 
 extern "C" int SpinPause();
 
-#endif // SHARE_VM_RUNTIME_OS_HPP
+#endif // SHARE_RUNTIME_OS_HPP
--- a/src/hotspot/share/runtime/os.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/os.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,11 +22,15 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OS_INLINE_HPP
-#define SHARE_VM_RUNTIME_OS_INLINE_HPP
+#ifndef SHARE_RUNTIME_OS_INLINE_HPP
+#define SHARE_RUNTIME_OS_INLINE_HPP
 
 #include "runtime/os.hpp"
 
+inline ssize_t os::read(int fd, void *buf, unsigned int nBytes) {
+  return ::read(fd, buf, nBytes);
+}
+
 #include OS_HEADER_INLINE(os)
 
-#endif // SHARE_VM_RUNTIME_OS_INLINE_HPP
+#endif // SHARE_RUNTIME_OS_INLINE_HPP
--- a/src/hotspot/share/runtime/osThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/osThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OSTHREAD_HPP
-#define SHARE_VM_RUNTIME_OSTHREAD_HPP
+#ifndef SHARE_RUNTIME_OSTHREAD_HPP
+#define SHARE_RUNTIME_OSTHREAD_HPP
 
 #include "runtime/frame.hpp"
 #include "runtime/handles.hpp"
@@ -147,4 +147,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_OSTHREAD_HPP
+#endif // SHARE_RUNTIME_OSTHREAD_HPP
--- a/src/hotspot/share/runtime/os_ext.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/os_ext.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OS_EXT_HPP
-#define SHARE_VM_RUNTIME_OS_EXT_HPP
+#ifndef SHARE_RUNTIME_OS_EXT_HPP
+#define SHARE_RUNTIME_OS_EXT_HPP
 
 #define EMIT_RANGES_FOR_GLOBALS_EXT // NOP
 #define EMIT_CONSTRAINTS_FOR_GLOBALS_EXT // NOP
@@ -35,4 +35,4 @@
 
  private:
 
-#endif // SHARE_VM_RUNTIME_OS_EXT_HPP
+#endif // SHARE_RUNTIME_OS_EXT_HPP
--- a/src/hotspot/share/runtime/os_perf.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/os_perf.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_OS_PERF_HPP
-#define SHARE_VM_RUNTIME_OS_PERF_HPP
+#ifndef SHARE_RUNTIME_OS_PERF_HPP
+#define SHARE_RUNTIME_OS_PERF_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
@@ -287,4 +287,4 @@
   int network_utilization(NetworkInterface** network_interfaces) const;
 };
 
-#endif // SHARE_VM_RUNTIME_OS_PERF_HPP
+#endif // SHARE_RUNTIME_OS_PERF_HPP
--- a/src/hotspot/share/runtime/park.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/park.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PARK_HPP
-#define SHARE_VM_RUNTIME_PARK_HPP
+#ifndef SHARE_RUNTIME_PARK_HPP
+#define SHARE_RUNTIME_PARK_HPP
 
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -163,4 +163,4 @@
     static void Release (ParkEvent * e) ;
 } ;
 
-#endif // SHARE_VM_RUNTIME_PARK_HPP
+#endif // SHARE_RUNTIME_PARK_HPP
--- a/src/hotspot/share/runtime/perfData.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/perfData.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PERFDATA_HPP
-#define SHARE_VM_RUNTIME_PERFDATA_HPP
+#ifndef SHARE_RUNTIME_PERFDATA_HPP
+#define SHARE_RUNTIME_PERFDATA_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/perfMemory.hpp"
@@ -970,4 +970,4 @@
     }
 };
 
-#endif // SHARE_VM_RUNTIME_PERFDATA_HPP
+#endif // SHARE_RUNTIME_PERFDATA_HPP
--- a/src/hotspot/share/runtime/perfData.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/perfData.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PERFDATA_INLINE_HPP
-#define SHARE_VM_RUNTIME_PERFDATA_INLINE_HPP
+#ifndef SHARE_RUNTIME_PERFDATA_INLINE_HPP
+#define SHARE_RUNTIME_PERFDATA_INLINE_HPP
 
 #include "runtime/perfData.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -65,4 +65,4 @@
   }
 }
 
-#endif // SHARE_VM_RUNTIME_PERFDATA_INLINE_HPP
+#endif // SHARE_RUNTIME_PERFDATA_INLINE_HPP
--- a/src/hotspot/share/runtime/perfMemory.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/perfMemory.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PERFMEMORY_HPP
-#define SHARE_VM_RUNTIME_PERFMEMORY_HPP
+#ifndef SHARE_RUNTIME_PERFMEMORY_HPP
+#define SHARE_RUNTIME_PERFMEMORY_HPP
 
 #include "utilities/exceptions.hpp"
 
@@ -167,4 +167,4 @@
 void perfMemory_init();
 void perfMemory_exit();
 
-#endif // SHARE_VM_RUNTIME_PERFMEMORY_HPP
+#endif // SHARE_RUNTIME_PERFMEMORY_HPP
--- a/src/hotspot/share/runtime/prefetch.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/prefetch.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PREFETCH_HPP
-#define SHARE_VM_RUNTIME_PREFETCH_HPP
+#ifndef SHARE_RUNTIME_PREFETCH_HPP
+#define SHARE_RUNTIME_PREFETCH_HPP
 
 #include "memory/allocation.hpp"
 
@@ -48,4 +48,4 @@
   static void write(void* loc, intx interval);
 };
 
-#endif // SHARE_VM_RUNTIME_PREFETCH_HPP
+#endif // SHARE_RUNTIME_PREFETCH_HPP
--- a/src/hotspot/share/runtime/prefetch.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/prefetch.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,11 +22,11 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_PREFETCH_INLINE_HPP
-#define SHARE_VM_RUNTIME_PREFETCH_INLINE_HPP
+#ifndef SHARE_RUNTIME_PREFETCH_INLINE_HPP
+#define SHARE_RUNTIME_PREFETCH_INLINE_HPP
 
 #include "runtime/prefetch.hpp"
 #include "utilities/macros.hpp"
 #include OS_CPU_HEADER_INLINE(prefetch)
 
-#endif // SHARE_VM_RUNTIME_PREFETCH_INLINE_HPP
+#endif // SHARE_RUNTIME_PREFETCH_INLINE_HPP
--- a/src/hotspot/share/runtime/reflection.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/reflection.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_REFLECTION_HPP
-#define SHARE_VM_RUNTIME_REFLECTION_HPP
+#ifndef SHARE_RUNTIME_REFLECTION_HPP
+#define SHARE_RUNTIME_REFLECTION_HPP
 
 #include "oops/oop.hpp"
 #include "runtime/fieldDescriptor.hpp"
@@ -131,4 +131,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_REFLECTION_HPP
+#endif // SHARE_RUNTIME_REFLECTION_HPP
--- a/src/hotspot/share/runtime/reflectionUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/reflectionUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_REFLECTIONUTILS_HPP
-#define SHARE_VM_RUNTIME_REFLECTIONUTILS_HPP
+#ifndef SHARE_RUNTIME_REFLECTIONUTILS_HPP
+#define SHARE_RUNTIME_REFLECTIONUTILS_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/instanceKlass.hpp"
@@ -232,4 +232,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_REFLECTIONUTILS_HPP
+#endif // SHARE_RUNTIME_REFLECTIONUTILS_HPP
--- a/src/hotspot/share/runtime/registerMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/registerMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_REGISTERMAP_HPP
-#define SHARE_VM_RUNTIME_REGISTERMAP_HPP
+#ifndef SHARE_RUNTIME_REGISTERMAP_HPP
+#define SHARE_RUNTIME_REGISTERMAP_HPP
 
 #include "code/vmreg.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -125,4 +125,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_REGISTERMAP_HPP
+#endif // SHARE_RUNTIME_REGISTERMAP_HPP
--- a/src/hotspot/share/runtime/relocator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/relocator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_RELOCATOR_HPP
-#define SHARE_VM_RUNTIME_RELOCATOR_HPP
+#ifndef SHARE_RUNTIME_RELOCATOR_HPP
+#define SHARE_RUNTIME_RELOCATOR_HPP
 
 #include "interpreter/bytecodes.hpp"
 #include "oops/method.hpp"
@@ -125,4 +125,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_RELOCATOR_HPP
+#endif // SHARE_RUNTIME_RELOCATOR_HPP
--- a/src/hotspot/share/runtime/rframe.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/rframe.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_RFRAME_HPP
-#define SHARE_VM_RUNTIME_RFRAME_HPP
+#ifndef SHARE_RUNTIME_RFRAME_HPP
+#define SHARE_RUNTIME_RFRAME_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/frame.hpp"
@@ -122,4 +122,4 @@
   void print();
 };
 
-#endif // SHARE_VM_RUNTIME_RFRAME_HPP
+#endif // SHARE_RUNTIME_RFRAME_HPP
--- a/src/hotspot/share/runtime/rtmLocking.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/rtmLocking.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_RTMLOCKING_HPP
-#define SHARE_VM_RUNTIME_RTMLOCKING_HPP
+#ifndef SHARE_RUNTIME_RTMLOCKING_HPP
+#define SHARE_RUNTIME_RTMLOCKING_HPP
 
 // Generate RTM (Restricted Transactional Memory) locking code for all inflated
 // locks when "UseRTMLocking" option is on with normal locking mechanism as fall back
@@ -110,4 +110,4 @@
   void print() { print_on(tty); }
 };
 
-#endif // SHARE_VM_RUNTIME_RTMLOCKING_HPP
+#endif // SHARE_RUNTIME_RTMLOCKING_HPP
--- a/src/hotspot/share/runtime/safepoint.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/safepoint.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SAFEPOINT_HPP
-#define SHARE_VM_RUNTIME_SAFEPOINT_HPP
+#ifndef SHARE_RUNTIME_SAFEPOINT_HPP
+#define SHARE_RUNTIME_SAFEPOINT_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/mutexLocker.hpp"
@@ -253,4 +253,4 @@
 
 
 
-#endif // SHARE_VM_RUNTIME_SAFEPOINT_HPP
+#endif // SHARE_RUNTIME_SAFEPOINT_HPP
--- a/src/hotspot/share/runtime/safepointMechanism.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/safepointMechanism.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_HPP
-#define SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_HPP
+#ifndef SHARE_RUNTIME_SAFEPOINTMECHANISM_HPP
+#define SHARE_RUNTIME_SAFEPOINTMECHANISM_HPP
 
 #include "runtime/globals.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -90,4 +90,4 @@
   static void initialize_header(JavaThread* thread);
 };
 
-#endif // SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_HPP
+#endif // SHARE_RUNTIME_SAFEPOINTMECHANISM_HPP
--- a/src/hotspot/share/runtime/safepointMechanism.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/safepointMechanism.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
-#define SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
+#ifndef SHARE_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
+#define SHARE_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
 
 #include "runtime/safepointMechanism.hpp"
 #include "runtime/safepoint.hpp"
@@ -95,4 +95,4 @@
   thread->set_polling_page_release(poll_disarmed_value());
 }
 
-#endif // SHARE_VM_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
+#endif // SHARE_RUNTIME_SAFEPOINTMECHANISM_INLINE_HPP
--- a/src/hotspot/share/runtime/safepointVerifiers.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/safepointVerifiers.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SAFEPOINTVERIFIERS_HPP
-#define SHARE_VM_RUNTIME_SAFEPOINTVERIFIERS_HPP
+#ifndef SHARE_RUNTIME_SAFEPOINTVERIFIERS_HPP
+#define SHARE_RUNTIME_SAFEPOINTVERIFIERS_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/thread.hpp"
@@ -172,4 +172,4 @@
 #endif
 };
 
-#endif // SHARE_VM_RUNTIME_SAFEPOINTVERIFIERS_HPP
+#endif // SHARE_RUNTIME_SAFEPOINTVERIFIERS_HPP
--- a/src/hotspot/share/runtime/semaphore.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/semaphore.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SEMAPHORE_HPP
-#define SHARE_VM_RUNTIME_SEMAPHORE_HPP
+#ifndef SHARE_RUNTIME_SEMAPHORE_HPP
+#define SHARE_RUNTIME_SEMAPHORE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -60,4 +60,4 @@
   void wait_with_safepoint_check(JavaThread* thread);
 };
 
-#endif // SHARE_VM_RUNTIME_SEMAPHORE_HPP
+#endif // SHARE_RUNTIME_SEMAPHORE_HPP
--- a/src/hotspot/share/runtime/semaphore.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/semaphore.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SEMAPHORE_INLINE_HPP
-#define SHARE_VM_RUNTIME_SEMAPHORE_INLINE_HPP
+#ifndef SHARE_RUNTIME_SEMAPHORE_INLINE_HPP
+#define SHARE_RUNTIME_SEMAPHORE_INLINE_HPP
 
 #include "runtime/interfaceSupport.inline.hpp"
 #include "runtime/semaphore.hpp"
@@ -38,4 +38,4 @@
   _impl.wait();
 }
 
-#endif // SHARE_VM_RUNTIME_SEMAPHORE_INLINE_HPP
+#endif // SHARE_RUNTIME_SEMAPHORE_INLINE_HPP
--- a/src/hotspot/share/runtime/serviceThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/serviceThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SERVICETHREAD_HPP
-#define SHARE_VM_RUNTIME_SERVICETHREAD_HPP
+#ifndef SHARE_RUNTIME_SERVICETHREAD_HPP
+#define SHARE_RUNTIME_SERVICETHREAD_HPP
 
 #include "runtime/thread.hpp"
 
@@ -48,4 +48,4 @@
   static bool is_service_thread(Thread* thread);
 };
 
-#endif // SHARE_VM_RUNTIME_SERVICETHREAD_HPP
+#endif // SHARE_RUNTIME_SERVICETHREAD_HPP
--- a/src/hotspot/share/runtime/sharedRuntime.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/sharedRuntime.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1376,6 +1376,14 @@
   }
 #endif
 
+  // Do not patch call site for static call when the class is not
+  // fully initialized.
+  if (invoke_code == Bytecodes::_invokestatic &&
+      !callee_method->method_holder()->is_initialized()) {
+    assert(callee_method->method_holder()->is_linked(), "must be");
+    return callee_method;
+  }
+
   // JSR 292 key invariant:
   // If the resolved method is a MethodHandle invoke target, the call
   // site must be a MethodHandle call site, because the lambda form might tail-call
--- a/src/hotspot/share/runtime/sharedRuntime.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/sharedRuntime.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SHAREDRUNTIME_HPP
-#define SHARE_VM_RUNTIME_SHAREDRUNTIME_HPP
+#ifndef SHARE_RUNTIME_SHAREDRUNTIME_HPP
+#define SHARE_RUNTIME_SHAREDRUNTIME_HPP
 
 #include "interpreter/bytecodeHistogram.hpp"
 #include "interpreter/bytecodeTracer.hpp"
@@ -725,4 +725,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_SHAREDRUNTIME_HPP
+#endif // SHARE_RUNTIME_SHAREDRUNTIME_HPP
--- a/src/hotspot/share/runtime/sharedRuntimeMath.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/sharedRuntimeMath.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SHAREDRUNTIMEMATH_HPP
-#define SHARE_VM_RUNTIME_SHAREDRUNTIMEMATH_HPP
+#ifndef SHARE_RUNTIME_SHAREDRUNTIMEMATH_HPP
+#define SHARE_RUNTIME_SHAREDRUNTIMEMATH_HPP
 
 #include <math.h>
 
@@ -127,4 +127,4 @@
   return x*twom54;
 }
 
-#endif // SHARE_VM_RUNTIME_SHAREDRUNTIMEMATH_HPP
+#endif // SHARE_RUNTIME_SHAREDRUNTIMEMATH_HPP
--- a/src/hotspot/share/runtime/signature.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/signature.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SIGNATURE_HPP
-#define SHARE_VM_RUNTIME_SIGNATURE_HPP
+#ifndef SHARE_RUNTIME_SIGNATURE_HPP
+#define SHARE_RUNTIME_SIGNATURE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/method.hpp"
@@ -428,4 +428,4 @@
     static bool invalid_name_char(char);
 };
 
-#endif // SHARE_VM_RUNTIME_SIGNATURE_HPP
+#endif // SHARE_RUNTIME_SIGNATURE_HPP
--- a/src/hotspot/share/runtime/stackValue.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/stackValue.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -206,7 +206,11 @@
       break;
 
     case T_OBJECT:
-      _handle_value()->print_value_on(st);
+      if (_handle_value() != NULL) {
+        _handle_value()->print_value_on(st);
+      } else {
+        st->print("NULL");
+      }
       st->print(" <" INTPTR_FORMAT ">", p2i((address)_handle_value()));
      break;
 
--- a/src/hotspot/share/runtime/stackValue.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/stackValue.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_STACKVALUE_HPP
-#define SHARE_VM_RUNTIME_STACKVALUE_HPP
+#ifndef SHARE_RUNTIME_STACKVALUE_HPP
+#define SHARE_RUNTIME_STACKVALUE_HPP
 
 #include "code/location.hpp"
 #include "runtime/handles.hpp"
@@ -117,4 +117,4 @@
 #endif
 };
 
-#endif // SHARE_VM_RUNTIME_STACKVALUE_HPP
+#endif // SHARE_RUNTIME_STACKVALUE_HPP
--- a/src/hotspot/share/runtime/stackValueCollection.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/stackValueCollection.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_STACKVALUECOLLECTION_HPP
-#define SHARE_VM_RUNTIME_STACKVALUECOLLECTION_HPP
+#ifndef SHARE_RUNTIME_STACKVALUECOLLECTION_HPP
+#define SHARE_RUNTIME_STACKVALUECOLLECTION_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/stackValue.hpp"
@@ -59,4 +59,4 @@
   void print();
 };
 
-#endif // SHARE_VM_RUNTIME_STACKVALUECOLLECTION_HPP
+#endif // SHARE_RUNTIME_STACKVALUECOLLECTION_HPP
--- a/src/hotspot/share/runtime/statSampler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/statSampler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_STATSAMPLER_HPP
-#define SHARE_VM_RUNTIME_STATSAMPLER_HPP
+#ifndef SHARE_RUNTIME_STATSAMPLER_HPP
+#define SHARE_RUNTIME_STATSAMPLER_HPP
 
 #include "runtime/perfData.hpp"
 #include "runtime/task.hpp"
@@ -67,4 +67,4 @@
 
 void statSampler_exit();
 
-#endif // SHARE_VM_RUNTIME_STATSAMPLER_HPP
+#endif // SHARE_RUNTIME_STATSAMPLER_HPP
--- a/src/hotspot/share/runtime/stubCodeGenerator.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/stubCodeGenerator.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_STUBCODEGENERATOR_HPP
-#define SHARE_VM_RUNTIME_STUBCODEGENERATOR_HPP
+#ifndef SHARE_RUNTIME_STUBCODEGENERATOR_HPP
+#define SHARE_RUNTIME_STUBCODEGENERATOR_HPP
 
 #include "asm/assembler.hpp"
 #include "memory/allocation.hpp"
@@ -128,4 +128,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_STUBCODEGENERATOR_HPP
+#endif // SHARE_RUNTIME_STUBCODEGENERATOR_HPP
--- a/src/hotspot/share/runtime/stubRoutines.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/stubRoutines.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_STUBROUTINES_HPP
-#define SHARE_VM_RUNTIME_STUBROUTINES_HPP
+#ifndef SHARE_RUNTIME_STUBROUTINES_HPP
+#define SHARE_RUNTIME_STUBROUTINES_HPP
 
 #include "code/codeBlob.hpp"
 #include "memory/allocation.hpp"
@@ -474,4 +474,4 @@
 inline bool CanUseSafeFetchN() {
   return StubRoutines::SafeFetchN_stub() ? true : false;
 }
-#endif // SHARE_VM_RUNTIME_STUBROUTINES_HPP
+#endif // SHARE_RUNTIME_STUBROUTINES_HPP
--- a/src/hotspot/share/runtime/sweeper.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/sweeper.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SWEEPER_HPP
-#define SHARE_VM_RUNTIME_SWEEPER_HPP
+#ifndef SHARE_RUNTIME_SWEEPER_HPP
+#define SHARE_RUNTIME_SWEEPER_HPP
 
 class WhiteBox;
 
@@ -128,4 +128,4 @@
   static void print() { print(tty); }
 };
 
-#endif // SHARE_VM_RUNTIME_SWEEPER_HPP
+#endif // SHARE_RUNTIME_SWEEPER_HPP
--- a/src/hotspot/share/runtime/synchronizer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/synchronizer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_SYNCHRONIZER_HPP
-#define SHARE_VM_RUNTIME_SYNCHRONIZER_HPP
+#ifndef SHARE_RUNTIME_SYNCHRONIZER_HPP
+#define SHARE_RUNTIME_SYNCHRONIZER_HPP
 
 #include "memory/padded.hpp"
 #include "oops/markOop.hpp"
@@ -206,4 +206,4 @@
   void reenter(intptr_t recursion, TRAPS)  { ObjectSynchronizer::reenter(_obj, recursion, CHECK); }
 };
 
-#endif // SHARE_VM_RUNTIME_SYNCHRONIZER_HPP
+#endif // SHARE_RUNTIME_SYNCHRONIZER_HPP
--- a/src/hotspot/share/runtime/task.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/task.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_TASK_HPP
-#define SHARE_VM_RUNTIME_TASK_HPP
+#ifndef SHARE_RUNTIME_TASK_HPP
+#define SHARE_RUNTIME_TASK_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/timer.hpp"
@@ -107,4 +107,4 @@
   virtual void task() = 0;
 };
 
-#endif // SHARE_VM_RUNTIME_TASK_HPP
+#endif // SHARE_RUNTIME_TASK_HPP
--- a/src/hotspot/share/runtime/thread.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/thread.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -1671,6 +1671,8 @@
     SafepointMechanism::initialize_header(this);
   }
 
+  _class_to_be_initialized = NULL;
+
   pd_initialize();
 }
 
@@ -3716,6 +3718,10 @@
   // Timing (must come after argument parsing)
   TraceTime timer("Create VM", TRACETIME_LOG(Info, startuptime));
 
+  // Initialize the os module after parsing the args
+  jint os_init_2_result = os::init_2();
+  if (os_init_2_result != JNI_OK) return os_init_2_result;
+
 #ifdef CAN_SHOW_REGISTERS_ON_ASSERT
   // Initialize assert poison page mechanism.
   if (ShowRegistersOnAssert) {
@@ -3723,10 +3729,6 @@
   }
 #endif // CAN_SHOW_REGISTERS_ON_ASSERT
 
-  // Initialize the os module after parsing the args
-  jint os_init_2_result = os::init_2();
-  if (os_init_2_result != JNI_OK) return os_init_2_result;
-
   SafepointMechanism::initialize();
 
   jint adjust_after_os_result = Arguments::adjust_after_os();
--- a/src/hotspot/share/runtime/thread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/thread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREAD_HPP
-#define SHARE_VM_RUNTIME_THREAD_HPP
+#ifndef SHARE_RUNTIME_THREAD_HPP
+#define SHARE_RUNTIME_THREAD_HPP
 
 #include "jni.h"
 #include "code/compiledMethod.hpp"
@@ -2088,6 +2088,16 @@
   bool is_attaching_via_jni() const { return _jni_attach_state == _attaching_via_jni; }
   bool has_attached_via_jni() const { return is_attaching_via_jni() || _jni_attach_state == _attached_via_jni; }
   inline void set_done_attaching_via_jni();
+
+  // Stack dump assistance:
+  // Track the class we want to initialize but for which we have to wait
+  // on its init_lock() because it is already being initialized.
+  void set_class_to_be_initialized(InstanceKlass* k);
+  InstanceKlass* class_to_be_initialized() const;
+
+private:
+  InstanceKlass* _class_to_be_initialized;
+
 };
 
 // Inline implementation of JavaThread::current
@@ -2329,4 +2339,4 @@
 };
 
 
-#endif // SHARE_VM_RUNTIME_THREAD_HPP
+#endif // SHARE_RUNTIME_THREAD_HPP
--- a/src/hotspot/share/runtime/thread.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/thread.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP
-#define SHARE_VM_RUNTIME_THREAD_INLINE_HPP
+#ifndef SHARE_RUNTIME_THREAD_INLINE_HPP
+#define SHARE_RUNTIME_THREAD_INLINE_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/globals.hpp"
@@ -233,4 +233,16 @@
   OrderAccess::release_store((volatile jint *) &_terminated, (jint) _thread_terminated);
 }
 
-#endif // SHARE_VM_RUNTIME_THREAD_INLINE_HPP
+// Allow tracking of class initialization monitor use
+inline void JavaThread::set_class_to_be_initialized(InstanceKlass* k) {
+  assert((k == NULL && _class_to_be_initialized != NULL) ||
+         (k != NULL && _class_to_be_initialized == NULL), "incorrect usage");
+  assert(this == Thread::current(), "Only the current thread can set this field");
+  _class_to_be_initialized = k;
+}
+
+inline InstanceKlass* JavaThread::class_to_be_initialized() const {
+  return _class_to_be_initialized;
+}
+
+#endif // SHARE_RUNTIME_THREAD_INLINE_HPP
--- a/src/hotspot/share/runtime/threadCritical.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadCritical.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREADCRITICAL_HPP
-#define SHARE_VM_RUNTIME_THREADCRITICAL_HPP
+#ifndef SHARE_RUNTIME_THREADCRITICAL_HPP
+#define SHARE_RUNTIME_THREADCRITICAL_HPP
 
 #include "memory/allocation.hpp"
 
@@ -52,4 +52,4 @@
   ~ThreadCritical();
 };
 
-#endif // SHARE_VM_RUNTIME_THREADCRITICAL_HPP
+#endif // SHARE_RUNTIME_THREADCRITICAL_HPP
--- a/src/hotspot/share/runtime/threadHeapSampler.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadHeapSampler.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018, Google and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef RUNTIME_THREADHEAPSAMPLER_HPP
-#define RUNTIME_THREADHEAPSAMPLER_HPP
+#ifndef SHARE_RUNTIME_THREADHEAPSAMPLER_HPP
+#define SHARE_RUNTIME_THREADHEAPSAMPLER_HPP
 
 #include "memory/allocation.hpp"
 
--- a/src/hotspot/share/runtime/threadLocalStorage.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadLocalStorage.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREADLOCALSTORAGE_HPP
-#define SHARE_VM_RUNTIME_THREADLOCALSTORAGE_HPP
+#ifndef SHARE_RUNTIME_THREADLOCALSTORAGE_HPP
+#define SHARE_RUNTIME_THREADLOCALSTORAGE_HPP
 
 #include "memory/allocation.hpp"
 
@@ -47,4 +47,4 @@
   static bool    is_initialized(); // can't use TLS prior to initialization
 };
 
-#endif // SHARE_VM_RUNTIME_THREADLOCALSTORAGE_HPP
+#endif // SHARE_RUNTIME_THREADLOCALSTORAGE_HPP
--- a/src/hotspot/share/runtime/threadSMR.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadSMR.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREADSMR_HPP
-#define SHARE_VM_RUNTIME_THREADSMR_HPP
+#ifndef SHARE_RUNTIME_THREADSMR_HPP
+#define SHARE_RUNTIME_THREADSMR_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/timer.hpp"
@@ -372,4 +372,4 @@
   }
 };
 
-#endif // SHARE_VM_RUNTIME_THREADSMR_HPP
+#endif // SHARE_RUNTIME_THREADSMR_HPP
--- a/src/hotspot/share/runtime/threadSMR.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadSMR.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREADSMR_INLINE_HPP
-#define SHARE_VM_RUNTIME_THREADSMR_INLINE_HPP
+#ifndef SHARE_RUNTIME_THREADSMR_INLINE_HPP
+#define SHARE_RUNTIME_THREADSMR_INLINE_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/prefetch.inline.hpp"
@@ -92,4 +92,4 @@
   ThreadsSMRSupport::update_tlh_time_max(millis);
 }
 
-#endif // SHARE_VM_RUNTIME_THREADSMR_INLINE_HPP
+#endif // SHARE_RUNTIME_THREADSMR_INLINE_HPP
--- a/src/hotspot/share/runtime/threadStatisticalInfo.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/threadStatisticalInfo.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_THREADSTATISTICS_HPP
-#define SHARE_VM_RUNTIME_THREADSTATISTICS_HPP
+#ifndef SHARE_RUNTIME_THREADSTATISTICALINFO_HPP
+#define SHARE_RUNTIME_THREADSTATISTICALINFO_HPP
 
 #include "jni.h"
 #include "runtime/os.hpp"
@@ -45,4 +45,4 @@
   uint64_t getElapsedTime() const           { return os::javaTimeMillis() - getStartTime(); }
 };
 
-#endif // SHARE_VM_RUNTIME_THREADSTATISTICS_HPP
+#endif // SHARE_RUNTIME_THREADSTATISTICALINFO_HPP
--- a/src/hotspot/share/runtime/tieredThresholdPolicy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/tieredThresholdPolicy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
-#define SHARE_VM_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
+#ifndef SHARE_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
+#define SHARE_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
 
 #include "code/nmethod.hpp"
 #include "oops/methodData.hpp"
@@ -274,4 +274,4 @@
 
 #endif // TIERED
 
-#endif // SHARE_VM_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
+#endif // SHARE_RUNTIME_TIEREDTHRESHOLDPOLICY_HPP
--- a/src/hotspot/share/runtime/timer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/timer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_TIMER_HPP
-#define SHARE_VM_RUNTIME_TIMER_HPP
+#ifndef SHARE_RUNTIME_TIMER_HPP
+#define SHARE_RUNTIME_TIMER_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -96,4 +96,4 @@
   static jlong millis_to_counter(jlong millis);
 };
 
-#endif // SHARE_VM_RUNTIME_TIMER_HPP
+#endif // SHARE_RUNTIME_TIMER_HPP
--- a/src/hotspot/share/runtime/timerTrace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/timerTrace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_TIMERTRACE_HPP
-#define SHARE_VM_RUNTIME_TIMERTRACE_HPP
+#ifndef SHARE_RUNTIME_TIMERTRACE_HPP
+#define SHARE_RUNTIME_TIMERTRACE_HPP
 
 #include "logging/log.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -77,4 +77,4 @@
 };
 
 
-#endif // SHARE_VM_RUNTIME_TIMERTRACE_HPP
+#endif // SHARE_RUNTIME_TIMERTRACE_HPP
--- a/src/hotspot/share/runtime/unhandledOops.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/unhandledOops.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_UNHANDLEDOOPS_HPP
-#define SHARE_VM_RUNTIME_UNHANDLEDOOPS_HPP
+#ifndef SHARE_RUNTIME_UNHANDLEDOOPS_HPP
+#define SHARE_RUNTIME_UNHANDLEDOOPS_HPP
 
 #ifdef CHECK_UNHANDLED_OOPS
 
@@ -86,4 +86,4 @@
 #endif // _LP64
 #endif // CHECK_UNHANDLED_OOPS
 
-#endif // SHARE_VM_RUNTIME_UNHANDLEDOOPS_HPP
+#endif // SHARE_RUNTIME_UNHANDLEDOOPS_HPP
--- a/src/hotspot/share/runtime/vframe.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vframe.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -190,6 +190,14 @@
       Klass* k = obj->klass();
       st->print_cr("\t- %s <" INTPTR_FORMAT "> (a %s)", "parking to wait for ", p2i(obj), k->external_name());
     }
+    else if (thread()->osthread()->get_state() == OBJECT_WAIT) {
+      // We are waiting on an Object monitor but Object.wait() isn't the
+      // top-frame, so we should be waiting on a Class initialization monitor.
+      InstanceKlass* k = thread()->class_to_be_initialized();
+      if (k != NULL) {
+        st->print_cr("\t- waiting on the Class initialization monitor for %s", k->external_name());
+      }
+    }
   }
 
   // Print out all monitors that we have locked, or are trying to lock,
--- a/src/hotspot/share/runtime/vframe.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vframe.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VFRAME_HPP
-#define SHARE_VM_RUNTIME_VFRAME_HPP
+#ifndef SHARE_RUNTIME_VFRAME_HPP
+#define SHARE_RUNTIME_VFRAME_HPP
 
 #include "code/debugInfo.hpp"
 #include "code/debugInfoRec.hpp"
@@ -354,4 +354,4 @@
   vframeStream(JavaThread* thread, frame top_frame, bool stop_at_java_call_stub = false);
 };
 
-#endif // SHARE_VM_RUNTIME_VFRAME_HPP
+#endif // SHARE_RUNTIME_VFRAME_HPP
--- a/src/hotspot/share/runtime/vframe.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vframe.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VFRAME_INLINE_HPP
-#define SHARE_VM_RUNTIME_VFRAME_INLINE_HPP
+#ifndef SHARE_RUNTIME_VFRAME_INLINE_HPP
+#define SHARE_RUNTIME_VFRAME_INLINE_HPP
 
 #include "runtime/frame.inline.hpp"
 #include "runtime/vframe.hpp"
@@ -228,4 +228,4 @@
   _bci    = bci;
 }
 
-#endif // SHARE_VM_RUNTIME_VFRAME_INLINE_HPP
+#endif // SHARE_RUNTIME_VFRAME_INLINE_HPP
--- a/src/hotspot/share/runtime/vframeArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vframeArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VFRAMEARRAY_HPP
-#define SHARE_VM_RUNTIME_VFRAMEARRAY_HPP
+#ifndef SHARE_RUNTIME_VFRAMEARRAY_HPP
+#define SHARE_RUNTIME_VFRAMEARRAY_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/arrayOop.hpp"
@@ -228,4 +228,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_VFRAMEARRAY_HPP
+#endif // SHARE_RUNTIME_VFRAMEARRAY_HPP
--- a/src/hotspot/share/runtime/vframe_hp.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vframe_hp.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VFRAME_HP_HPP
-#define SHARE_VM_RUNTIME_VFRAME_HP_HPP
+#ifndef SHARE_RUNTIME_VFRAME_HP_HPP
+#define SHARE_RUNTIME_VFRAME_HP_HPP
 
 #include "runtime/vframe.hpp"
 
@@ -162,4 +162,4 @@
 
 };
 
-#endif // SHARE_VM_RUNTIME_VFRAME_HP_HPP
+#endif // SHARE_RUNTIME_VFRAME_HP_HPP
--- a/src/hotspot/share/runtime/vmOperations.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vmOperations.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VMOPERATIONS_HPP
-#define SHARE_VM_RUNTIME_VMOPERATIONS_HPP
+#ifndef SHARE_RUNTIME_VMOPERATIONS_HPP
+#define SHARE_RUNTIME_VMOPERATIONS_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "memory/allocation.hpp"
@@ -518,4 +518,4 @@
 };
 #endif // INCLUDE_SERVICES
 
-#endif // SHARE_VM_RUNTIME_VMOPERATIONS_HPP
+#endif // SHARE_RUNTIME_VMOPERATIONS_HPP
--- a/src/hotspot/share/runtime/vmStructs.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vmStructs.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VMSTRUCTS_HPP
-#define SHARE_VM_RUNTIME_VMSTRUCTS_HPP
+#ifndef SHARE_RUNTIME_VMSTRUCTS_HPP
+#define SHARE_RUNTIME_VMSTRUCTS_HPP
 
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -299,4 +299,4 @@
 #define GENERATE_VM_ADDRESS_LAST_ENTRY() \
  { NULL, NULL }
 
-#endif // SHARE_VM_RUNTIME_VMSTRUCTS_HPP
+#endif // SHARE_RUNTIME_VMSTRUCTS_HPP
--- a/src/hotspot/share/runtime/vmThread.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vmThread.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VMTHREAD_HPP
-#define SHARE_VM_RUNTIME_VMTHREAD_HPP
+#ifndef SHARE_RUNTIME_VMTHREAD_HPP
+#define SHARE_RUNTIME_VMTHREAD_HPP
 
 #include "runtime/perfData.hpp"
 #include "runtime/thread.hpp"
@@ -186,4 +186,4 @@
   static VMThread*     _vm_thread;
 };
 
-#endif // SHARE_VM_RUNTIME_VMTHREAD_HPP
+#endif // SHARE_RUNTIME_VMTHREAD_HPP
--- a/src/hotspot/share/runtime/vm_version.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/runtime/vm_version.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_RUNTIME_VM_VERSION_HPP
-#define SHARE_VM_RUNTIME_VM_VERSION_HPP
+#ifndef SHARE_RUNTIME_VM_VERSION_HPP
+#define SHARE_RUNTIME_VM_VERSION_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/ostream.hpp"
@@ -153,4 +153,4 @@
 
 #include CPU_HEADER(vm_version)
 
-#endif // SHARE_VM_RUNTIME_VM_VERSION_HPP
+#endif // SHARE_RUNTIME_VM_VERSION_HPP
--- a/src/hotspot/share/services/allocationSite.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/allocationSite.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_ALLOCATION_SITE_HPP
-#define SHARE_VM_SERVICES_ALLOCATION_SITE_HPP
+#ifndef SHARE_SERVICES_ALLOCATIONSITE_HPP
+#define SHARE_SERVICES_ALLOCATIONSITE_HPP
 
 #include "utilities/nativeCallStack.hpp"
 
@@ -53,4 +53,4 @@
   const E* peek() const { return &e; }
 };
 
-#endif  // SHARE_VM_SERVICES_ALLOCATION_SITE_HPP
+#endif // SHARE_SERVICES_ALLOCATIONSITE_HPP
--- a/src/hotspot/share/services/attachListener.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/attachListener.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_ATTACHLISTENER_HPP
-#define SHARE_VM_SERVICES_ATTACHLISTENER_HPP
+#ifndef SHARE_SERVICES_ATTACHLISTENER_HPP
+#define SHARE_SERVICES_ATTACHLISTENER_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -160,4 +160,4 @@
 };
 #endif // INCLUDE_SERVICES
 
-#endif // SHARE_VM_SERVICES_ATTACHLISTENER_HPP
+#endif // SHARE_SERVICES_ATTACHLISTENER_HPP
--- a/src/hotspot/share/services/classLoadingService.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/classLoadingService.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_CLASSLOADINGSERVICE_HPP
-#define SHARE_VM_SERVICES_CLASSLOADINGSERVICE_HPP
+#ifndef SHARE_SERVICES_CLASSLOADINGSERVICE_HPP
+#define SHARE_SERVICES_CLASSLOADINGSERVICE_HPP
 
 #include "logging/log.hpp"
 #include "runtime/handles.hpp"
@@ -117,4 +117,4 @@
   }
 };
 
-#endif // SHARE_VM_SERVICES_CLASSLOADINGSERVICE_HPP
+#endif // SHARE_SERVICES_CLASSLOADINGSERVICE_HPP
--- a/src/hotspot/share/services/diagnosticArgument.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/diagnosticArgument.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP
-#define SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP
+#ifndef SHARE_SERVICES_DIAGNOSTICARGUMENT_HPP
+#define SHARE_SERVICES_DIAGNOSTICARGUMENT_HPP
 
 #include "classfile/vmSymbols.hpp"
 #include "memory/allocation.hpp"
@@ -134,4 +134,4 @@
   void value_as_str(char *buf, size_t len) const { to_string(_value, buf, len);}
 };
 
-#endif  /* SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP */
+#endif // SHARE_SERVICES_DIAGNOSTICARGUMENT_HPP
--- a/src/hotspot/share/services/diagnosticCommand.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/diagnosticCommand.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP
-#define SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP
+#ifndef SHARE_SERVICES_DIAGNOSTICCOMMAND_HPP
+#define SHARE_SERVICES_DIAGNOSTICCOMMAND_HPP
 
 #include "classfile/stringTable.hpp"
 #include "classfile/symbolTable.hpp"
@@ -888,4 +888,4 @@
 };
 #endif // INCLUDE_JVMTI
 
-#endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP
+#endif // SHARE_SERVICES_DIAGNOSTICCOMMAND_HPP
--- a/src/hotspot/share/services/diagnosticFramework.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/diagnosticFramework.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_DIAGNOSTICFRAMEWORK_HPP
-#define SHARE_VM_SERVICES_DIAGNOSTICFRAMEWORK_HPP
+#ifndef SHARE_SERVICES_DIAGNOSTICFRAMEWORK_HPP
+#define SHARE_SERVICES_DIAGNOSTICFRAMEWORK_HPP
 
 #include "classfile/vmSymbols.hpp"
 #include "memory/allocation.hpp"
@@ -439,4 +439,4 @@
     friend class Management;
 };
 
-#endif // SHARE_VM_SERVICES_DIAGNOSTICFRAMEWORK_HPP
+#endif // SHARE_SERVICES_DIAGNOSTICFRAMEWORK_HPP
--- a/src/hotspot/share/services/dtraceAttacher.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/dtraceAttacher.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_DTRACEATTACHER_HPP
-#define SHARE_VM_SERVICES_DTRACEATTACHER_HPP
+#ifndef SHARE_SERVICES_DTRACEATTACHER_HPP
+#define SHARE_SERVICES_DTRACEATTACHER_HPP
 
 #define DTRACE_ALLOC_PROBES    0x1
 #define DTRACE_METHOD_PROBES   0x2
@@ -48,4 +48,4 @@
   static void set_monitor_dprobes(bool value);
 };
 
-#endif // SHARE_VM_SERVICES_DTRACEATTACHER_HPP
+#endif // SHARE_SERVICES_DTRACEATTACHER_HPP
--- a/src/hotspot/share/services/gcNotifier.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/gcNotifier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_GCNOTIFIER_HPP
-#define SHARE_VM_SERVICES_GCNOTIFIER_HPP
+#ifndef SHARE_SERVICES_GCNOTIFIER_HPP
+#define SHARE_SERVICES_GCNOTIFIER_HPP
 
 #include "memory/allocation.hpp"
 #include "services/memoryPool.hpp"
@@ -67,4 +67,4 @@
   static void sendNotification(TRAPS);
 };
 
-#endif // SHARE_VM_SERVICES_GCNOTIFIER_HPP
+#endif // SHARE_SERVICES_GCNOTIFIER_HPP
--- a/src/hotspot/share/services/heapDumper.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/heapDumper.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_HEAPDUMPER_HPP
-#define SHARE_VM_SERVICES_HEAPDUMPER_HPP
+#ifndef SHARE_SERVICES_HEAPDUMPER_HPP
+#define SHARE_SERVICES_HEAPDUMPER_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
@@ -81,4 +81,4 @@
   static void dump_heap_from_oome()    NOT_SERVICES_RETURN;
 };
 
-#endif // SHARE_VM_SERVICES_HEAPDUMPER_HPP
+#endif // SHARE_SERVICES_HEAPDUMPER_HPP
--- a/src/hotspot/share/services/lowMemoryDetector.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/lowMemoryDetector.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_LOWMEMORYDETECTOR_HPP
-#define SHARE_VM_SERVICES_LOWMEMORYDETECTOR_HPP
+#ifndef SHARE_SERVICES_LOWMEMORYDETECTOR_HPP
+#define SHARE_SERVICES_LOWMEMORYDETECTOR_HPP
 
 #include "memory/allocation.hpp"
 #include "services/memoryPool.hpp"
@@ -290,4 +290,4 @@
   }
 };
 
-#endif // SHARE_VM_SERVICES_LOWMEMORYDETECTOR_HPP
+#endif // SHARE_SERVICES_LOWMEMORYDETECTOR_HPP
--- a/src/hotspot/share/services/mallocSiteTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/mallocSiteTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MALLOC_SITE_TABLE_HPP
-#define SHARE_VM_SERVICES_MALLOC_SITE_TABLE_HPP
+#ifndef SHARE_SERVICES_MALLOCSITETABLE_HPP
+#define SHARE_SERVICES_MALLOCSITETABLE_HPP
 
 #if INCLUDE_NMT
 
@@ -271,4 +271,4 @@
 };
 
 #endif // INCLUDE_NMT
-#endif // SHARE_VM_SERVICES_MALLOC_SITE_TABLE_HPP
+#endif // SHARE_SERVICES_MALLOCSITETABLE_HPP
--- a/src/hotspot/share/services/mallocTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/mallocTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MALLOC_TRACKER_HPP
-#define SHARE_VM_SERVICES_MALLOC_TRACKER_HPP
+#ifndef SHARE_SERVICES_MALLOCTRACKER_HPP
+#define SHARE_SERVICES_MALLOCTRACKER_HPP
 
 #if INCLUDE_NMT
 
@@ -375,4 +375,4 @@
 #endif // INCLUDE_NMT
 
 
-#endif //SHARE_VM_SERVICES_MALLOC_TRACKER_HPP
+#endif // SHARE_SERVICES_MALLOCTRACKER_HPP
--- a/src/hotspot/share/services/mallocTracker.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/mallocTracker.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MALLOC_TRACKER_INLINE_HPP
-#define SHARE_VM_SERVICES_MALLOC_TRACKER_INLINE_HPP
+#ifndef SHARE_SERVICES_MALLOCTRACKER_INLINE_HPP
+#define SHARE_SERVICES_MALLOCTRACKER_INLINE_HPP
 
 #include "services/mallocTracker.hpp"
 #include "services/memTracker.hpp"
@@ -32,5 +32,4 @@
   return get_base(memblock, MemTracker::tracking_level());
 }
 
-#endif // SHARE_VM_SERVICES_MALLOC_TRACKER_INLINE_HPP
-
+#endif // SHARE_SERVICES_MALLOCTRACKER_INLINE_HPP
--- a/src/hotspot/share/services/management.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/management.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MANAGEMENT_HPP
-#define SHARE_VM_SERVICES_MANAGEMENT_HPP
+#ifndef SHARE_SERVICES_MANAGEMENT_HPP
+#define SHARE_SERVICES_MANAGEMENT_HPP
 
 #include "jmm.h"
 #include "memory/allocation.hpp"
@@ -134,4 +134,4 @@
 
 };
 
-#endif // SHARE_VM_SERVICES_MANAGEMENT_HPP
+#endif // SHARE_SERVICES_MANAGEMENT_HPP
--- a/src/hotspot/share/services/memBaseline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memBaseline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEM_BASELINE_HPP
-#define SHARE_VM_SERVICES_MEM_BASELINE_HPP
+#ifndef SHARE_SERVICES_MEMBASELINE_HPP
+#define SHARE_SERVICES_MEMBASELINE_HPP
 
 #if INCLUDE_NMT
 
@@ -216,4 +216,4 @@
 
 #endif // INCLUDE_NMT
 
-#endif // SHARE_VM_SERVICES_MEM_BASELINE_HPP
+#endif // SHARE_SERVICES_MEMBASELINE_HPP
--- a/src/hotspot/share/services/memReporter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memReporter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEM_REPORTER_HPP
-#define SHARE_VM_SERVICES_MEM_REPORTER_HPP
+#ifndef SHARE_SERVICES_MEMREPORTER_HPP
+#define SHARE_SERVICES_MEMREPORTER_HPP
 
 #if INCLUDE_NMT
 
@@ -235,5 +235,4 @@
 
 #endif // INCLUDE_NMT
 
-#endif
-
+#endif // SHARE_SERVICES_MEMREPORTER_HPP
--- a/src/hotspot/share/services/memTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEM_TRACKER_HPP
-#define SHARE_VM_SERVICES_MEM_TRACKER_HPP
+#ifndef SHARE_SERVICES_MEMTRACKER_HPP
+#define SHARE_SERVICES_MEMTRACKER_HPP
 
 #include "services/nmtCommon.hpp"
 #include "utilities/nativeCallStack.hpp"
@@ -321,4 +321,4 @@
 
 #endif // INCLUDE_NMT
 
-#endif // SHARE_VM_SERVICES_MEM_TRACKER_HPP
+#endif // SHARE_SERVICES_MEMTRACKER_HPP
--- a/src/hotspot/share/services/memoryManager.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memoryManager.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEMORYMANAGER_HPP
-#define SHARE_VM_SERVICES_MEMORYMANAGER_HPP
+#ifndef SHARE_SERVICES_MEMORYMANAGER_HPP
+#define SHARE_SERVICES_MEMORYMANAGER_HPP
 
 #include "gc/shared/gcCause.hpp"
 #include "memory/allocation.hpp"
@@ -182,4 +182,4 @@
   bool is_notification_enabled() { return _notification_enabled; }
 };
 
-#endif // SHARE_VM_SERVICES_MEMORYMANAGER_HPP
+#endif // SHARE_SERVICES_MEMORYMANAGER_HPP
--- a/src/hotspot/share/services/memoryPool.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memoryPool.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEMORYPOOL_HPP
-#define SHARE_VM_SERVICES_MEMORYPOOL_HPP
+#ifndef SHARE_SERVICES_MEMORYPOOL_HPP
+#define SHARE_SERVICES_MEMORYPOOL_HPP
 
 #include "memory/heap.hpp"
 #include "oops/oop.hpp"
@@ -172,4 +172,4 @@
   size_t used_in_bytes();
 };
 
-#endif // SHARE_VM_SERVICES_MEMORYPOOL_HPP
+#endif // SHARE_SERVICES_MEMORYPOOL_HPP
--- a/src/hotspot/share/services/memoryService.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memoryService.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEMORYSERVICE_HPP
-#define SHARE_VM_SERVICES_MEMORYSERVICE_HPP
+#ifndef SHARE_SERVICES_MEMORYSERVICE_HPP
+#define SHARE_SERVICES_MEMORYSERVICE_HPP
 
 #include "gc/shared/gcCause.hpp"
 #include "logging/log.hpp"
@@ -153,4 +153,4 @@
   ~TraceMemoryManagerStats();
 };
 
-#endif // SHARE_VM_SERVICES_MEMORYSERVICE_HPP
+#endif // SHARE_SERVICES_MEMORYSERVICE_HPP
--- a/src/hotspot/share/services/memoryUsage.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/memoryUsage.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_MEMORYUSAGE_HPP
-#define SHARE_VM_SERVICES_MEMORYUSAGE_HPP
+#ifndef SHARE_SERVICES_MEMORYUSAGE_HPP
+#define SHARE_SERVICES_MEMORYUSAGE_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -83,4 +83,4 @@
   jlong max_size_as_jlong()  const { return convert_to_jlong(_maxSize); }
 };
 
-#endif // SHARE_VM_SERVICES_MEMORYUSAGE_HPP
+#endif // SHARE_SERVICES_MEMORYUSAGE_HPP
--- a/src/hotspot/share/services/nmtCommon.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/nmtCommon.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_NMT_COMMON_HPP
-#define SHARE_VM_SERVICES_NMT_COMMON_HPP
+#ifndef SHARE_SERVICES_NMTCOMMON_HPP
+#define SHARE_SERVICES_NMTCOMMON_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/align.hpp"
@@ -78,4 +78,4 @@
 };
 
 
-#endif
+#endif // SHARE_SERVICES_NMTCOMMON_HPP
--- a/src/hotspot/share/services/nmtDCmd.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/nmtDCmd.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_NMT_DCMD_HPP
-#define SHARE_VM_SERVICES_NMT_DCMD_HPP
+#ifndef SHARE_SERVICES_NMTDCMD_HPP
+#define SHARE_SERVICES_NMTDCMD_HPP
 
 #if INCLUDE_NMT
 
@@ -75,4 +75,4 @@
 
 #endif // INCLUDE_NMT
 
-#endif // SHARE_VM_SERVICES_NMT_DCMD_HPP
+#endif // SHARE_SERVICES_NMTDCMD_HPP
--- a/src/hotspot/share/services/runtimeService.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/runtimeService.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_RUNTIMESERVICE_HPP
-#define SHARE_VM_SERVICES_RUNTIMESERVICE_HPP
+#ifndef SHARE_SERVICES_RUNTIMESERVICE_HPP
+#define SHARE_SERVICES_RUNTIMESERVICE_HPP
 
 #include "runtime/perfData.hpp"
 #include "runtime/timer.hpp"
@@ -58,4 +58,4 @@
 
 };
 
-#endif // SHARE_VM_SERVICES_RUNTIMESERVICE_HPP
+#endif // SHARE_SERVICES_RUNTIMESERVICE_HPP
--- a/src/hotspot/share/services/threadService.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/threadService.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_THREADSERVICE_HPP
-#define SHARE_VM_SERVICES_THREADSERVICE_HPP
+#ifndef SHARE_SERVICES_THREADSERVICE_HPP
+#define SHARE_SERVICES_THREADSERVICE_HPP
 
 #include "classfile/javaClasses.hpp"
 #include "runtime/handles.hpp"
@@ -610,4 +610,4 @@
   }
 };
 
-#endif // SHARE_VM_SERVICES_THREADSERVICE_HPP
+#endif // SHARE_SERVICES_THREADSERVICE_HPP
--- a/src/hotspot/share/services/virtualMemoryTracker.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/virtualMemoryTracker.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_VIRTUAL_MEMORY_TRACKER_HPP
-#define SHARE_VM_SERVICES_VIRTUAL_MEMORY_TRACKER_HPP
+#ifndef SHARE_SERVICES_VIRTUALMEMORYTRACKER_HPP
+#define SHARE_SERVICES_VIRTUALMEMORYTRACKER_HPP
 
 #if INCLUDE_NMT
 
@@ -445,4 +445,4 @@
 
 #endif // INCLUDE_NMT
 
-#endif // SHARE_VM_SERVICES_VIRTUAL_MEMORY_TRACKER_HPP
+#endif // SHARE_SERVICES_VIRTUALMEMORYTRACKER_HPP
--- a/src/hotspot/share/services/writeableFlags.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/services/writeableFlags.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_SERVICES_WRITEABLEFLAG_HPP
-#define SHARE_VM_SERVICES_WRITEABLEFLAG_HPP
+#ifndef SHARE_SERVICES_WRITEABLEFLAGS_HPP
+#define SHARE_SERVICES_WRITEABLEFLAGS_HPP
 
 #include "runtime/flags/jvmFlag.hpp"
 #include "runtime/globals.hpp"
@@ -89,4 +89,4 @@
   static JVMFlag::Error set_flag(const char* flag_name, jvalue flag_value, JVMFlag::Flags origin, FormatBuffer<80>& err_msg);
 };
 
-#endif /* SHARE_VM_SERVICES_WRITEABLEFLAG_HPP */
+#endif // SHARE_SERVICES_WRITEABLEFLAGS_HPP
--- a/src/hotspot/share/utilities/accessFlags.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/accessFlags.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ACCESSFLAGS_HPP
-#define SHARE_VM_UTILITIES_ACCESSFLAGS_HPP
+#ifndef SHARE_UTILITIES_ACCESSFLAGS_HPP
+#define SHARE_UTILITIES_ACCESSFLAGS_HPP
 
 #include "jvm.h"
 #include "utilities/debug.hpp"
@@ -282,4 +282,4 @@
   return af;
 }
 
-#endif // SHARE_VM_UTILITIES_ACCESSFLAGS_HPP
+#endif // SHARE_UTILITIES_ACCESSFLAGS_HPP
--- a/src/hotspot/share/utilities/align.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/align.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ALIGN_HPP
-#define SHARE_VM_UTILITIES_ALIGN_HPP
+#ifndef SHARE_UTILITIES_ALIGN_HPP
+#define SHARE_UTILITIES_ALIGN_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -149,4 +149,4 @@
   }
 }
 
-#endif // SHARE_VM_UTILITIES_ALIGN_HPP
+#endif // SHARE_UTILITIES_ALIGN_HPP
--- a/src/hotspot/share/utilities/bitMap.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/bitMap.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_BITMAP_HPP
-#define SHARE_VM_UTILITIES_BITMAP_HPP
+#ifndef SHARE_UTILITIES_BITMAP_HPP
+#define SHARE_UTILITIES_BITMAP_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/align.hpp"
@@ -452,4 +452,4 @@
   virtual bool do_bit(BitMap::idx_t offset) = 0;
 };
 
-#endif // SHARE_VM_UTILITIES_BITMAP_HPP
+#endif // SHARE_UTILITIES_BITMAP_HPP
--- a/src/hotspot/share/utilities/bitMap.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/bitMap.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_BITMAP_INLINE_HPP
-#define SHARE_VM_UTILITIES_BITMAP_INLINE_HPP
+#ifndef SHARE_UTILITIES_BITMAP_INLINE_HPP
+#define SHARE_UTILITIES_BITMAP_INLINE_HPP
 
 #include "runtime/atomic.hpp"
 #include "utilities/bitMap.hpp"
@@ -287,4 +287,4 @@
   _map.at_put(bit, value);
 }
 
-#endif // SHARE_VM_UTILITIES_BITMAP_INLINE_HPP
+#endif // SHARE_UTILITIES_BITMAP_INLINE_HPP
--- a/src/hotspot/share/utilities/breakpoint.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/breakpoint.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_BREAKPOINT_HPP
-#define SHARE_VM_UTILITIES_BREAKPOINT_HPP
+#ifndef SHARE_UTILITIES_BREAKPOINT_HPP
+#define SHARE_UTILITIES_BREAKPOINT_HPP
 
 // Provide BREAKPOINT macro for requesting stop in the debugger.
 
@@ -43,4 +43,4 @@
 #define BREAKPOINT ::breakpoint()
 #endif
 
-#endif // SHARE_VM_UTILITIES_BREAKPOINT_HPP
+#endif // SHARE_UTILITIES_BREAKPOINT_HPP
--- a/src/hotspot/share/utilities/bytes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/bytes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_BYTES_HPP
-#define SHARE_VM_UTILITIES_BYTES_HPP
+#ifndef SHARE_UTILITIES_BYTES_HPP
+#define SHARE_UTILITIES_BYTES_HPP
 
 #include "utilities/macros.hpp"
 
@@ -50,4 +50,4 @@
 
 #include CPU_HEADER(bytes)
 
-#endif // SHARE_VM_UTILITIES_BYTES_HPP
+#endif // SHARE_UTILITIES_BYTES_HPP
--- a/src/hotspot/share/utilities/chunkedList.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/chunkedList.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_CHUNKED_LIST_HPP
-#define SHARE_VM_UTILITIES_CHUNKED_LIST_HPP
+#ifndef SHARE_UTILITIES_CHUNKEDLIST_HPP
+#define SHARE_UTILITIES_CHUNKEDLIST_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
@@ -78,4 +78,4 @@
   }
 };
 
-#endif // SHARE_VM_UTILITIES_CHUNKED_LIST_HPP
+#endif // SHARE_UTILITIES_CHUNKEDLIST_HPP
--- a/src/hotspot/share/utilities/compilerWarnings.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/compilerWarnings.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_COMPILERWARNINGS_HPP
-#define SHARE_VM_UTILITIES_COMPILERWARNINGS_HPP
+#ifndef SHARE_UTILITIES_COMPILERWARNINGS_HPP
+#define SHARE_UTILITIES_COMPILERWARNINGS_HPP
 
 // Macros related to control of compiler warnings.
 
@@ -84,4 +84,4 @@
 #define PRAGMA_DIAG_POP
 #endif
 
-#endif // SHARE_VM_UTILITIES_COMPILERWARNINGS_HPP
+#endif // SHARE_UTILITIES_COMPILERWARNINGS_HPP
--- a/src/hotspot/share/utilities/concurrentHashTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/concurrentHashTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_UTILITIES_CONCURRENT_HASH_TABLE_HPP
-#define SHARE_UTILITIES_CONCURRENT_HASH_TABLE_HPP
+#ifndef SHARE_UTILITIES_CONCURRENTHASHTABLE_HPP
+#define SHARE_UTILITIES_CONCURRENTHASHTABLE_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalCounter.hpp"
@@ -73,7 +73,7 @@
     void print_value_on(outputStream* st) const {};
   };
 
-  // Only constructed with placement new[] from an array allocated with MEMFLAGS
+  // Only constructed with placement new from an array allocated with MEMFLAGS
   // of InternalTable.
   class Bucket {
    private:
@@ -505,4 +505,4 @@
   class GrowTask;
 };
 
-#endif // include guard
+#endif // SHARE_UTILITIES_CONCURRENTHASHTABLE_HPP
--- a/src/hotspot/share/utilities/concurrentHashTable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/concurrentHashTable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_UTILITIES_CONCURRENT_HASH_TABLE_INLINE_HPP
-#define SHARE_UTILITIES_CONCURRENT_HASH_TABLE_INLINE_HPP
+#ifndef SHARE_UTILITIES_CONCURRENTHASHTABLE_INLINE_HPP
+#define SHARE_UTILITIES_CONCURRENTHASHTABLE_INLINE_HPP
 
 #include "memory/allocation.inline.hpp"
 #include "runtime/atomic.hpp"
@@ -193,8 +193,12 @@
 {
   assert(_log2_size >= SIZE_SMALL_LOG2 && _log2_size <= SIZE_BIG_LOG2,
          "Bad size");
-  void* memory = NEW_C_HEAP_ARRAY(Bucket, _size, F);
-  _buckets = new (memory) Bucket[_size];
+  _buckets = NEW_C_HEAP_ARRAY(Bucket, _size, F);
+  // Use placement new for each element instead of new[] which could use more
+  // memory than allocated.
+  for (size_t i = 0; i < _size; ++i) {
+    new (_buckets + i) Bucket();
+  }
 }
 
 template <typename VALUE, typename CONFIG, MEMFLAGS F>
@@ -1279,4 +1283,4 @@
   return true;
 }
 
-#endif // include guard
+#endif // SHARE_UTILITIES_CONCURRENTHASHTABLE_INLINE_HPP
--- a/src/hotspot/share/utilities/concurrentHashTableTasks.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/concurrentHashTableTasks.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_UTILITIES_CONCURRENT_HASH_TABLE_TASKS_INLINE_HPP
-#define SHARE_UTILITIES_CONCURRENT_HASH_TABLE_TASKS_INLINE_HPP
+#ifndef SHARE_UTILITIES_CONCURRENTHASHTABLETASKS_INLINE_HPP
+#define SHARE_UTILITIES_CONCURRENTHASHTABLETASKS_INLINE_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/concurrentHashTable.inline.hpp"
@@ -199,4 +199,4 @@
   }
 };
 
-#endif // include guard
+#endif // SHARE_UTILITIES_CONCURRENTHASHTABLETASKS_INLINE_HPP
--- a/src/hotspot/share/utilities/constantTag.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/constantTag.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_CONSTANTTAG_HPP
-#define SHARE_VM_UTILITIES_CONSTANTTAG_HPP
+#ifndef SHARE_UTILITIES_CONSTANTTAG_HPP
+#define SHARE_UTILITIES_CONSTANTTAG_HPP
 
 #include "jvm.h"
 #include "utilities/globalDefinitions.hpp"
@@ -141,4 +141,4 @@
   void print_on(outputStream* st) const PRODUCT_RETURN;
 };
 
-#endif // SHARE_VM_UTILITIES_CONSTANTTAG_HPP
+#endif // SHARE_UTILITIES_CONSTANTTAG_HPP
--- a/src/hotspot/share/utilities/copy.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/copy.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_COPY_HPP
-#define SHARE_VM_UTILITIES_COPY_HPP
+#ifndef SHARE_UTILITIES_COPY_HPP
+#define SHARE_UTILITIES_COPY_HPP
 
 #include "runtime/stubRoutines.hpp"
 #include "utilities/align.hpp"
@@ -346,4 +346,4 @@
 
 };
 
-#endif // SHARE_VM_UTILITIES_COPY_HPP
+#endif // SHARE_UTILITIES_COPY_HPP
--- a/src/hotspot/share/utilities/count_trailing_zeros.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/count_trailing_zeros.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_COUNTTRAILINGZEROS_HPP
-#define SHARE_VM_UTILITIES_COUNTTRAILINGZEROS_HPP
+#ifndef SHARE_UTILITIES_COUNT_TRAILING_ZEROS_HPP
+#define SHARE_UTILITIES_COUNT_TRAILING_ZEROS_HPP
 
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -105,4 +105,4 @@
 
 #endif // Toolchain dispatch
 
-#endif // include guard
+#endif // SHARE_UTILITIES_COUNT_TRAILING_ZEROS_HPP
--- a/src/hotspot/share/utilities/debug.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/debug.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_DEBUG_HPP
-#define SHARE_VM_UTILITIES_DEBUG_HPP
+#ifndef SHARE_UTILITIES_DEBUG_HPP
+#define SHARE_UTILITIES_DEBUG_HPP
 
 #include "utilities/breakpoint.hpp"
 #include "utilities/compilerWarnings.hpp"
@@ -205,4 +205,4 @@
 // out of memory reporting
 void report_java_out_of_memory(const char* message);
 
-#endif // SHARE_VM_UTILITIES_DEBUG_HPP
+#endif // SHARE_UTILITIES_DEBUG_HPP
--- a/src/hotspot/share/utilities/decoder.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/decoder.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef SHARE_VM_UTILITIES_DECODER_HPP
-#define SHARE_VM_UTILITIES_DECODER_HPP
+#ifndef SHARE_UTILITIES_DECODER_HPP
+#define SHARE_UTILITIES_DECODER_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/mutex.hpp"
@@ -146,4 +146,4 @@
   }
 };
 
-#endif // SHARE_VM_UTILITIES_DECODER_HPP
+#endif // SHARE_UTILITIES_DECODER_HPP
--- a/src/hotspot/share/utilities/decoder_elf.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/decoder_elf.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_DECODER_ELF_HPP
-#define SHARE_VM_UTILITIES_DECODER_ELF_HPP
+#ifndef SHARE_UTILITIES_DECODER_ELF_HPP
+#define SHARE_UTILITIES_DECODER_ELF_HPP
 
 #if !defined(_WINDOWS) && !defined(__APPLE__)
 
@@ -54,4 +54,4 @@
 };
 
 #endif // !_WINDOWS && !__APPLE__
-#endif // SHARE_VM_UTILITIES_DECODER_ELF_HPP
+#endif // SHARE_UTILITIES_DECODER_ELF_HPP
--- a/src/hotspot/share/utilities/defaultStream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/defaultStream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_DEFAULTSTREAM_HPP
-#define SHARE_VM_UTILITIES_DEFAULTSTREAM_HPP
+#ifndef SHARE_UTILITIES_DEFAULTSTREAM_HPP
+#define SHARE_UTILITIES_DEFAULTSTREAM_HPP
 
 #include "utilities/xmlstream.hpp"
 
@@ -96,4 +96,4 @@
   static defaultStream* instance;  // sole instance
 };
 
-#endif // SHARE_VM_UTILITIES_DEFAULTSTREAM_HPP
+#endif // SHARE_UTILITIES_DEFAULTSTREAM_HPP
--- a/src/hotspot/share/utilities/dtrace.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/dtrace.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2009, 2012 Red Hat, Inc.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_DTRACE_HPP
-#define SHARE_VM_UTILITIES_DTRACE_HPP
+#ifndef SHARE_UTILITIES_DTRACE_HPP
+#define SHARE_UTILITIES_DTRACE_HPP
 
 #if defined(DTRACE_ENABLED)
 
@@ -61,4 +61,4 @@
 
 #endif /* defined(DTRACE_ENABLED) */
 
-#endif // SHARE_VM_UTILITIES_DTRACE_HPP
+#endif // SHARE_UTILITIES_DTRACE_HPP
--- a/src/hotspot/share/utilities/dtrace_disabled.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/dtrace_disabled.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_DTRACE_USDT2_DISABLED_HPP
-#define SHARE_VM_UTILITIES_DTRACE_USDT2_DISABLED_HPP
+#ifndef SHARE_UTILITIES_DTRACE_DISABLED_HPP
+#define SHARE_UTILITIES_DTRACE_DISABLED_HPP
 
 /* This file contains dummy provider probes needed when compiling a hotspot
  * that does not support dtrace probes. This could be because we're building
@@ -1094,4 +1094,4 @@
 #error This file should only be included when dtrace is not enabled
 #endif /* !defined(DTRACE_ENABLED) */
 
-#endif // SHARE_VM_UTILITIES_DTRACE_USDT2_DISABLED_HPP
+#endif // SHARE_UTILITIES_DTRACE_DISABLED_HPP
--- a/src/hotspot/share/utilities/elfFile.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/elfFile.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ELF_FILE_HPP
-#define SHARE_VM_UTILITIES_ELF_FILE_HPP
+#ifndef SHARE_UTILITIES_ELFFILE_HPP
+#define SHARE_UTILITIES_ELFFILE_HPP
 
 #if !defined(_WINDOWS) && !defined(__APPLE__) && !defined(_AIX)
 
@@ -214,4 +214,4 @@
 
 #endif // !_WINDOWS && !__APPLE__
 
-#endif // SHARE_VM_UTILITIES_ELF_FILE_HPP
+#endif // SHARE_UTILITIES_ELFFILE_HPP
--- a/src/hotspot/share/utilities/elfFuncDescTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/elfFuncDescTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, 2013 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ELF_FUNC_DESC_TABLE_HPP
-#define SHARE_VM_UTILITIES_ELF_FUNC_DESC_TABLE_HPP
+#ifndef SHARE_UTILITIES_ELFFUNCDESCTABLE_HPP
+#define SHARE_UTILITIES_ELFFUNCDESCTABLE_HPP
 
 #if !defined(_WINDOWS) && !defined(__APPLE__)
 
@@ -145,4 +145,4 @@
 
 #endif // !_WINDOWS && !__APPLE__
 
-#endif // SHARE_VM_UTILITIES_ELF_FUNC_DESC_TABLE_HPP
+#endif // SHARE_UTILITIES_ELFFUNCDESCTABLE_HPP
--- a/src/hotspot/share/utilities/elfStringTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/elfStringTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ELF_STRING_TABLE_HPP
-#define SHARE_VM_UTILITIES_ELF_STRING_TABLE_HPP
+#ifndef SHARE_UTILITIES_ELFSTRINGTABLE_HPP
+#define SHARE_UTILITIES_ELFSTRINGTABLE_HPP
 
 #if !defined(_WINDOWS) && !defined(__APPLE__)
 
@@ -71,4 +71,4 @@
 
 #endif // !_WINDOWS && !__APPLE__
 
-#endif // SHARE_VM_UTILITIES_ELF_STRING_TABLE_HPP
+#endif // SHARE_UTILITIES_ELFSTRINGTABLE_HPP
--- a/src/hotspot/share/utilities/elfSymbolTable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/elfSymbolTable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_ELF_SYMBOL_TABLE_HPP
-#define SHARE_VM_UTILITIES_ELF_SYMBOL_TABLE_HPP
+#ifndef SHARE_UTILITIES_ELFSYMBOLTABLE_HPP
+#define SHARE_UTILITIES_ELFSYMBOLTABLE_HPP
 
 #if !defined(_WINDOWS) && !defined(__APPLE__)
 
@@ -67,4 +67,4 @@
 
 #endif // !_WINDOWS and !__APPLE__
 
-#endif // SHARE_VM_UTILITIES_ELF_SYMBOL_TABLE_HPP
+#endif // SHARE_UTILITIES_ELFSYMBOLTABLE_HPP
--- a/src/hotspot/share/utilities/events.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/events.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_EVENTS_HPP
-#define SHARE_VM_UTILITIES_EVENTS_HPP
+#ifndef SHARE_UTILITIES_EVENTS_HPP
+#define SHARE_UTILITIES_EVENTS_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/mutexLocker.hpp"
@@ -301,4 +301,4 @@
   ~EventMark();
 };
 
-#endif // SHARE_VM_UTILITIES_EVENTS_HPP
+#endif // SHARE_UTILITIES_EVENTS_HPP
--- a/src/hotspot/share/utilities/exceptions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/exceptions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_EXCEPTIONS_HPP
-#define SHARE_VM_UTILITIES_EXCEPTIONS_HPP
+#ifndef SHARE_UTILITIES_EXCEPTIONS_HPP
+#define SHARE_UTILITIES_EXCEPTIONS_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
@@ -333,4 +333,4 @@
 
 #define EXCEPTION_MARK                           Thread* THREAD = NULL; ExceptionMark __em(THREAD);
 
-#endif // SHARE_VM_UTILITIES_EXCEPTIONS_HPP
+#endif // SHARE_UTILITIES_EXCEPTIONS_HPP
--- a/src/hotspot/share/utilities/fakeRttiSupport.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/fakeRttiSupport.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_FAKERTTISUPPORT_HPP
-#define SHARE_VM_UTILITIES_FAKERTTISUPPORT_HPP
+#ifndef SHARE_UTILITIES_FAKERTTISUPPORT_HPP
+#define SHARE_UTILITIES_FAKERTTISUPPORT_HPP
 
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/debug.hpp"
@@ -98,4 +98,4 @@
   }
 };
 
-#endif // include guard
+#endif // SHARE_UTILITIES_FAKERTTISUPPORT_HPP
--- a/src/hotspot/share/utilities/formatBuffer.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/formatBuffer.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_FORMATBUFFER_HPP
-#define SHARE_VM_UTILITIES_FORMATBUFFER_HPP
+#ifndef SHARE_UTILITIES_FORMATBUFFER_HPP
+#define SHARE_UTILITIES_FORMATBUFFER_HPP
 
 #include "jvm.h"
 #include "utilities/globalDefinitions.hpp"
@@ -116,4 +116,4 @@
 // Used to format messages.
 typedef FormatBuffer<> err_msg;
 
-#endif // SHARE_VM_UTILITIES_FORMATBUFFER_HPP
+#endif // SHARE_UTILITIES_FORMATBUFFER_HPP
--- a/src/hotspot/share/utilities/globalCounter.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalCounter.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_UTILITIES_GLOBAL_COUNTER_HPP
-#define SHARE_UTILITIES_GLOBAL_COUNTER_HPP
+#ifndef SHARE_UTILITIES_GLOBALCOUNTER_HPP
+#define SHARE_UTILITIES_GLOBALCOUNTER_HPP
 
 #include "memory/allocation.hpp"
 #include "memory/padded.hpp"
@@ -86,4 +86,4 @@
   class CriticalSection;
 };
 
-#endif // include guard
+#endif // SHARE_UTILITIES_GLOBALCOUNTER_HPP
--- a/src/hotspot/share/utilities/globalCounter.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalCounter.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_UTILITIES_GLOBAL_COUNTER_INLINE_HPP
-#define SHARE_UTILITIES_GLOBAL_COUNTER_INLINE_HPP
+#ifndef SHARE_UTILITIES_GLOBALCOUNTER_INLINE_HPP
+#define SHARE_UTILITIES_GLOBALCOUNTER_INLINE_HPP
 
 #include "runtime/atomic.hpp"
 #include "runtime/orderAccess.hpp"
@@ -68,4 +68,4 @@
   }
 };
 
-#endif // include guard
+#endif // SHARE_UTILITIES_GLOBALCOUNTER_INLINE_HPP
--- a/src/hotspot/share/utilities/globalDefinitions.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalDefinitions.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_HPP
-#define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_HPP
+#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
+#define SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
 
 #include "utilities/compilerWarnings.hpp"
 #include "utilities/debug.hpp"
@@ -230,15 +230,20 @@
 const jlong NANOSECS_PER_SEC      = CONST64(1000000000);
 const jint  NANOSECS_PER_MILLISEC = 1000000;
 
+// Proper units routines try to maintain at least three significant digits.
+// In worst case, it would print five significant digits with lower prefix.
+// G is close to MAX_SIZE on 32-bit platforms, so its product can easily overflow,
+// and therefore we need to be careful.
+
 inline const char* proper_unit_for_byte_size(size_t s) {
 #ifdef _LP64
-  if (s >= 10*G) {
+  if (s >= 100*G) {
     return "G";
   }
 #endif
-  if (s >= 10*M) {
+  if (s >= 100*M) {
     return "M";
-  } else if (s >= 10*K) {
+  } else if (s >= 100*K) {
     return "K";
   } else {
     return "B";
@@ -248,13 +253,13 @@
 template <class T>
 inline T byte_size_in_proper_unit(T s) {
 #ifdef _LP64
-  if (s >= 10*G) {
+  if (s >= 100*G) {
     return (T)(s/G);
   }
 #endif
-  if (s >= 10*M) {
+  if (s >= 100*M) {
     return (T)(s/M);
-  } else if (s >= 10*K) {
+  } else if (s >= 100*K) {
     return (T)(s/K);
   } else {
     return s;
@@ -1096,4 +1101,4 @@
 }
 
 
-#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_HPP
+#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
--- a/src/hotspot/share/utilities/globalDefinitions_gcc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalDefinitions_gcc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
-#define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
+#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
+#define SHARE_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
 
 #include "jni.h"
 
@@ -271,4 +271,4 @@
 //
 #define ATTRIBUTE_ALIGNED(x) __attribute__((aligned(x+0)))
 
-#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
+#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_GCC_HPP
--- a/src/hotspot/share/utilities/globalDefinitions_solstudio.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalDefinitions_solstudio.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
-#define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
+#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
+#define SHARE_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
 
 #include "jni.h"
 
@@ -256,4 +256,4 @@
 // Alignment
 #define ATTRIBUTE_ALIGNED(x) __attribute__((aligned(x)))
 
-#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
+#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_SOLSTUDIO_HPP
--- a/src/hotspot/share/utilities/globalDefinitions_visCPP.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalDefinitions_visCPP.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
-#define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
+#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
+#define SHARE_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
 
 #include "jni.h"
 
@@ -167,4 +167,4 @@
 // Alignment
 #define ATTRIBUTE_ALIGNED(x) __declspec(align(x))
 
-#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
+#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_VISCPP_HPP
--- a/src/hotspot/share/utilities/globalDefinitions_xlc.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/globalDefinitions_xlc.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -23,8 +23,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
-#define SHARE_VM_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
+#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
+#define SHARE_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
 
 #include "jni.h"
 
@@ -162,4 +162,4 @@
 #define NOINLINE     __attribute__((__noinline__))
 #define ALWAYSINLINE inline __attribute__((__always_inline__))
 
-#endif // SHARE_VM_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
+#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_XLC_HPP
--- a/src/hotspot/share/utilities/growableArray.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/growableArray.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_GROWABLEARRAY_HPP
-#define SHARE_VM_UTILITIES_GROWABLEARRAY_HPP
+#ifndef SHARE_UTILITIES_GROWABLEARRAY_HPP
+#define SHARE_UTILITIES_GROWABLEARRAY_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
@@ -584,4 +584,4 @@
 typedef GrowableArray<int> intStack;
 typedef GrowableArray<bool> boolArray;
 
-#endif // SHARE_VM_UTILITIES_GROWABLEARRAY_HPP
+#endif // SHARE_UTILITIES_GROWABLEARRAY_HPP
--- a/src/hotspot/share/utilities/hashtable.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/hashtable.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_HASHTABLE_HPP
-#define SHARE_VM_UTILITIES_HASHTABLE_HPP
+#ifndef SHARE_UTILITIES_HASHTABLE_HPP
+#define SHARE_UTILITIES_HASHTABLE_HPP
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
@@ -316,4 +316,4 @@
 };
 
 
-#endif // SHARE_VM_UTILITIES_HASHTABLE_HPP
+#endif // SHARE_UTILITIES_HASHTABLE_HPP
--- a/src/hotspot/share/utilities/hashtable.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/hashtable.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_HASHTABLE_INLINE_HPP
-#define SHARE_VM_UTILITIES_HASHTABLE_INLINE_HPP
+#ifndef SHARE_UTILITIES_HASHTABLE_INLINE_HPP
+#define SHARE_UTILITIES_HASHTABLE_INLINE_HPP
 
 #include "memory/allocation.inline.hpp"
 #include "runtime/orderAccess.hpp"
@@ -116,4 +116,4 @@
   --_number_of_entries;
 }
 
-#endif // SHARE_VM_UTILITIES_HASHTABLE_INLINE_HPP
+#endif // SHARE_UTILITIES_HASHTABLE_INLINE_HPP
--- a/src/hotspot/share/utilities/histogram.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/histogram.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_HISTOGRAM_HPP
-#define SHARE_VM_UTILITIES_HISTOGRAM_HPP
+#ifndef SHARE_UTILITIES_HISTOGRAM_HPP
+#define SHARE_UTILITIES_HISTOGRAM_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/os.hpp"
@@ -97,4 +97,4 @@
 
 #endif
 
-#endif // SHARE_VM_UTILITIES_HISTOGRAM_HPP
+#endif // SHARE_UTILITIES_HISTOGRAM_HPP
--- a/src/hotspot/share/utilities/intHisto.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/intHisto.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_INTHISTO_HPP
-#define SHARE_VM_UTILITIES_INTHISTO_HPP
+#ifndef SHARE_UTILITIES_INTHISTO_HPP
+#define SHARE_UTILITIES_INTHISTO_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/growableArray.hpp"
@@ -75,4 +75,4 @@
   void print_on(outputStream* st) const;
 };
 
-#endif // SHARE_VM_UTILITIES_INTHISTO_HPP
+#endif // SHARE_UTILITIES_INTHISTO_HPP
--- a/src/hotspot/share/utilities/json.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/json.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_JSON_HPP
-#define SHARE_VM_UTILITIES_JSON_HPP
+#ifndef SHARE_UTILITIES_JSON_HPP
+#define SHARE_UTILITIES_JSON_HPP
 
 #include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
@@ -109,4 +109,4 @@
   const char* strerror(JSON_ERROR e);
 };
 
-#endif // SHARE_VM_UTILITIES_JSON_HPP
+#endif // SHARE_UTILITIES_JSON_HPP
--- a/src/hotspot/share/utilities/linkedlist.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/linkedlist.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_LINKED_LIST_HPP
-#define SHARE_VM_UTILITIES_LINKED_LIST_HPP
+#ifndef SHARE_UTILITIES_LINKEDLIST_HPP
+#define SHARE_UTILITIES_LINKEDLIST_HPP
 
 #include "memory/allocation.hpp"
 
@@ -418,4 +418,4 @@
   }
 };
 
-#endif
+#endif // SHARE_UTILITIES_LINKEDLIST_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/utilities/lockFreeStack.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 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_UTILITIES_LOCKFREESTACK_HPP
+#define SHARE_UTILITIES_LOCKFREESTACK_HPP
+
+#include "runtime/atomic.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/macros.hpp"
+
+// The LockFreeStack class template provides a lock-free LIFO. The objects
+// in the sequence are intrusively linked via a member in the objects.  As
+// a result, there is no allocation involved in adding objects to the stack
+// or removing them from the stack.
+//
+// To be used in a LockFreeStack of objects of type T, an object of
+// type T must have a list entry member of type T* volatile, with an
+// non-member accessor function returning a pointer to that member.  A
+// LockFreeStack is associated with the class of its elements and an
+// entry member from that class.
+//
+// An object can be in multiple stacks at the same time, so long as
+// each stack uses a different entry member. That is, the class of the
+// object must have multiple LockFreeStack entry members, one for each
+// stack in which the object may simultaneously be an element.
+//
+// LockFreeStacks support polymorphic elements.  Because the objects
+// in a stack are externally managed, rather than being embedded
+// values in the stack, the actual type of such objects may be more
+// specific than the stack's element type.
+//
+// \tparam T is the class of the elements in the stack.
+//
+// \tparam next_ptr is a function pointer.  Applying this function to
+// an object of type T must return a pointer to the list entry member
+// of the object associated with the LockFreeStack type.
+template<typename T, T* volatile* (*next_ptr)(T&)>
+class LockFreeStack {
+  T* volatile _top;
+
+  void prepend_impl(T* first, T* last) {
+    T* cur = top();
+    T* old;
+    do {
+      old = cur;
+      set_next(*last, cur);
+      cur = Atomic::cmpxchg(first, &_top, cur);
+    } while (old != cur);
+  }
+
+  // Noncopyable.
+  LockFreeStack(const LockFreeStack&);
+  LockFreeStack& operator=(const LockFreeStack&);
+
+public:
+  LockFreeStack() : _top(NULL) {}
+  ~LockFreeStack() { assert(empty(), "stack not empty"); }
+
+  // Atomically removes the top object from this stack and returns a
+  // pointer to that object, or NULL if this stack is empty. Acts as a
+  // full memory barrier. Subject to ABA behavior; callers must ensure
+  // usage is safe.
+  T* pop() {
+    T* result = top();
+    T* old;
+    do {
+      old = result;
+      T* new_top = NULL;
+      if (result != NULL) {
+        new_top = next(*result);
+      }
+      // CAS even on empty pop, for consistent membar bahavior.
+      result = Atomic::cmpxchg(new_top, &_top, result);
+    } while (result != old);
+    if (result != NULL) {
+      set_next(*result, NULL);
+    }
+    return result;
+  }
+
+  // Atomically exchange the list of elements with NULL, returning the old
+  // list of elements.  Acts as a full memory barrier.
+  // postcondition: empty()
+  T* pop_all() {
+    return Atomic::xchg((T*)NULL, &_top);
+  }
+
+  // Atomically adds value to the top of this stack.  Acts as a full
+  // memory barrier.
+  void push(T& value) {
+    assert(next(value) == NULL, "precondition");
+    prepend_impl(&value, &value);
+  }
+
+  // Atomically adds the list of objects (designated by first and
+  // last) before the objects already in this stack, in the same order
+  // as in the list. Acts as a full memory barrier.
+  // precondition: next(last) == NULL.
+  // postcondition: top() == &first, next(last) == old top().
+  void prepend(T& first, T& last) {
+    assert(next(last) == NULL, "precondition");
+#ifdef ASSERT
+    for (T* p = &first; p != &last; p = next(*p)) {
+      assert(p != NULL, "invalid prepend list");
+    }
+#endif
+    prepend_impl(&first, &last);
+  }
+
+  // Atomically adds the list of objects headed by first before the
+  // objects already in this stack, in the same order as in the list.
+  // Acts as a full memory barrier.
+  // postcondition: top() == &first.
+  void prepend(T& first) {
+    T* last = &first;
+    while (true) {
+      T* step_to = next(*last);
+      if (step_to == NULL) break;
+      last = step_to;
+    }
+    prepend_impl(&first, last);
+  }
+
+  // Return true if the stack is empty.
+  bool empty() const { return top() == NULL; }
+
+  // Return the most recently pushed element, or NULL if the stack is empty.
+  // The returned element is not removed from the stack.
+  T* top() const { return Atomic::load(&_top); }
+
+  // Return the number of objects in the stack.  There must be no concurrent
+  // pops while the length is being determined.
+  size_t length() const {
+    size_t result = 0;
+    for (const T* current = top(); current != NULL; current = next(*current)) {
+      ++result;
+    }
+    return result;
+  }
+
+  // Return the entry following value in the list used by the
+  // specialized LockFreeStack class.
+  static T* next(const T& value) {
+    return Atomic::load(next_ptr(const_cast<T&>(value)));
+  }
+
+  // Set the entry following value to new_next in the list used by the
+  // specialized LockFreeStack class.  Not thread-safe; in particular,
+  // if value is in an instance of this specialization of LockFreeStack,
+  // there must be no concurrent push or pop operations on that stack.
+  static void set_next(T& value, T* new_next) {
+    Atomic::store(new_next, next_ptr(value));
+  }
+};
+
+#endif // SHARE_UTILITIES_LOCKFREESTACK_HPP
--- a/src/hotspot/share/utilities/macros.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/macros.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_MACROS_HPP
-#define SHARE_VM_UTILITIES_MACROS_HPP
+#ifndef SHARE_UTILITIES_MACROS_HPP
+#define SHARE_UTILITIES_MACROS_HPP
 
 // Use this to mark code that needs to be cleaned up (for development only)
 #define NEEDS_CLEANUP
@@ -640,4 +640,4 @@
 #define NOT_CDS_JAVA_HEAP_RETURN_(code) { return code; }
 #endif
 
-#endif // SHARE_VM_UTILITIES_MACROS_HPP
+#endif // SHARE_UTILITIES_MACROS_HPP
--- a/src/hotspot/share/utilities/nativeCallStack.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/nativeCallStack.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_NATIVE_CALL_STACK_HPP
-#define SHARE_VM_UTILITIES_NATIVE_CALL_STACK_HPP
+#ifndef SHARE_UTILITIES_NATIVECALLSTACK_HPP
+#define SHARE_UTILITIES_NATIVECALLSTACK_HPP
 
 #include "memory/allocation.hpp"
 #include "services/nmtCommon.hpp"
@@ -98,4 +98,4 @@
   void print_on(outputStream* out, int indent) const;
 };
 
-#endif
+#endif // SHARE_UTILITIES_NATIVECALLSTACK_HPP
--- a/src/hotspot/share/utilities/numberSeq.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/numberSeq.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_NUMBERSEQ_HPP
-#define SHARE_VM_UTILITIES_NUMBERSEQ_HPP
+#ifndef SHARE_UTILITIES_NUMBERSEQ_HPP
+#define SHARE_UTILITIES_NUMBERSEQ_HPP
 
 #include "memory/allocation.hpp"
 
@@ -131,4 +131,4 @@
   virtual void dump_on(outputStream* s);
 };
 
-#endif // SHARE_VM_UTILITIES_NUMBERSEQ_HPP
+#endif // SHARE_UTILITIES_NUMBERSEQ_HPP
--- a/src/hotspot/share/utilities/ostream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/ostream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_OSTREAM_HPP
-#define SHARE_VM_UTILITIES_OSTREAM_HPP
+#ifndef SHARE_UTILITIES_OSTREAM_HPP
+#define SHARE_UTILITIES_OSTREAM_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/timer.hpp"
@@ -294,4 +294,4 @@
 
 #endif
 
-#endif // SHARE_VM_UTILITIES_OSTREAM_HPP
+#endif // SHARE_UTILITIES_OSTREAM_HPP
--- a/src/hotspot/share/utilities/pair.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/pair.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_PAIR_HPP
-#define SHARE_VM_UTILITIES_PAIR_HPP
+#ifndef SHARE_UTILITIES_PAIR_HPP
+#define SHARE_UTILITIES_PAIR_HPP
 
 #include "memory/allocation.hpp"
 
@@ -38,4 +38,4 @@
 };
 
 
-#endif // SHARE_VM_UTILITIES_PAIR_HPP
+#endif // SHARE_UTILITIES_PAIR_HPP
--- a/src/hotspot/share/utilities/preserveException.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/preserveException.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
-#define SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
+#ifndef SHARE_UTILITIES_PRESERVEEXCEPTION_HPP
+#define SHARE_UTILITIES_PRESERVEEXCEPTION_HPP
 
 #include "runtime/handles.hpp"
 #include "runtime/thread.hpp"
@@ -90,4 +90,4 @@
 // saving and restoring them
 #define PRESERVE_EXCEPTION_MARK                    Thread* THREAD; PreserveExceptionMark __em(THREAD);
 
-#endif // SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
+#endif // SHARE_UTILITIES_PRESERVEEXCEPTION_HPP
--- a/src/hotspot/share/utilities/quickSort.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/quickSort.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_QUICKSORT_HPP
-#define SHARE_VM_UTILITIES_QUICKSORT_HPP
+#ifndef SHARE_UTILITIES_QUICKSORT_HPP
+#define SHARE_UTILITIES_QUICKSORT_HPP
 
 #include "memory/allocation.hpp"
 #include "runtime/globals.hpp"
@@ -127,4 +127,4 @@
 };
 
 
-#endif //SHARE_VM_UTILITIES_QUICKSORT_HPP
+#endif // SHARE_UTILITIES_QUICKSORT_HPP
--- a/src/hotspot/share/utilities/resourceHash.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/resourceHash.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_RESOURCEHASH_HPP
-#define SHARE_VM_UTILITIES_RESOURCEHASH_HPP
+#ifndef SHARE_UTILITIES_RESOURCEHASH_HPP
+#define SHARE_UTILITIES_RESOURCEHASH_HPP
 
 #include "memory/allocation.hpp"
 
@@ -167,4 +167,4 @@
 };
 
 
-#endif // SHARE_VM_UTILITIES_RESOURCEHASH_HPP
+#endif // SHARE_UTILITIES_RESOURCEHASH_HPP
--- a/src/hotspot/share/utilities/sizes.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/sizes.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_SIZES_HPP
-#define SHARE_VM_UTILITIES_SIZES_HPP
+#ifndef SHARE_UTILITIES_SIZES_HPP
+#define SHARE_UTILITIES_SIZES_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -148,4 +148,4 @@
 
 #define byte_offset_of(klass,field)   in_ByteSize((int)offset_of(klass, field))
 
-#endif // SHARE_VM_UTILITIES_SIZES_HPP
+#endif // SHARE_UTILITIES_SIZES_HPP
--- a/src/hotspot/share/utilities/stack.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/stack.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_STACK_HPP
-#define SHARE_VM_UTILITIES_STACK_HPP
+#ifndef SHARE_UTILITIES_STACK_HPP
+#define SHARE_UTILITIES_STACK_HPP
 
 #include "memory/allocation.hpp"
 
@@ -211,4 +211,4 @@
 #undef inline
 #endif // __GNUC__
 
-#endif // SHARE_VM_UTILITIES_STACK_HPP
+#endif // SHARE_UTILITIES_STACK_HPP
--- a/src/hotspot/share/utilities/stack.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/stack.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_STACK_INLINE_HPP
-#define SHARE_VM_UTILITIES_STACK_INLINE_HPP
+#ifndef SHARE_UTILITIES_STACK_INLINE_HPP
+#define SHARE_UTILITIES_STACK_INLINE_HPP
 
 #include "memory/allocation.inline.hpp"
 #include "utilities/align.hpp"
@@ -273,4 +273,4 @@
   return _cur_seg + --_cur_seg_size;
 }
 
-#endif // SHARE_VM_UTILITIES_STACK_INLINE_HPP
+#endif // SHARE_UTILITIES_STACK_INLINE_HPP
--- a/src/hotspot/share/utilities/stringUtils.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/stringUtils.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_STRINGUTILS_HPP
-#define SHARE_VM_UTILITIES_STRINGUTILS_HPP
+#ifndef SHARE_UTILITIES_STRINGUTILS_HPP
+#define SHARE_UTILITIES_STRINGUTILS_HPP
 
 #include "memory/allocation.hpp"
 
@@ -42,4 +42,4 @@
   static double similarity(const char* str1, size_t len1, const char* str2, size_t len2);
 };
 
-#endif // SHARE_VM_UTILITIES_STRINGUTILS_HPP
+#endif // SHARE_UTILITIES_STRINGUTILS_HPP
--- a/src/hotspot/share/utilities/ticks.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/ticks.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+* Copyright (c) 2013, 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
@@ -22,8 +22,8 @@
 *
 */
 
-#ifndef SHARE_VM_UTILITIES_TICKS_HPP
-#define SHARE_VM_UTILITIES_TICKS_HPP
+#ifndef SHARE_UTILITIES_TICKS_HPP
+#define SHARE_UTILITIES_TICKS_HPP
 
 #include "jni.h"
 #include "memory/allocation.hpp"
@@ -246,4 +246,4 @@
 typedef TimeInterval<CounterRepresentation, ElapsedCounterSource> Tickspan;
 #endif
 
-#endif // SHARE_VM_UTILITIES_TICKS_HPP
+#endif // SHARE_UTILITIES_TICKS_HPP
--- a/src/hotspot/share/utilities/utf8.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/utf8.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_UTF8_HPP
-#define SHARE_VM_UTILITIES_UTF8_HPP
+#ifndef SHARE_UTILITIES_UTF8_HPP
+#define SHARE_UTILITIES_UTF8_HPP
 
 #include "memory/allocation.hpp"
 
@@ -116,4 +116,4 @@
   template<typename T> static void as_quoted_ascii(const T* base, int length, char* buf, int buflen);
 };
 
-#endif // SHARE_VM_UTILITIES_UTF8_HPP
+#endif // SHARE_UTILITIES_UTF8_HPP
--- a/src/hotspot/share/utilities/vmError.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/vmError.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_VMERROR_HPP
-#define SHARE_VM_UTILITIES_VMERROR_HPP
+#ifndef SHARE_UTILITIES_VMERROR_HPP
+#define SHARE_UTILITIES_VMERROR_HPP
 
 #include "utilities/globalDefinitions.hpp"
 
@@ -198,4 +198,4 @@
   // for test purposes, which is not NULL and contains bits in every word
   static void* get_segfault_address();
 };
-#endif // SHARE_VM_UTILITIES_VMERROR_HPP
+#endif // SHARE_UTILITIES_VMERROR_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/utilities/waitBarrier.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 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_UTILITIES_WAITBARRIER_HPP
+#define SHARE_UTILITIES_WAITBARRIER_HPP
+
+#include "memory/allocation.hpp"
+#include "runtime/thread.hpp"
+#include "utilities/debug.hpp"
+#include "utilities/waitBarrier_generic.hpp"
+
+#if defined(LINUX)
+#include "waitBarrier_linux.hpp"
+typedef LinuxWaitBarrier WaitBarrierDefault;
+#else
+typedef GenericWaitBarrier WaitBarrierDefault;
+#endif
+
+// Platform independent WaitBarrier API.
+// An armed WaitBarrier prevents threads from advancing until the threads are
+// woken by calling disarm(). The barrier is armed by setting a non-zero value
+// - the tag. When the WaitBarrier is created, a thread is designated the owner
+// and is the thread that should arm and disarm the WaitBarrier. In debug builds
+// this is enforced.
+//
+// Expected Usage:
+//  - Arming thread:
+//     tag = ...;  // non-zero value
+//     barrier.arm(tag);
+//     <publish tag>
+//     <work>
+//     barrier.disarm();
+//
+//    - After arm(tag) returns any thread calling wait(tag) will block.
+//    - Calling disarm() guarantees any thread calling or that has wait(tag) will
+//      return. Either they will see the WaitBarrier as disarmed or they will be
+//      unblocked and eligible to execute again when disarm() returns.
+//    - After calling disarm() the barrier is ready to be re-armed with a new tag.
+//      (may not be re-armed with last used tag)
+//
+//  - Waiting threads
+//     wait(tag); // don't execute following code unless 'safe'
+//     <work>
+//
+//    - A call to wait(tag) will block if the barrier is armed with the value
+//      'tag'; else it will return immediately.
+//    - A blocked thread is eligible to execute again once the barrier is
+//      disarmed when disarm() has been called.
+//
+// It is a usage error to:
+//  - call arm on a barrier that is already armed
+//  - call disarm on a barrier that is not armed
+//  - arm with the same tag as last used
+// Usage errors are checked in debug builds but may be ignored otherwise.
+//
+// A primary goal of the WaitBarrier implementation is to wake all waiting
+// threads as fast, and as concurrently, as possible.
+//
+template <typename WaitBarrierImpl>
+class WaitBarrierType : public CHeapObj<mtInternal> {
+  WaitBarrierImpl _impl;
+
+  // Prevent copying and assignment of WaitBarrier instances.
+  WaitBarrierType(const WaitBarrierDefault&);
+  WaitBarrierType& operator=(const WaitBarrierDefault&);
+
+#ifdef ASSERT
+  int _last_arm_tag;
+  Thread* _owner;
+#endif
+
+ public:
+  WaitBarrierType(Thread* owner) : _impl() {
+#ifdef ASSERT
+    _last_arm_tag = 0;
+    _owner = owner;
+#endif
+  }
+  ~WaitBarrierType() {}
+
+  // Returns implementation description.
+  const char* description()    { return _impl.description(); }
+
+  // Guarantees any thread calling wait() with same tag will be blocked.
+  // Provides a trailing fence.
+  void arm(int barrier_tag) {
+#ifdef ASSERT
+    assert(_last_arm_tag != barrier_tag, "Re-arming with same tag");
+    _last_arm_tag = barrier_tag;
+    assert(_owner == Thread::current(), "Not owner thread");
+#endif
+    _impl.arm(barrier_tag);
+  }
+
+  // Guarantees any thread that called wait() will be awake when it returns.
+  // Provides a trailing fence.
+  void disarm() {
+    assert(_owner == Thread::current(), "Not owner thread");
+    _impl.disarm();
+  }
+
+  // Guarantees not to return until disarm() is called,
+  // if called with currently armed tag (otherwise returns immediately).
+  // Implementations must guarantee no spurious wakeups.
+  // Provides a trailing fence.
+  void wait(int barrier_tag) {
+    assert(_owner != Thread::current(), "Trying to wait with owner thread");
+    _impl.wait(barrier_tag);
+  }
+};
+
+typedef WaitBarrierType<WaitBarrierDefault> WaitBarrier;
+
+#endif // SHARE_UTILITIES_WAITBARRIER_HPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/utilities/waitBarrier_generic.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 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.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/orderAccess.hpp"
+#include "runtime/os.hpp"
+#include "utilities/waitBarrier_generic.hpp"
+#include "utilities/spinYield.hpp"
+
+void GenericWaitBarrier::arm(int barrier_tag) {
+  assert(_barrier_tag == 0, "Already armed");
+  assert(_waiters == 0, "We left a thread hanging");
+  _barrier_tag = barrier_tag;
+  _waiters = 0;
+  OrderAccess::fence();
+}
+
+int GenericWaitBarrier::wake_if_needed() {
+  assert(_barrier_tag == 0, "Not disarmed");
+  int w = _waiters;
+  if (w == 0) {
+    // Load of _barrier_threads in caller must not pass the load of _waiters.
+    OrderAccess::loadload();
+    return 0;
+  }
+  assert(w > 0, "Bad counting");
+  // We need an exact count which never goes below zero,
+  // otherwise the semaphore may be signalled too many times.
+  if (Atomic::cmpxchg(w - 1, &_waiters, w) == w) {
+    _sem_barrier.signal();
+    return w - 1;
+  }
+  return w;
+}
+
+void GenericWaitBarrier::disarm() {
+  assert(_barrier_tag != 0, "Not armed");
+  _barrier_tag = 0;
+  // Loads of _barrier_threads/_waiters must not float above disarm store and
+  // disarm store must not sink below.
+  OrderAccess::fence();
+  int left;
+  SpinYield sp;
+  do {
+    left = GenericWaitBarrier::wake_if_needed();
+    if (left == 0 && _barrier_threads > 0) {
+      // There is no thread to wake but we still have barrier threads.
+      sp.wait();
+    }
+    // We must loop here until there are no waiters or potential waiters.
+  } while (left > 0 || _barrier_threads > 0);
+  // API specifies disarm() must provide a trailing fence.
+  OrderAccess::fence();
+}
+
+void GenericWaitBarrier::wait(int barrier_tag) {
+  assert(barrier_tag != 0, "Trying to wait on disarmed value");
+  if (barrier_tag != _barrier_tag) {
+    // API specifies wait() must provide a trailing fence.
+    OrderAccess::fence();
+    return;
+  }
+  Atomic::add(1, &_barrier_threads);
+  if (barrier_tag != 0 && barrier_tag == _barrier_tag) {
+    Atomic::add(1, &_waiters);
+    _sem_barrier.wait();
+    // We help out with posting, but we need to do so before we decrement the
+    // _barrier_threads otherwise we might wake threads up in next wait.
+    GenericWaitBarrier::wake_if_needed();
+  }
+  Atomic::add(-1, &_barrier_threads);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hotspot/share/utilities/waitBarrier_generic.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 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_UTILITIES_WAITBARRIER_GENERIC_HPP
+#define SHARE_UTILITIES_WAITBARRIER_GENERIC_HPP
+
+#include "memory/allocation.hpp"
+#include "runtime/semaphore.hpp"
+
+// In addition to the barrier tag, it uses two counters to keep the semaphore
+// count correct and not leave any late thread waiting.
+class GenericWaitBarrier : public CHeapObj<mtInternal> {
+  volatile int _barrier_tag;
+  // The number of threads waiting on or about to wait on the semaphore.
+  volatile int _waiters;
+  // The number of threads in the wait path, before or after the tag check.
+  // These threads can become waiters.
+  volatile int _barrier_threads;
+  Semaphore _sem_barrier;
+
+  // Prevent copying and assignment of GenericWaitBarrier instances.
+  GenericWaitBarrier(const GenericWaitBarrier&);
+  GenericWaitBarrier& operator=(const GenericWaitBarrier&);
+
+  int wake_if_needed();
+
+ public:
+  GenericWaitBarrier() : _barrier_tag(0), _waiters(0), _barrier_threads(0), _sem_barrier(0) {}
+  ~GenericWaitBarrier() {}
+
+  const char* description() { return "semaphore"; }
+
+  void arm(int barrier_tag);
+  void disarm();
+  void wait(int barrier_tag);
+};
+
+#endif // SHARE_UTILITIES_WAITBARRIER_GENERIC_HPP
--- a/src/hotspot/share/utilities/xmlstream.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/hotspot/share/utilities/xmlstream.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -22,8 +22,8 @@
  *
  */
 
-#ifndef SHARE_VM_UTILITIES_XMLSTREAM_HPP
-#define SHARE_VM_UTILITIES_XMLSTREAM_HPP
+#ifndef SHARE_UTILITIES_XMLSTREAM_HPP
+#define SHARE_UTILITIES_XMLSTREAM_HPP
 
 #include "runtime/handles.hpp"
 #include "utilities/ostream.hpp"
@@ -184,4 +184,4 @@
 
 // Note:  If ::xtty != NULL, ::tty == ::xtty->text().
 
-#endif // SHARE_VM_UTILITIES_XMLSTREAM_HPP
+#endif // SHARE_UTILITIES_XMLSTREAM_HPP
--- a/src/java.base/share/classes/java/io/File.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/io/File.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1994, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 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
@@ -29,11 +29,11 @@
 import java.net.URL;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
-import java.util.List;
-import java.util.ArrayList;
+import java.nio.file.FileSystems;
+import java.nio.file.Path;
 import java.security.SecureRandom;
-import java.nio.file.Path;
-import java.nio.file.FileSystems;
+import java.util.ArrayList;
+import java.util.List;
 import sun.security.action.GetPropertyAction;
 
 /**
@@ -1395,14 +1395,14 @@
      *          If parameter <code>dest</code> is <code>null</code>
      */
     public boolean renameTo(File dest) {
+        if (dest == null) {
+            throw new NullPointerException();
+        }
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             security.checkWrite(path);
             security.checkWrite(dest.path);
         }
-        if (dest == null) {
-            throw new NullPointerException();
-        }
         if (this.isInvalid() || dest.isInvalid()) {
             return false;
         }
--- a/src/java.base/share/classes/java/io/ObjectInputFilter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/io/ObjectInputFilter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -72,7 +72,7 @@
  * to use other filters without forcing either allowed or rejected status.
  *
  * <p>
- * Typically, a custom filter should check if a process-wide filter
+ * Typically, a custom filter should check if a system-wide filter
  * is configured and defer to it if so. For example,
  * <pre>{@code
  * ObjectInputFilter.Status checkInput(FilterInfo info) {
@@ -80,7 +80,7 @@
  *     if (serialFilter != null) {
  *         ObjectInputFilter.Status status = serialFilter.checkInput(info);
  *         if (status != ObjectInputFilter.Status.UNDECIDED) {
- *             // The process-wide filter overrides this filter
+ *             // The system-wide filter overrides this filter
  *             return status;
  *         }
  *     }
@@ -196,8 +196,8 @@
     }
 
     /**
-     * A utility class to set and get the process-wide filter or create a filter
-     * from a pattern string. If a process-wide filter is set, it will be
+     * A utility class to set and get the system-wide filter or create a filter
+     * from a pattern string. If a system-wide filter is set, it will be
      * used for each {@link ObjectInputStream} that does not set its own filter.
      * <p>
      * When setting the filter, it should be stateless and idempotent,
@@ -222,7 +222,7 @@
         private Config() {}
 
         /**
-         * Lock object for process-wide filter.
+         * Lock object for system-wide filter.
          */
         private final static Object serialFilterLock = new Object();
 
@@ -241,13 +241,13 @@
         }
 
         /**
-         * The name for the process-wide deserialization filter.
+         * The name for the system-wide deserialization filter.
          * Used as a system property and a java.security.Security property.
          */
         private final static String SERIAL_FILTER_PROPNAME = "jdk.serialFilter";
 
         /**
-         * The process-wide filter; may be null.
+         * The system-wide filter; may be null.
          * Lookup the filter in java.security.Security or
          * the system property.
          */
@@ -286,9 +286,9 @@
         private static ObjectInputFilter serialFilter = configuredFilter;
 
         /**
-         * Returns the process-wide serialization filter or {@code null} if not configured.
+         * Returns the system-wide serialization filter or {@code null} if not configured.
          *
-         * @return the process-wide serialization filter or {@code null} if not configured
+         * @return the system-wide serialization filter or {@code null} if not configured
          */
         public static ObjectInputFilter getSerialFilter() {
             synchronized (serialFilterLock) {
@@ -297,9 +297,9 @@
         }
 
         /**
-         * Set the process-wide filter if it has not already been configured or set.
+         * Set the system-wide filter if it has not already been configured or set.
          *
-         * @param filter the serialization filter to set as the process-wide filter; not null
+         * @param filter the serialization filter to set as the system-wide filter; not null
          * @throws SecurityException if there is security manager and the
          *       {@code SerializablePermission("serialFilter")} is not granted
          * @throws IllegalStateException if the filter has already been set {@code non-null}
@@ -401,7 +401,7 @@
 
         /**
          * Implementation of ObjectInputFilter that performs the checks of
-         * the process-wide serialization filter. If configured, it will be
+         * the system-wide serialization filter. If configured, it will be
          * used for all ObjectInputStreams that do not set their own filters.
          *
          */
--- a/src/java.base/share/classes/java/io/ObjectInputStream.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/io/ObjectInputStream.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -188,7 +188,7 @@
  * the classes, array lengths, number of references in the stream, depth, and
  * number of bytes consumed from the input stream are allowed and
  * if not, can terminate deserialization.
- * A {@linkplain ObjectInputFilter.Config#setSerialFilter(ObjectInputFilter) process-wide filter}
+ * A {@linkplain ObjectInputFilter.Config#setSerialFilter(ObjectInputFilter) system-wide filter}
  * can be configured that is applied to each {@code ObjectInputStream} unless replaced
  * using {@link #setObjectInputFilter(ObjectInputFilter) setObjectInputFilter}.
  *
@@ -322,7 +322,7 @@
      * has written and flushed the header.
      *
      * <p>The serialization filter is initialized to the value of
-     * {@linkplain ObjectInputFilter.Config#getSerialFilter() the process-wide filter}.
+     * {@linkplain ObjectInputFilter.Config#getSerialFilter() the system-wide filter}.
      *
      * <p>If a security manager is installed, this constructor will check for
      * the "enableSubclassImplementation" SerializablePermission when invoked
@@ -357,7 +357,7 @@
      * implementation of ObjectInputStream.
      *
      * <p>The serialization filter is initialized to the value of
-     * {@linkplain ObjectInputFilter.Config#getSerialFilter() the process-wide filter}.
+     * {@linkplain ObjectInputFilter.Config#getSerialFilter() the system-wide filter}.
      *
      * <p>If there is a security manager installed, this method first calls the
      * security manager's <code>checkPermission</code> method with the
@@ -1157,7 +1157,7 @@
      * Returns the serialization filter for this stream.
      * The serialization filter is the most recent filter set in
      * {@link #setObjectInputFilter setObjectInputFilter} or
-     * the initial process-wide filter from
+     * the initial system-wide filter from
      * {@link ObjectInputFilter.Config#getSerialFilter() ObjectInputFilter.Config.getSerialFilter}.
      *
      * @return the serialization filter for the stream; may be null
@@ -1233,7 +1233,7 @@
      * @throws SecurityException if there is security manager and the
      *       {@code SerializablePermission("serialFilter")} is not granted
      * @throws IllegalStateException if the {@linkplain #getObjectInputFilter() current filter}
-     *       is not {@code null} and is not the process-wide filter
+     *       is not {@code null} and is not the system-wide filter
      * @since 9
      */
     public final void setObjectInputFilter(ObjectInputFilter filter) {
@@ -1241,7 +1241,7 @@
         if (sm != null) {
             sm.checkPermission(ObjectStreamConstants.SERIAL_FILTER_PERMISSION);
         }
-        // Allow replacement of the process-wide filter if not already set
+        // Allow replacement of the system-wide filter if not already set
         if (serialFilter != null &&
                 serialFilter != ObjectInputFilter.Config.getSerialFilter()) {
             throw new IllegalStateException("filter can not be set more than once");
--- a/src/java.base/share/classes/java/io/ObjectStreamConstants.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/io/ObjectStreamConstants.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -201,7 +201,7 @@
                     new SerializablePermission("enableSubclassImplementation");
 
     /**
-     * Enable setting the process-wide serial filter.
+     * Enable setting the system-wide serial filter.
      *
      * @see java.io.ObjectInputFilter.Config#setSerialFilter(ObjectInputFilter)
      * @since 9
--- a/src/java.base/share/classes/java/lang/Class.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/Class.java	Tue Jan 22 09:43:38 2019 -0500
@@ -272,8 +272,9 @@
 
             TypeVariable<?>[] typeparms = component.getTypeParameters();
             if (typeparms.length > 0) {
-                sb.append(Stream.of(typeparms).map(Class::typeVarBounds).
-                          collect(Collectors.joining(",", "<", ">")));
+                sb.append(Arrays.stream(typeparms)
+                          .map(Class::typeVarBounds)
+                          .collect(Collectors.joining(",", "<", ">")));
             }
 
             for (int i = 0; i < arrayDepth; i++)
@@ -289,8 +290,9 @@
             return typeVar.getName();
         } else {
             return typeVar.getName() + " extends " +
-                Stream.of(bounds).map(Type::getTypeName).
-                collect(Collectors.joining(" & "));
+                Arrays.stream(bounds)
+                .map(Type::getTypeName)
+                .collect(Collectors.joining(" & "));
         }
     }
 
@@ -3419,8 +3421,9 @@
         StringBuilder sb = new StringBuilder();
         sb.append(getName() + "." + name + "(");
         if (argTypes != null) {
-            Stream.of(argTypes).map(c -> {return (c == null) ? "null" : c.getName();}).
-                collect(Collectors.joining(","));
+            sb.append(Arrays.stream(argTypes)
+                      .map(c -> (c == null) ? "null" : c.getName())
+                      .collect(Collectors.joining(",")));
         }
         sb.append(")");
         return sb.toString();
--- a/src/java.base/share/classes/java/lang/String.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/String.java	Tue Jan 22 09:43:38 2019 -0500
@@ -2813,8 +2813,7 @@
      * lines are then concatenated and returned.
      * <p>
      * If {@code n > 0} then {@code n} spaces (U+0020) are inserted at the
-     * beginning of each line. {@link String#isBlank() Blank lines} are
-     * unaffected.
+     * beginning of each line.
      * <p>
      * If {@code n < 0} then up to {@code n}
      * {@link Character#isWhitespace(int) white space characters} are removed
@@ -2849,7 +2848,7 @@
                                              : lines();
         if (n > 0) {
             final String spaces = " ".repeat(n);
-            stream = stream.map(s -> s.isBlank() ? s : spaces + s);
+            stream = stream.map(s -> spaces + s);
         } else if (n == Integer.MIN_VALUE) {
             stream = stream.map(s -> s.stripLeading());
         } else if (n < 0) {
--- a/src/java.base/share/classes/java/lang/invoke/VarHandle.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/invoke/VarHandle.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -1865,35 +1865,6 @@
     }
 
     /**
-     * Compare this {@linkplain VarHandle} with another object for equality.
-     * Two {@linkplain VarHandle}s are considered equal if they both describe the
-     * same instance field, both describe the same static field, both describe
-     * array elements for arrays with the same component type, or both describe
-     * the same component of an off-heap structure.
-     *
-     * @param o the other object
-     * @return Whether this {@linkplain VarHandle} is equal to the other object
-     */
-    @Override
-    public final boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        VarHandle that = (VarHandle) o;
-        return accessModeType(AccessMode.GET).equals(that.accessModeType(AccessMode.GET)) &&
-               internalEquals(that);
-    }
-
-    abstract boolean internalEquals(VarHandle vh);
-
-    @Override
-    public final int hashCode() {
-        return 31 * accessModeType(AccessMode.GET).hashCode() + internalHashCode();
-    }
-
-    abstract int internalHashCode();
-
-    /**
      * Returns a compact textual description of this {@linkplain VarHandle},
      * including the type of variable described, and a description of its coordinates.
      *
--- a/src/java.base/share/classes/java/lang/invoke/X-VarHandle.java.template	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/invoke/X-VarHandle.java.template	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -64,17 +64,6 @@
         }
 
         @Override
-        final boolean internalEquals(VarHandle vh) {
-            FieldInstanceReadOnly that = (FieldInstanceReadOnly) vh;
-            return fieldOffset == that.fieldOffset;
-        }
-
-        @Override
-        final int internalHashCode() {
-            return Long.hashCode(fieldOffset);
-        }
-
-        @Override
         public Optional<VarHandleDesc> describeConstable() {
             var receiverTypeRef = receiverType.describeConstable();
             var fieldTypeRef = {#if[Object]?fieldType:$type$.class}.describeConstable();
@@ -350,17 +339,6 @@
         }
 
         @Override
-        final boolean internalEquals(VarHandle vh) {
-            FieldStaticReadOnly that = (FieldStaticReadOnly) vh;
-            return base == that.base && fieldOffset == that.fieldOffset;
-        }
-
-        @Override
-        final int internalHashCode() {
-            return 31 * Long.hashCode(fieldOffset) + base.hashCode();
-        }
-
-        @Override
         public Optional<VarHandleDesc> describeConstable() {
             var fieldTypeRef = {#if[Object]?fieldType:$type$.class}.describeConstable();
             if (!fieldTypeRef.isPresent())
@@ -640,20 +618,6 @@
         }
 
         @Override
-        final boolean internalEquals(VarHandle vh) {
-            // Equality of access mode types of AccessMode.GET is sufficient for
-            // equality checks
-            return true;
-        }
-
-        @Override
-        final int internalHashCode() {
-            // The hash code of the access mode types of AccessMode.GET is
-            // sufficient for hash code generation
-            return 0;
-        }
-
-        @Override
         public Optional<VarHandleDesc> describeConstable() {
             var arrayTypeRef = {#if[Object]?arrayType:$type$[].class}.describeConstable();
             if (!arrayTypeRef.isPresent())
--- a/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/invoke/X-VarHandleByteArrayView.java.template	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -67,17 +67,6 @@
             super(form);
             this.be = be;
         }
-
-        @Override
-        final boolean internalEquals(VarHandle vh) {
-            ByteArrayViewVarHandle that = (ByteArrayViewVarHandle) vh;
-            return be == that.be;
-        }
-
-        @Override
-        final int internalHashCode() {
-            return Boolean.hashCode(be);
-        }
     }
 
     static final class ArrayHandle extends ByteArrayViewVarHandle {
--- a/src/java.base/share/classes/java/lang/reflect/Executable.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/lang/reflect/Executable.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -111,16 +111,13 @@
 
             printModifiersIfNonzero(sb, modifierMask, isDefault);
             specificToStringHeader(sb);
-            sb.append('(');
-
-            sb.append(Stream.of(parameterTypes).map(Type::getTypeName).
-                      collect(Collectors.joining(",")));
-
-            sb.append(')');
-
+            sb.append(Arrays.stream(parameterTypes)
+                      .map(Type::getTypeName)
+                      .collect(Collectors.joining(",", "(", ")")));
             if (exceptionTypes.length > 0) {
-                sb.append(Stream.of(exceptionTypes).map(Type::getTypeName).
-                          collect(Collectors.joining(",", " throws ", "")));
+                sb.append(Arrays.stream(exceptionTypes)
+                          .map(Type::getTypeName)
+                          .collect(Collectors.joining(",", " throws ", "")));
             }
             return sb.toString();
         } catch (Exception e) {
@@ -140,8 +137,9 @@
             return typeVar.getName();
         } else {
             return typeVar.getName() + " extends " +
-                Stream.of(bounds).map(Type::getTypeName).
-                collect(Collectors.joining(" & "));
+                Arrays.stream(bounds)
+                .map(Type::getTypeName)
+                .collect(Collectors.joining(" & "));
         }
     }
 
@@ -153,8 +151,9 @@
 
             TypeVariable<?>[] typeparms = getTypeParameters();
             if (typeparms.length > 0) {
-                sb.append(Stream.of(typeparms).map(Executable::typeVarBounds).
-                          collect(Collectors.joining(",", "<", "> ")));
+                sb.append(Arrays.stream(typeparms)
+                          .map(Executable::typeVarBounds)
+                          .collect(Collectors.joining(",", "<", "> ")));
             }
 
             specificToGenericStringHeader(sb);
@@ -173,8 +172,9 @@
 
             Type[] exceptionTypes = getGenericExceptionTypes();
             if (exceptionTypes.length > 0) {
-                sb.append(Stream.of(exceptionTypes).map(Type::getTypeName).
-                          collect(Collectors.joining(",", " throws ", "")));
+                sb.append(Arrays.stream(exceptionTypes)
+                          .map(Type::getTypeName)
+                          .collect(Collectors.joining(",", " throws ", "")));
             }
             return sb.toString();
         } catch (Exception e) {
--- a/src/java.base/share/classes/java/math/BigDecimal.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/math/BigDecimal.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -31,6 +31,7 @@
 
 import static java.math.BigInteger.LONG_MASK;
 import java.util.Arrays;
+import java.util.Objects;
 
 /**
  * Immutable, arbitrary-precision signed decimal numbers.  A
@@ -424,9 +425,14 @@
      * @since  1.5
      */
     public BigDecimal(char[] in, int offset, int len, MathContext mc) {
-        // protect against huge length.
-        if (offset + len > in.length || offset < 0)
-            throw new NumberFormatException("Bad offset or len arguments for char[] input.");
+        // protect against huge length, negative values, and integer overflow
+        try {
+            Objects.checkFromIndexSize(offset, len, in.length);
+        } catch (IndexOutOfBoundsException e) {
+            throw new NumberFormatException
+                ("Bad offset or len arguments for char[] input.");
+        }
+
         // This is the primary string to BigDecimal constructor; all
         // incoming strings end up here; it uses explicit (inline)
         // parsing for speed and generates at most one intermediate
--- a/src/java.base/share/classes/java/math/BigInteger.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/math/BigInteger.java	Tue Jan 22 09:43:38 2019 -0500
@@ -307,10 +307,8 @@
     public BigInteger(byte[] val, int off, int len) {
         if (val.length == 0) {
             throw new NumberFormatException("Zero length BigInteger");
-        } else if ((off < 0) || (off >= val.length) || (len < 0) ||
-                   (len > val.length - off)) { // 0 <= off < val.length
-            throw new IndexOutOfBoundsException();
         }
+        Objects.checkFromIndexSize(off, len, val.length);
 
         if (val[off] < 0) {
             mag = makePositive(val, off, len);
@@ -395,12 +393,8 @@
     public BigInteger(int signum, byte[] magnitude, int off, int len) {
         if (signum < -1 || signum > 1) {
             throw(new NumberFormatException("Invalid signum value"));
-        } else if ((off < 0) || (len < 0) ||
-            (len > 0 &&
-                ((off >= magnitude.length) ||
-                 (len > magnitude.length - off)))) { // 0 <= off < magnitude.length
-            throw new IndexOutOfBoundsException();
         }
+        Objects.checkFromIndexSize(off, len, magnitude.length);
 
         // stripLeadingZeroBytes() returns a zero length array if len == 0
         this.mag = stripLeadingZeroBytes(magnitude, off, len);
@@ -1239,6 +1233,14 @@
     private static final double LOG_TWO = Math.log(2.0);
 
     static {
+        assert 0 < KARATSUBA_THRESHOLD
+            && KARATSUBA_THRESHOLD < TOOM_COOK_THRESHOLD
+            && TOOM_COOK_THRESHOLD < Integer.MAX_VALUE
+            && 0 < KARATSUBA_SQUARE_THRESHOLD
+            && KARATSUBA_SQUARE_THRESHOLD < TOOM_COOK_SQUARE_THRESHOLD
+            && TOOM_COOK_SQUARE_THRESHOLD < Integer.MAX_VALUE :
+            "Algorithm thresholds are inconsistent";
+
         for (int i = 1; i <= MAX_CONSTANT; i++) {
             int[] magnitude = new int[1];
             magnitude[0] = i;
@@ -1562,6 +1564,18 @@
      * @return {@code this * val}
      */
     public BigInteger multiply(BigInteger val) {
+        return multiply(val, false);
+    }
+
+    /**
+     * Returns a BigInteger whose value is {@code (this * val)}.  If
+     * the invocation is recursive certain overflow checks are skipped.
+     *
+     * @param  val value to be multiplied by this BigInteger.
+     * @param  isRecursion whether this is a recursive invocation
+     * @return {@code this * val}
+     */
+    private BigInteger multiply(BigInteger val, boolean isRecursion) {
         if (val.signum == 0 || signum == 0)
             return ZERO;
 
@@ -1589,6 +1603,63 @@
             if ((xlen < TOOM_COOK_THRESHOLD) && (ylen < TOOM_COOK_THRESHOLD)) {
                 return multiplyKaratsuba(this, val);
             } else {
+                //
+                // In "Hacker's Delight" section 2-13, p.33, it is explained
+                // that if x and y are unsigned 32-bit quantities and m and n
+                // are their respective numbers of leading zeros within 32 bits,
+                // then the number of leading zeros within their product as a
+                // 64-bit unsigned quantity is either m + n or m + n + 1. If
+                // their product is not to overflow, it cannot exceed 32 bits,
+                // and so the number of leading zeros of the product within 64
+                // bits must be at least 32, i.e., the leftmost set bit is at
+                // zero-relative position 31 or less.
+                //
+                // From the above there are three cases:
+                //
+                //     m + n    leftmost set bit    condition
+                //     -----    ----------------    ---------
+                //     >= 32    x <= 64 - 32 = 32   no overflow
+                //     == 31    x >= 64 - 32 = 32   possible overflow
+                //     <= 30    x >= 64 - 31 = 33   definite overflow
+                //
+                // The "possible overflow" condition cannot be detected by
+                // examning data lengths alone and requires further calculation.
+                //
+                // By analogy, if 'this' and 'val' have m and n as their
+                // respective numbers of leading zeros within 32*MAX_MAG_LENGTH
+                // bits, then:
+                //
+                //     m + n >= 32*MAX_MAG_LENGTH        no overflow
+                //     m + n == 32*MAX_MAG_LENGTH - 1    possible overflow
+                //     m + n <= 32*MAX_MAG_LENGTH - 2    definite overflow
+                //
+                // Note however that if the number of ints in the result
+                // were to be MAX_MAG_LENGTH and mag[0] < 0, then there would
+                // be overflow. As a result the leftmost bit (of mag[0]) cannot
+                // be used and the constraints must be adjusted by one bit to:
+                //
+                //     m + n >  32*MAX_MAG_LENGTH        no overflow
+                //     m + n == 32*MAX_MAG_LENGTH        possible overflow
+                //     m + n <  32*MAX_MAG_LENGTH        definite overflow
+                //
+                // The foregoing leading zero-based discussion is for clarity
+                // only. The actual calculations use the estimated bit length
+                // of the product as this is more natural to the internal
+                // array representation of the magnitude which has no leading
+                // zero elements.
+                //
+                if (!isRecursion) {
+                    // The bitLength() instance method is not used here as we
+                    // are only considering the magnitudes as non-negative. The
+                    // Toom-Cook multiplication algorithm determines the sign
+                    // at its end from the two signum values.
+                    if (bitLength(mag, mag.length) +
+                        bitLength(val.mag, val.mag.length) >
+                        32L*MAX_MAG_LENGTH) {
+                        reportOverflow();
+                    }
+                }
+
                 return multiplyToomCook3(this, val);
             }
         }
@@ -1674,7 +1745,7 @@
         int ystart = ylen - 1;
 
         if (z == null || z.length < (xlen+ ylen))
-            z = new int[xlen+ylen];
+             z = new int[xlen+ylen];
 
         long carry = 0;
         for (int j=ystart, k=ystart+1+xstart; j >= 0; j--, k--) {
@@ -1808,16 +1879,16 @@
 
         BigInteger v0, v1, v2, vm1, vinf, t1, t2, tm1, da1, db1;
 
-        v0 = a0.multiply(b0);
+        v0 = a0.multiply(b0, true);
         da1 = a2.add(a0);
         db1 = b2.add(b0);
-        vm1 = da1.subtract(a1).multiply(db1.subtract(b1));
+        vm1 = da1.subtract(a1).multiply(db1.subtract(b1), true);
         da1 = da1.add(a1);
         db1 = db1.add(b1);
-        v1 = da1.multiply(db1);
+        v1 = da1.multiply(db1, true);
         v2 = da1.add(a2).shiftLeft(1).subtract(a0).multiply(
-             db1.add(b2).shiftLeft(1).subtract(b0));
-        vinf = a2.multiply(b2);
+             db1.add(b2).shiftLeft(1).subtract(b0), true);
+        vinf = a2.multiply(b2, true);
 
         // The algorithm requires two divisions by 2 and one by 3.
         // All divisions are known to be exact, that is, they do not produce
@@ -1983,6 +2054,17 @@
      * @return {@code this<sup>2</sup>}
      */
     private BigInteger square() {
+        return square(false);
+    }
+
+    /**
+     * Returns a BigInteger whose value is {@code (this<sup>2</sup>)}. If
+     * the invocation is recursive certain overflow checks are skipped.
+     *
+     * @param isRecursion whether this is a recursive invocation
+     * @return {@code this<sup>2</sup>}
+     */
+    private BigInteger square(boolean isRecursion) {
         if (signum == 0) {
             return ZERO;
         }
@@ -1995,6 +2077,15 @@
             if (len < TOOM_COOK_SQUARE_THRESHOLD) {
                 return squareKaratsuba();
             } else {
+                //
+                // For a discussion of overflow detection see multiply()
+                //
+                if (!isRecursion) {
+                    if (bitLength(mag, mag.length) > 16L*MAX_MAG_LENGTH) {
+                        reportOverflow();
+                    }
+                }
+
                 return squareToomCook3();
             }
         }
@@ -2146,13 +2237,13 @@
         a0 = getToomSlice(k, r, 2, len);
         BigInteger v0, v1, v2, vm1, vinf, t1, t2, tm1, da1;
 
-        v0 = a0.square();
+        v0 = a0.square(true);
         da1 = a2.add(a0);
-        vm1 = da1.subtract(a1).square();
+        vm1 = da1.subtract(a1).square(true);
         da1 = da1.add(a1);
-        v1 = da1.square();
-        vinf = a2.square();
-        v2 = da1.add(a2).shiftLeft(1).subtract(a0).square();
+        v1 = da1.square(true);
+        vinf = a2.square(true);
+        v2 = da1.add(a2).shiftLeft(1).subtract(a0).square(true);
 
         // The algorithm requires two divisions by 2 and one by 3.
         // All divisions are known to be exact, that is, they do not produce
@@ -2323,10 +2414,11 @@
         // The remaining part can then be exponentiated faster.  The
         // powers of two will be multiplied back at the end.
         int powersOfTwo = partToSquare.getLowestSetBit();
-        long bitsToShift = (long)powersOfTwo * exponent;
-        if (bitsToShift > Integer.MAX_VALUE) {
+        long bitsToShiftLong = (long)powersOfTwo * exponent;
+        if (bitsToShiftLong > Integer.MAX_VALUE) {
             reportOverflow();
         }
+        int bitsToShift = (int)bitsToShiftLong;
 
         int remainingBits;
 
@@ -2336,9 +2428,9 @@
             remainingBits = partToSquare.bitLength();
             if (remainingBits == 1) {  // Nothing left but +/- 1?
                 if (signum < 0 && (exponent&1) == 1) {
-                    return NEGATIVE_ONE.shiftLeft(powersOfTwo*exponent);
+                    return NEGATIVE_ONE.shiftLeft(bitsToShift);
                 } else {
-                    return ONE.shiftLeft(powersOfTwo*exponent);
+                    return ONE.shiftLeft(bitsToShift);
                 }
             }
         } else {
@@ -2383,13 +2475,16 @@
                 if (bitsToShift + scaleFactor <= 62) { // Fits in long?
                     return valueOf((result << bitsToShift) * newSign);
                 } else {
-                    return valueOf(result*newSign).shiftLeft((int) bitsToShift);
+                    return valueOf(result*newSign).shiftLeft(bitsToShift);
                 }
-            }
-            else {
+            } else {
                 return valueOf(result*newSign);
             }
         } else {
+            if ((long)bitLength() * exponent / Integer.SIZE > MAX_MAG_LENGTH) {
+                reportOverflow();
+            }
+
             // Large number algorithm.  This is basically identical to
             // the algorithm above, but calls multiply() and square()
             // which may use more efficient algorithms for large numbers.
@@ -2409,7 +2504,7 @@
             // Multiply back the (exponentiated) powers of two (quickly,
             // by shifting left)
             if (powersOfTwo > 0) {
-                answer = answer.shiftLeft(powersOfTwo*exponent);
+                answer = answer.shiftLeft(bitsToShift);
             }
 
             if (signum < 0 && (exponent&1) == 1) {
@@ -3584,7 +3679,7 @@
                      for (int i=1; i< len && pow2; i++)
                          pow2 = (mag[i] == 0);
 
-                     n = (pow2 ? magBitLength -1 : magBitLength);
+                     n = (pow2 ? magBitLength - 1 : magBitLength);
                  } else {
                      n = magBitLength;
                  }
--- a/src/java.base/share/classes/java/nio/file/Files.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/nio/file/Files.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -1608,12 +1608,13 @@
     }
 
     /**
-     * Tells whether or not a file is considered <em>hidden</em>. The exact
-     * definition of hidden is platform or provider dependent. On UNIX for
-     * example a file is considered to be hidden if its name begins with a
-     * period character ('.'). On Windows a file is considered hidden if it
-     * isn't a directory and the DOS {@link DosFileAttributes#isHidden hidden}
-     * attribute is set.
+     * Tells whether or not a file is considered <em>hidden</em>.
+     *
+     * @apiNote
+     * The exact definition of hidden is platform or provider dependent. On UNIX
+     * for example a file is considered to be hidden if its name begins with a
+     * period character ('.'). On Windows a file is considered hidden if the DOS
+     * {@link DosFileAttributes#isHidden hidden} attribute is set.
      *
      * <p> Depending on the implementation this method may require to access
      * the file system to determine if the file is considered hidden.
--- a/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -26,7 +26,6 @@
 package java.security.spec;
 
 import java.util.Objects;
-import java.security.spec.MGF1ParameterSpec;
 
 /**
  * This class specifies a parameter spec for RSASSA-PSS signature scheme,
@@ -218,4 +217,14 @@
     public int getTrailerField() {
         return trailerField;
     }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("MD: " + mdName + "\n")
+                .append("MGF: " + mgfSpec + "\n")
+                .append("SaltLength: " + saltLen + "\n")
+                .append("TrailerField: " + trailerField + "\n");
+        return sb.toString();
+    }
 }
--- a/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -120,7 +120,7 @@
 
         // Input sanity check
         if ((src == null) ||(len < 0) || (offset < 0)
-                || ((len + offset) > src.length)) {
+                || (len > (src.length - offset))) {
             throw new IllegalArgumentException("Invalid buffer arguments");
         }
 
--- a/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -1092,10 +1092,15 @@
             int i = 0;
             while (st.hasMoreTokens()) {
                 String path = st.nextToken();
-                URL url = DISABLE_CP_URL_CHECK ? new URL(base, path) : safeResolve(base, path);
+                URL url = DISABLE_CP_URL_CHECK ? new URL(base, path) : tryResolve(base, path);
                 if (url != null) {
                     urls[i] = url;
                     i++;
+                } else {
+                    if (DEBUG_CP_URL_CHECK) {
+                        System.err.println("Class-Path entry: \"" + path
+                                           + "\" ignored in JAR file " + base);
+                    }
                 }
             }
             if (i == 0) {
@@ -1107,36 +1112,74 @@
             return urls;
         }
 
-        /*
-         * Return a URL for the given path resolved against the base URL, or
-         * null if the resulting URL is invalid.
+        static URL tryResolve(URL base, String input) throws MalformedURLException {
+            if ("file".equalsIgnoreCase(base.getProtocol())) {
+                return tryResolveFile(base, input);
+            } else {
+                return tryResolveNonFile(base, input);
+            }
+        }
+
+        /**
+         * Attempt to return a file URL by resolving input against a base file
+         * URL. The input is an absolute or relative file URL that encodes a
+         * file path.
+         *
+         * @apiNote Nonsensical input such as a Windows file path with a drive
+         * letter cannot be disambiguated from an absolute URL so will be rejected
+         * (by returning null) by this method.
+         *
+         * @return the resolved URL or null if the input is an absolute URL with
+         *         a scheme other than file (ignoring case)
+         * @throws MalformedURLException
          */
-        static URL safeResolve(URL base, String path) {
-            String child = path.replace(File.separatorChar, '/');
-            try {
-                if (!URI.create(child).isAbsolute()) {
-                    URL url = new URL(base, child);
-                    if (base.getProtocol().equalsIgnoreCase("file")) {
-                        return url;
-                    } else {
-                        String bp = base.getPath();
-                        String urlp = url.getPath();
-                        int pos = bp.lastIndexOf('/');
-                        if (pos == -1) {
-                            pos = bp.length() - 1;
-                        }
-                        if (urlp.regionMatches(0, bp, 0, pos + 1)
-                            && urlp.indexOf("..", pos) == -1) {
-                            return url;
-                        }
-                    }
+        static URL tryResolveFile(URL base, String input) throws MalformedURLException {
+            int index = input.indexOf(':');
+            boolean isFile;
+            if (index >= 0) {
+                String scheme = input.substring(0, index);
+                isFile = "file".equalsIgnoreCase(scheme);
+            } else {
+                isFile = true;
+            }
+            return (isFile) ? new URL(base, input) : null;
+        }
+
+        /**
+         * Attempt to return a URL by resolving input against a base URL. Returns
+         * null if the resolved URL is not contained by the base URL.
+         *
+         * @return the resolved URL or null
+         * @throws MalformedURLException
+         */
+        static URL tryResolveNonFile(URL base, String input) throws MalformedURLException {
+            String child = input.replace(File.separatorChar, '/');
+            if (isRelative(child)) {
+                URL url = new URL(base, child);
+                String bp = base.getPath();
+                String urlp = url.getPath();
+                int pos = bp.lastIndexOf('/');
+                if (pos == -1) {
+                    pos = bp.length() - 1;
                 }
-            } catch (MalformedURLException | IllegalArgumentException e) {}
-            if (DEBUG_CP_URL_CHECK) {
-                System.err.println("Class-Path entry: \"" + path + "\" ignored in JAR file " + base);
+                if (urlp.regionMatches(0, bp, 0, pos + 1)
+                        && urlp.indexOf("..", pos) == -1) {
+                    return url;
+                }
             }
             return null;
         }
+
+        /**
+         * Returns true if the given input is a relative URI.
+         */
+        static boolean isRelative(String child) {
+            try {
+                return !URI.create(child).isAbsolute();
+            } catch (IllegalArgumentException e) {
+                return false;
+            }
+        }
     }
 
     /*
--- a/src/java.base/share/classes/sun/net/ext/ExtendedSocketOptions.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/net/ext/ExtendedSocketOptions.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -54,21 +54,53 @@
     /** Return the, possibly empty, set of extended socket options available. */
     public final Set<SocketOption<?>> options() { return options; }
 
-    public static final Set<SocketOption<?>> options(short type) {
-        return getInstance().options0(type);
+    /**
+     * Returns the (possibly empty) set of extended socket options for
+     * stream-oriented listening sockets.
+     */
+    public static Set<SocketOption<?>> serverSocketOptions() {
+        return getInstance().options0(SOCK_STREAM, true);
+    }
+
+    /**
+     * Returns the (possibly empty) set of extended socket options for
+     * stream-oriented connecting sockets.
+     */
+    public static Set<SocketOption<?>> clientSocketOptions() {
+        return getInstance().options0(SOCK_STREAM, false);
     }
 
-    private Set<SocketOption<?>> options0(short type) {
-        Set<SocketOption<?>> extOptions = null;
+    /**
+     * Returns the (possibly empty) set of extended socket options for
+     * datagram-oriented sockets.
+     */
+    public static Set<SocketOption<?>> datagramSocketOptions() {
+        return getInstance().options0(SOCK_DGRAM, false);
+    }
+
+    private boolean isDatagramOption(SocketOption<?> option) {
+        return !option.name().startsWith("TCP_");
+    }
+
+    private boolean isStreamOption(SocketOption<?> option, boolean server) {
+        if (server && "SO_FLOW_SLA".equals(option.name())) {
+            return false;
+        } else {
+            return !option.name().startsWith("UDP_");
+        }
+    }
+
+    private Set<SocketOption<?>> options0(short type, boolean server) {
+        Set<SocketOption<?>> extOptions;
         switch (type) {
             case SOCK_DGRAM:
                 extOptions = options.stream()
-                        .filter((option) -> !option.name().startsWith("TCP_"))
+                        .filter(option -> isDatagramOption(option))
                         .collect(Collectors.toUnmodifiableSet());
                 break;
             case SOCK_STREAM:
                 extOptions = options.stream()
-                        .filter((option) -> !option.name().startsWith("UDP_"))
+                        .filter(option -> isStreamOption(option, server))
                         .collect(Collectors.toUnmodifiableSet());
                 break;
             default:
--- a/src/java.base/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/net/www/protocol/http/ntlm/NTLMAuthenticationCallback.java	Tue Jan 22 09:43:38 2019 -0500
@@ -33,8 +33,7 @@
  * credentials without prompting) should only be tried with trusted sites.
  */
 public abstract class NTLMAuthenticationCallback {
-    private static volatile NTLMAuthenticationCallback callback =
-            new DefaultNTLMAuthenticationCallback();
+    private static volatile NTLMAuthenticationCallback callback;
 
     public static void setNTLMAuthenticationCallback(
             NTLMAuthenticationCallback callback) {
@@ -50,10 +49,5 @@
      * transparent Authentication.
      */
     public abstract boolean isTrustedSite(URL url);
-
-    static class DefaultNTLMAuthenticationCallback extends NTLMAuthenticationCallback {
-        @Override
-        public boolean isTrustedSite(URL url) { return true; }
-    }
 }
 
--- a/src/java.base/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -40,7 +40,6 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import sun.net.NetHooks;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
 
 /**
  * Base implementation of AsynchronousServerSocketChannel.
@@ -236,7 +235,7 @@
             if (Net.isReusePortAvailable()) {
                 set.add(StandardSocketOptions.SO_REUSEPORT);
             }
-            set.addAll(ExtendedSocketOptions.options(SOCK_STREAM));
+            set.addAll(ExtendedSocketOptions.serverSocketOptions());
             return Collections.unmodifiableSet(set);
         }
     }
--- a/src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -40,7 +40,6 @@
 import java.util.concurrent.locks.*;
 import sun.net.NetHooks;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
 
 /**
  * Base implementation of AsynchronousSocketChannel
@@ -513,7 +512,7 @@
                 set.add(StandardSocketOptions.SO_REUSEPORT);
             }
             set.add(StandardSocketOptions.TCP_NODELAY);
-            set.addAll(ExtendedSocketOptions.options(SOCK_STREAM));
+            set.addAll(ExtendedSocketOptions.clientSocketOptions());
             return Collections.unmodifiableSet(set);
         }
     }
--- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -57,7 +57,6 @@
 
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_DGRAM;
 
 /**
  * An implementation of DatagramChannels.
@@ -335,7 +334,7 @@
             set.add(StandardSocketOptions.IP_MULTICAST_IF);
             set.add(StandardSocketOptions.IP_MULTICAST_TTL);
             set.add(StandardSocketOptions.IP_MULTICAST_LOOP);
-            set.addAll(ExtendedSocketOptions.options(SOCK_DGRAM));
+            set.addAll(ExtendedSocketOptions.datagramSocketOptions());
             return Collections.unmodifiableSet(set);
         }
     }
--- a/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -624,11 +624,10 @@
     {
         // Untrusted target: Use a newly-erased buffer
         int c = Math.min(icount, TRANSFER_SIZE);
-        ByteBuffer bb = Util.getTemporaryDirectBuffer(c);
+        ByteBuffer bb = ByteBuffer.allocate(c);
         long tw = 0;                    // Total bytes written
         long pos = position;
         try {
-            Util.erase(bb);
             while (tw < icount) {
                 bb.limit(Math.min((int)(icount - tw), TRANSFER_SIZE));
                 int nr = read(bb, pos);
@@ -649,8 +648,6 @@
             if (tw > 0)
                 return tw;
             throw x;
-        } finally {
-            Util.releaseTemporaryDirectBuffer(bb);
         }
     }
 
@@ -734,11 +731,10 @@
     {
         // Untrusted target: Use a newly-erased buffer
         int c = (int)Math.min(count, TRANSFER_SIZE);
-        ByteBuffer bb = Util.getTemporaryDirectBuffer(c);
+        ByteBuffer bb = ByteBuffer.allocate(c);
         long tw = 0;                    // Total bytes written
         long pos = position;
         try {
-            Util.erase(bb);
             while (tw < count) {
                 bb.limit((int)Math.min((count - tw), (long)TRANSFER_SIZE));
                 // ## Bug: Will block reading src if this channel
@@ -759,8 +755,6 @@
             if (tw > 0)
                 return tw;
             throw x;
-        } finally {
-            Util.releaseTemporaryDirectBuffer(bb);
         }
     }
 
--- a/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -28,11 +28,9 @@
 import java.io.FileDescriptor;
 import java.io.IOException;
 import java.net.InetSocketAddress;
-import java.net.ProtocolFamily;
 import java.net.ServerSocket;
 import java.net.SocketAddress;
 import java.net.SocketOption;
-import java.net.StandardProtocolFamily;
 import java.net.StandardSocketOptions;
 import java.nio.channels.AlreadyBoundException;
 import java.nio.channels.AsynchronousCloseException;
@@ -50,7 +48,6 @@
 
 import sun.net.NetHooks;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
 
 /**
  * An implementation of ServerSocketChannels
@@ -193,7 +190,7 @@
             if (Net.isReusePortAvailable()) {
                 set.add(StandardSocketOptions.SO_REUSEPORT);
             }
-            set.addAll(ExtendedSocketOptions.options(SOCK_STREAM));
+            set.addAll(ExtendedSocketOptions.serverSocketOptions());
             return Collections.unmodifiableSet(set);
         }
     }
--- a/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -55,7 +55,6 @@
 import sun.net.NetHooks;
 import sun.net.ext.ExtendedSocketOptions;
 import sun.net.util.SocketExceptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
 
 /**
  * An implementation of SocketChannels
@@ -282,7 +281,7 @@
             // additional options required by socket adaptor
             set.add(StandardSocketOptions.IP_TOS);
             set.add(ExtendedSocketOption.SO_OOBINLINE);
-            set.addAll(ExtendedSocketOptions.options(SOCK_STREAM));
+            set.addAll(ExtendedSocketOptions.clientSocketOptions());
             return Collections.unmodifiableSet(set);
         }
     }
--- a/src/java.base/share/classes/sun/nio/cs/UnicodeDecoder.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/nio/cs/UnicodeDecoder.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -91,11 +91,6 @@
 
                 char c = decode(b1, b2);
 
-                if (c == REVERSED_MARK) {
-                    // A reversed BOM cannot occur within middle of stream
-                    return CoderResult.malformedForLength(2);
-                }
-
                 // Surrogates
                 if (Character.isSurrogate(c)) {
                     if (Character.isHighSurrogate(c)) {
--- a/src/java.base/share/classes/sun/security/pkcs10/PKCS10.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/pkcs10/PKCS10.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -32,7 +32,6 @@
 
 import java.security.cert.CertificateException;
 import java.security.*;
-import java.security.spec.AlgorithmParameterSpec;
 
 import java.util.Base64;
 
@@ -237,10 +236,14 @@
          */
         AlgorithmId algId = null;
         try {
-            algId = AlgorithmId.get(signature.getAlgorithm());
+            AlgorithmParameters params = signature.getParameters();
+            algId = params == null
+                    ? AlgorithmId.get(signature.getAlgorithm())
+                    : AlgorithmId.get(params);
         } catch (NoSuchAlgorithmException nsae) {
             throw new SignatureException(nsae);
         }
+
         algId.encode(scratch);     // sig algorithm
         scratch.putBitString(sig);                      // sig
 
--- a/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -63,6 +63,7 @@
 import javax.security.auth.DestroyFailedException;
 import javax.security.auth.x500.X500Principal;
 
+import sun.security.tools.KeyStoreUtil;
 import sun.security.util.Debug;
 import sun.security.util.DerInputStream;
 import sun.security.util.DerOutputStream;
@@ -74,6 +75,7 @@
 import sun.security.pkcs.EncryptedPrivateKeyInfo;
 import sun.security.provider.JavaKeyStore.JKS;
 import sun.security.util.KeyStoreDelegator;
+import sun.security.x509.AuthorityKeyIdentifierExtension;
 
 
 /**
@@ -306,8 +308,7 @@
         Collections.synchronizedMap(new LinkedHashMap<String, Entry>());
 
     private ArrayList<KeyEntry> keyList = new ArrayList<KeyEntry>();
-    private LinkedHashMap<X500Principal, X509Certificate> certsMap =
-            new LinkedHashMap<X500Principal, X509Certificate>();
+    private List<X509Certificate> allCerts = new ArrayList<>();
     private ArrayList<CertEntry> certEntries = new ArrayList<CertEntry>();
 
     /**
@@ -2212,11 +2213,10 @@
                         }
                     }
                     chain.add(cert);
-                    X500Principal issuerDN = cert.getIssuerX500Principal();
-                    if (issuerDN.equals(cert.getSubjectX500Principal())) {
+                    if (KeyStoreUtil.isSelfSigned(cert)) {
                         break;
                     }
-                    cert = certsMap.get(issuerDN);
+                    cert = findIssuer(cert);
                 }
                 /* Update existing KeyEntry in entries table */
                 if (chain.size() > 0) {
@@ -2246,11 +2246,75 @@
         }
 
         certEntries.clear();
-        certsMap.clear();
+        allCerts.clear();
         keyList.clear();
     }
 
     /**
+     * Find the issuer of input in allCerts. If the input has an
+     * AuthorityKeyIdentifier extension and the keyId inside matches
+     * the keyId of the SubjectKeyIdentifier of a cert. This cert is
+     * returned. Otherwise, a cert whose subjectDN is the same as the
+     * input's issuerDN is returned.
+     *
+     * @param input the input certificate
+     * @return the isssuer, or null if none matches
+     */
+    private X509Certificate findIssuer(X509Certificate input) {
+
+        X509Certificate fallback = null; // the DN match
+        X500Principal issuerPrinc = input.getIssuerX500Principal();
+
+        // AuthorityKeyIdentifier value encoded as an OCTET STRING
+        byte[] issuerIdExtension = input.getExtensionValue("2.5.29.35");
+        byte[] issuerId = null;
+
+        if (issuerIdExtension != null) {
+            try {
+                issuerId = new AuthorityKeyIdentifierExtension(
+                            false,
+                            new DerValue(issuerIdExtension).getOctetString())
+                        .getEncodedKeyIdentifier();
+            } catch (IOException e) {
+                // ignored. issuerId is still null
+            }
+        }
+
+        for (X509Certificate cert : allCerts) {
+            if (cert.getSubjectX500Principal().equals(issuerPrinc)) {
+                if (issuerId != null) {
+                    // SubjectKeyIdentifier value encoded as an OCTET STRING
+                    byte[] subjectIdExtension = cert.getExtensionValue("2.5.29.14");
+                    byte[] subjectId = null;
+                    if (subjectIdExtension != null) {
+                        try {
+                            subjectId = new DerValue(subjectIdExtension)
+                                    .getOctetString();
+                        } catch (IOException e) {
+                            // ignored. issuerId is still null
+                        }
+                    }
+                    if (subjectId != null) {
+                        if (Arrays.equals(issuerId, subjectId)) {
+                            // keyId exact match!
+                            return cert;
+                        } else {
+                            // Different keyId. Not a fallback.
+                            continue;
+                        }
+                    } else {
+                        // A DN match with no subjectId
+                        fallback = cert;
+                    }
+                } else { // if there is no issuerId, return the 1st DN match
+                    return cert;
+                }
+            }
+        }
+        return fallback;
+    }
+
+    /**
      * Returns if a pkcs12 file is password-less. This means no cert is
      * encrypted and there is no Mac. Please note that the private key
      * can be encrypted.
@@ -2507,12 +2571,7 @@
                 } else {
                     certEntries.add(new CertEntry(cert, keyId, alias));
                 }
-                X500Principal subjectDN = cert.getSubjectX500Principal();
-                if (subjectDN != null) {
-                    if (!certsMap.containsKey(subjectDN)) {
-                        certsMap.put(subjectDN, cert);
-                    }
-                }
+                allCerts.add(cert);
             }
         }
     }
--- a/src/java.base/share/classes/sun/security/rsa/PSSParameters.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/rsa/PSSParameters.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -52,13 +52,7 @@
 
 public final class PSSParameters extends AlgorithmParametersSpi {
 
-    private String mdName;
-    private MGF1ParameterSpec mgfSpec;
-    private int saltLength;
-    private int trailerField;
-
-    private static final ObjectIdentifier OID_MGF1 =
-           ObjectIdentifier.newInternal(new int[] {1,2,840,113549,1,1,8});
+    private PSSParameterSpec spec;
 
     public PSSParameters() {
     }
@@ -71,9 +65,9 @@
                 ("Inappropriate parameter specification");
         }
         PSSParameterSpec spec = (PSSParameterSpec) paramSpec;
-        this.mdName = spec.getDigestAlgorithm();
+
         String mgfName = spec.getMGFAlgorithm();
-        if (!mgfName.equalsIgnoreCase("MGF1")) {
+        if (!spec.getMGFAlgorithm().equalsIgnoreCase("MGF1")) {
             throw new InvalidParameterSpecException("Unsupported mgf " +
                 mgfName + "; MGF1 only");
         }
@@ -82,31 +76,30 @@
             throw new InvalidParameterSpecException("Inappropriate mgf " +
                 "parameters; non-null MGF1ParameterSpec only");
         }
-        this.mgfSpec = (MGF1ParameterSpec) mgfSpec;
-        this.saltLength = spec.getSaltLength();
-        this.trailerField = spec.getTrailerField();
+        this.spec = spec;
     }
 
     @Override
     protected void engineInit(byte[] encoded) throws IOException {
         // first initialize with the DEFAULT values before
         // retrieving from the encoding bytes
-        this.mdName = DEFAULT.getDigestAlgorithm();
-        this.mgfSpec = (MGF1ParameterSpec) DEFAULT.getMGFParameters();
-        this.saltLength = DEFAULT.getSaltLength();
-        this.trailerField = DEFAULT.getTrailerField();
+        String mdName = DEFAULT.getDigestAlgorithm();
+        MGF1ParameterSpec mgfSpec = (MGF1ParameterSpec) DEFAULT.getMGFParameters();
+        int saltLength = DEFAULT.getSaltLength();
+        int trailerField = DEFAULT.getTrailerField();
 
         DerInputStream der = new DerInputStream(encoded);
         DerValue[] datum = der.getSequence(4);
+
         for (DerValue d : datum) {
             if (d.isContextSpecific((byte) 0x00)) {
                 // hash algid
-                this.mdName = AlgorithmId.parse
+                mdName = AlgorithmId.parse
                     (d.data.getDerValue()).getName();
             } else if (d.isContextSpecific((byte) 0x01)) {
                 // mgf algid
                 AlgorithmId val = AlgorithmId.parse(d.data.getDerValue());
-                if (!val.getOID().equals(OID_MGF1)) {
+                if (!val.getOID().equals(AlgorithmId.mgf1_oid)) {
                     throw new IOException("Only MGF1 mgf is supported");
                 }
                 AlgorithmId params = AlgorithmId.parse(
@@ -114,25 +107,25 @@
                 String mgfDigestName = params.getName();
                 switch (mgfDigestName) {
                 case "SHA-1":
-                    this.mgfSpec = MGF1ParameterSpec.SHA1;
+                    mgfSpec = MGF1ParameterSpec.SHA1;
                     break;
                 case "SHA-224":
-                    this.mgfSpec = MGF1ParameterSpec.SHA224;
+                    mgfSpec = MGF1ParameterSpec.SHA224;
                     break;
                 case "SHA-256":
-                    this.mgfSpec = MGF1ParameterSpec.SHA256;
+                    mgfSpec = MGF1ParameterSpec.SHA256;
                     break;
                 case "SHA-384":
-                    this.mgfSpec = MGF1ParameterSpec.SHA384;
+                    mgfSpec = MGF1ParameterSpec.SHA384;
                     break;
                 case "SHA-512":
-                    this.mgfSpec = MGF1ParameterSpec.SHA512;
+                    mgfSpec = MGF1ParameterSpec.SHA512;
                     break;
                 case "SHA-512/224":
-                    this.mgfSpec = MGF1ParameterSpec.SHA512_224;
+                    mgfSpec = MGF1ParameterSpec.SHA512_224;
                     break;
                 case "SHA-512/256":
-                    this.mgfSpec = MGF1ParameterSpec.SHA512_256;
+                    mgfSpec = MGF1ParameterSpec.SHA512_256;
                     break;
                 default:
                     throw new IOException
@@ -141,21 +134,24 @@
                 }
             } else if (d.isContextSpecific((byte) 0x02)) {
                 // salt length
-                this.saltLength = d.data.getDerValue().getInteger();
-                if (this.saltLength < 0) {
+                saltLength = d.data.getDerValue().getInteger();
+                if (saltLength < 0) {
                     throw new IOException("Negative value for saltLength");
                 }
             } else if (d.isContextSpecific((byte) 0x03)) {
                 // trailer field
-                this.trailerField = d.data.getDerValue().getInteger();
-                if (this.trailerField != 1) {
+                trailerField = d.data.getDerValue().getInteger();
+                if (trailerField != 1) {
                     throw new IOException("Unsupported trailerField value " +
-                    this.trailerField);
+                    trailerField);
                 }
             } else {
                 throw new IOException("Invalid encoded PSSParameters");
             }
         }
+
+        this.spec = new PSSParameterSpec(mdName, "MGF1", mgfSpec,
+                saltLength, trailerField);
     }
 
     @Override
@@ -173,9 +169,7 @@
             T engineGetParameterSpec(Class<T> paramSpec)
             throws InvalidParameterSpecException {
         if (PSSParameterSpec.class.isAssignableFrom(paramSpec)) {
-            return paramSpec.cast(
-                new PSSParameterSpec(mdName, "MGF1", mgfSpec,
-                                     saltLength, trailerField));
+            return paramSpec.cast(spec);
         } else {
             throw new InvalidParameterSpecException
                 ("Inappropriate parameter specification");
@@ -184,54 +178,7 @@
 
     @Override
     protected byte[] engineGetEncoded() throws IOException {
-        DerOutputStream tmp = new DerOutputStream();
-        DerOutputStream tmp2, tmp3;
-
-        // MD
-        AlgorithmId mdAlgId;
-        try {
-            mdAlgId = AlgorithmId.get(mdName);
-        } catch (NoSuchAlgorithmException nsae) {
-            throw new IOException("AlgorithmId " + mdName +
-                                  " impl not found");
-        }
-        tmp2 = new DerOutputStream();
-        mdAlgId.derEncode(tmp2);
-        tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0),
-                      tmp2);
-
-        // MGF
-        tmp2 = new DerOutputStream();
-        tmp2.putOID(OID_MGF1);
-        AlgorithmId mgfDigestId;
-        try {
-            mgfDigestId = AlgorithmId.get(mgfSpec.getDigestAlgorithm());
-        } catch (NoSuchAlgorithmException nase) {
-            throw new IOException("AlgorithmId " +
-                    mgfSpec.getDigestAlgorithm() + " impl not found");
-        }
-        mgfDigestId.encode(tmp2);
-        tmp3 = new DerOutputStream();
-        tmp3.write(DerValue.tag_Sequence, tmp2);
-        tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)1),
-                  tmp3);
-
-        // SaltLength
-        tmp2 = new DerOutputStream();
-        tmp2.putInteger(saltLength);
-        tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)2),
-                  tmp2);
-
-        // TrailerField
-        tmp2 = new DerOutputStream();
-        tmp2.putInteger(trailerField);
-        tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)3),
-                  tmp2);
-
-        // Put all together under a SEQUENCE tag
-        DerOutputStream out = new DerOutputStream();
-        out.write(DerValue.tag_Sequence, tmp);
-        return out.toByteArray();
+        return getEncoded(spec);
     }
 
     @Override
@@ -245,11 +192,83 @@
 
     @Override
     protected String engineToString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("MD: " + mdName + "\n")
-            .append("MGF: MGF1" + mgfSpec.getDigestAlgorithm() + "\n")
-            .append("SaltLength: " + saltLength + "\n")
-            .append("TrailerField: " + trailerField + "\n");
-        return sb.toString();
+        return spec.toString();
+    }
+
+    /**
+     * Returns the encoding of a {@link PSSParameterSpec} object. This method
+     * is used in this class and {@link AlgorithmId}.
+     *
+     * @param spec a {@code PSSParameterSpec} object
+     * @return its DER encoding
+     * @throws IOException if the name of a MessageDigest or MaskGenAlgorithm
+     *          is unsupported
+     */
+    public static byte[] getEncoded(PSSParameterSpec spec) throws IOException {
+
+        AlgorithmParameterSpec mgfSpec = spec.getMGFParameters();
+        if (!(mgfSpec instanceof MGF1ParameterSpec)) {
+            throw new IOException("Cannot encode " + mgfSpec);
+        }
+
+        MGF1ParameterSpec mgf1Spec = (MGF1ParameterSpec)mgfSpec;
+
+        DerOutputStream tmp = new DerOutputStream();
+        DerOutputStream tmp2, tmp3;
+
+        // MD
+        AlgorithmId mdAlgId;
+        try {
+            mdAlgId = AlgorithmId.get(spec.getDigestAlgorithm());
+        } catch (NoSuchAlgorithmException nsae) {
+            throw new IOException("AlgorithmId " + spec.getDigestAlgorithm() +
+                    " impl not found");
+        }
+        if (!mdAlgId.getOID().equals(AlgorithmId.SHA_oid)) {
+            tmp2 = new DerOutputStream();
+            mdAlgId.derEncode(tmp2);
+            tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 0),
+                    tmp2);
+        }
+
+        // MGF
+        AlgorithmId mgfDigestId;
+        try {
+            mgfDigestId = AlgorithmId.get(mgf1Spec.getDigestAlgorithm());
+        } catch (NoSuchAlgorithmException nase) {
+            throw new IOException("AlgorithmId " +
+                    mgf1Spec.getDigestAlgorithm() + " impl not found");
+        }
+
+        if (!mgfDigestId.getOID().equals(AlgorithmId.SHA_oid)) {
+            tmp2 = new DerOutputStream();
+            tmp2.putOID(AlgorithmId.mgf1_oid);
+            mgfDigestId.encode(tmp2);
+            tmp3 = new DerOutputStream();
+            tmp3.write(DerValue.tag_Sequence, tmp2);
+            tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 1),
+                    tmp3);
+        }
+
+        // SaltLength
+        if (spec.getSaltLength() != 20) {
+            tmp2 = new DerOutputStream();
+            tmp2.putInteger(spec.getSaltLength());
+            tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 2),
+                    tmp2);
+        }
+
+        // TrailerField
+        if (spec.getTrailerField() != PSSParameterSpec.TRAILER_FIELD_BC) {
+            tmp2 = new DerOutputStream();
+            tmp2.putInteger(spec.getTrailerField());
+            tmp.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte) 3),
+                    tmp2);
+        }
+
+        // Put all together under a SEQUENCE tag
+        DerOutputStream out = new DerOutputStream();
+        out.write(DerValue.tag_Sequence, tmp);
+        return out.toByteArray();
     }
 }
--- a/src/java.base/share/classes/sun/security/ssl/Ciphertext.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/ssl/Ciphertext.java	Tue Jan 22 09:43:38 2019 -0500
@@ -31,8 +31,6 @@
  * Ciphertext
  */
 final class Ciphertext {
-    static final Ciphertext CIPHERTEXT_NULL = new Ciphertext();
-
     final byte contentType;
     final byte handshakeType;
     final long recordSN;
--- a/src/java.base/share/classes/sun/security/ssl/DHKeyExchange.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/ssl/DHKeyExchange.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -220,8 +220,8 @@
         public byte[] encode() {
             // Note: the DH public value is encoded as a big-endian integer
             // and padded to the left with zeros to the size of p in bytes.
-            byte[] encoded = publicKey.getY().toByteArray();
-            int pSize = KeyUtil.getKeySize(publicKey);
+            byte[] encoded = Utilities.toByteArray(publicKey.getY());
+            int pSize = (KeyUtil.getKeySize(publicKey) + 7) >>> 3;
             if (pSize > 0 && encoded.length < pSize) {
                 byte[] buffer = new byte[pSize];
                 System.arraycopy(encoded, 0,
--- a/src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -247,6 +247,19 @@
             hsStatus = ciphertext.handshakeStatus;
         } else {
             hsStatus = getHandshakeStatus();
+            if (ciphertext == null && !conContext.isNegotiated &&
+                    conContext.isInboundClosed() &&
+                    hsStatus == HandshakeStatus.NEED_WRAP) {
+                // Even the outboud is open, no futher data could be wrapped as:
+                //     1. the outbound is empty
+                //     2. no negotiated connection
+                //     3. the inbound has closed, cannot complete the handshake
+                //
+                // Mark the engine as closed if the handshake status is
+                // NEED_WRAP. Otherwise, it could lead to dead loops in
+                // applications.
+                status = Status.CLOSED;
+            }
         }
 
         int deltaSrcs = srcsRemains;
@@ -279,7 +292,7 @@
         }
 
         if (ciphertext == null) {
-            return Ciphertext.CIPHERTEXT_NULL;
+            return null;
         }
 
         // Is the handshake completed?
--- a/src/java.base/share/classes/sun/security/ssl/TransportContext.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/ssl/TransportContext.java	Tue Jan 22 09:43:38 2019 -0500
@@ -577,13 +577,7 @@
             } else if (!isOutboundClosed()) {
                 // Special case that the inbound was closed, but outbound open.
                 return HandshakeStatus.NEED_WRAP;
-            }
-        } else if (isOutboundClosed() && !isInboundClosed()) {
-            // Special case that the outbound was closed, but inbound open.
-            return HandshakeStatus.NEED_UNWRAP;
-        } else if (!isOutboundClosed() && isInboundClosed()) {
-            // Special case that the inbound was closed, but outbound open.
-            return HandshakeStatus.NEED_WRAP;
+            }   // Otherwise, both inbound and outbound are closed.
         }
 
         return HandshakeStatus.NOT_HANDSHAKING;
--- a/src/java.base/share/classes/sun/security/tools/keytool/CertAndKeyGen.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/tools/keytool/CertAndKeyGen.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -30,6 +30,7 @@
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateEncodingException;
 import java.security.*;
+import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.ECGenParameterSpec;
 import java.security.spec.NamedParameterSpec;
 import java.util.Date;
@@ -37,7 +38,6 @@
 import sun.security.pkcs10.PKCS10;
 import sun.security.x509.*;
 
-
 /**
  * Generate a pair of keys, and provide access to them.  This class is
  * provided primarily for ease of use.
@@ -282,12 +282,14 @@
                                    new CertificateValidity(firstDate,lastDate);
 
             X509CertInfo info = new X509CertInfo();
+            AlgorithmParameterSpec params = AlgorithmId
+                    .getDefaultAlgorithmParameterSpec(sigAlg, privateKey);
             // Add all mandatory attributes
             info.set(X509CertInfo.VERSION,
                      new CertificateVersion(CertificateVersion.V3));
             info.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(
                     new java.util.Random().nextInt() & 0x7fffffff));
-            AlgorithmId algID = AlgorithmId.get(sigAlg);
+            AlgorithmId algID = AlgorithmId.getWithParameterSpec(sigAlg, params);
             info.set(X509CertInfo.ALGORITHM_ID,
                      new CertificateAlgorithmId(algID));
             info.set(X509CertInfo.SUBJECT, myname);
@@ -297,13 +299,19 @@
             if (ext != null) info.set(X509CertInfo.EXTENSIONS, ext);
 
             cert = new X509CertImpl(info);
-            cert.sign(privateKey, this.sigAlg);
+            cert.sign(privateKey,
+                    params,
+                    sigAlg,
+                    null);
 
             return (X509Certificate)cert;
 
         } catch (IOException e) {
              throw new CertificateEncodingException("getSelfCert: " +
                                                     e.getMessage());
+        } catch (InvalidAlgorithmParameterException e2) {
+            throw new SignatureException(
+                    "Unsupported PSSParameterSpec: " + e2.getMessage());
         }
     }
 
@@ -329,6 +337,7 @@
      * @exception InvalidKeyException on key handling errors.
      * @exception SignatureException on signature handling errors.
      */
+    // This method is not used inside JDK. Will not update it.
     public PKCS10 getCertRequest (X500Name myname)
     throws InvalidKeyException, SignatureException
     {
--- a/src/java.base/share/classes/sun/security/tools/keytool/Main.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Main.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -52,6 +52,7 @@
 
 
 import java.security.interfaces.ECKey;
+import java.security.spec.AlgorithmParameterSpec;
 import java.security.spec.ECParameterSpec;
 import java.text.Collator;
 import java.text.MessageFormat;
@@ -1431,14 +1432,16 @@
         signature.initSign(privateKey);
 
         X509CertInfo info = new X509CertInfo();
+        AlgorithmParameterSpec params = AlgorithmId
+                .getDefaultAlgorithmParameterSpec(sigAlgName, privateKey);
+        AlgorithmId algID = AlgorithmId.getWithParameterSpec(sigAlgName, params);
         info.set(X509CertInfo.VALIDITY, interval);
         info.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(
                     new java.util.Random().nextInt() & 0x7fffffff));
         info.set(X509CertInfo.VERSION,
                     new CertificateVersion(CertificateVersion.V3));
         info.set(X509CertInfo.ALGORITHM_ID,
-                    new CertificateAlgorithmId(
-                        AlgorithmId.get(sigAlgName)));
+                    new CertificateAlgorithmId(algID));
         info.set(X509CertInfo.ISSUER, issuer);
 
         BufferedReader reader = new BufferedReader(new InputStreamReader(in));
@@ -1482,7 +1485,7 @@
                 signerCert.getPublicKey());
         info.set(X509CertInfo.EXTENSIONS, ext);
         X509CertImpl cert = new X509CertImpl(info);
-        cert.sign(privateKey, sigAlgName);
+        cert.sign(privateKey, params, sigAlgName, null);
         dumpCert(cert, out);
         for (Certificate ca: keyStore.getCertificateChain(alias)) {
             if (ca instanceof X509Certificate) {
@@ -1585,6 +1588,12 @@
 
         Signature signature = Signature.getInstance(sigAlgName);
         signature.initSign(privKey);
+        AlgorithmParameterSpec params = AlgorithmId
+                .getDefaultAlgorithmParameterSpec(sigAlgName, privKey);
+        if (params != null) {
+            signature.setParameter(params);
+        }
+
         X500Name subject = dname == null?
                 new X500Name(((X509Certificate)cert).getSubjectDN().toString()):
                 new X500Name(dname);
@@ -2962,7 +2971,9 @@
         // other solution: We first sign the cert, then retrieve the
         // outer sigalg and use it to set the inner sigalg
         X509CertImpl newCert = new X509CertImpl(certInfo);
-        newCert.sign(privKey, sigAlgName);
+        AlgorithmParameterSpec params = AlgorithmId
+                .getDefaultAlgorithmParameterSpec(sigAlgName, privKey);
+        newCert.sign(privKey, params, sigAlgName, null);
         AlgorithmId sigAlgid = (AlgorithmId)newCert.get(X509CertImpl.SIG_ALG);
         certInfo.set(CertificateAlgorithmId.NAME + "." +
                      CertificateAlgorithmId.ALGORITHM, sigAlgid);
@@ -2979,7 +2990,7 @@
         certInfo.set(X509CertInfo.EXTENSIONS, ext);
         // Sign the new certificate
         newCert = new X509CertImpl(certInfo);
-        newCert.sign(privKey, sigAlgName);
+        newCert.sign(privKey, params, sigAlgName, null);
 
         // Store the new certificate as a single-element certificate chain
         keyStore.setKeyEntry(alias, privKey,
@@ -3773,9 +3784,9 @@
                                  replyCerts.length);
                 tmpCerts[tmpCerts.length-1] = root.snd;
                 replyCerts = tmpCerts;
-                checkWeak(String.format(rb.getString(fromKeyStore ?
-                                            "alias.in.keystore" :
-                                            "alias.in.cacerts"),
+                checkWeak(String.format(fromKeyStore
+                                ? rb.getString("alias.in.keystore")
+                                : rb.getString("alias.in.cacerts"),
                                         root.fst),
                           root.snd);
             }
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources.java	Tue Jan 22 09:43:38 2019 -0500
@@ -253,7 +253,6 @@
         {"Keystore.password.is.too.short.must.be.at.least.6.characters",
          "Keystore password is too short - must be at least 6 characters"},
         {"Unknown.Entry.Type", "Unknown Entry Type"},
-        {"Too.many.failures.Alias.not.changed", "Too many failures. Alias not changed"},
         {"Entry.for.alias.alias.successfully.imported.",
                  "Entry for alias {0} successfully imported."},
         {"Entry.for.alias.alias.not.imported.", "Entry for alias {0} not imported."},
@@ -314,10 +313,6 @@
         {"Too.many.failures.Key.entry.not.cloned",
                 "Too many failures. Key entry not cloned"},
         {"key.password.for.alias.", "key password for <{0}>"},
-        {"Keystore.entry.for.id.getName.already.exists",
-                "Keystore entry for <{0}> already exists"},
-        {"Creating.keystore.entry.for.id.getName.",
-                "Creating keystore entry for <{0}> ..."},
         {"No.entries.from.identity.database.added",
                 "No entries from identity database added"},
         {"Alias.name.alias", "Alias name: {0}"},
@@ -355,7 +350,6 @@
         {"Do.you.still.want.to.add.it.to.your.own.keystore.no.",
                 "Do you still want to add it to your own keystore? [no]:  "},
         {"Trust.this.certificate.no.", "Trust this certificate? [no]:  "},
-        {"YES", "YES"},
         {"New.prompt.", "New {0}: "},
         {"Passwords.must.differ", "Passwords must differ"},
         {"Re.enter.new.prompt.", "Re-enter new {0}: "},
@@ -395,7 +389,6 @@
         {"Signer.d.", "Signer #%d:"},
         {"Timestamp.", "Timestamp:"},
         {"Signature.", "Signature:"},
-        {"CRLs.", "CRLs:"},
         {"Certificate.owner.", "Certificate owner: "},
         {"Not.a.signed.jar.file", "Not a signed jar file"},
         {"No.certificate.from.the.SSL.server",
@@ -414,13 +407,10 @@
                 "Certificate reply does not contain public key for <{0}>"},
         {"Incomplete.certificate.chain.in.reply",
                 "Incomplete certificate chain in reply"},
-        {"Certificate.chain.in.reply.does.not.verify.",
-                "Certificate chain in reply does not verify: "},
         {"Top.level.certificate.in.reply.",
                 "Top-level certificate in reply:\n"},
         {".is.not.trusted.", "... is not trusted. "},
         {"Install.reply.anyway.no.", "Install reply anyway? [no]:  "},
-        {"NO", "NO"},
         {"Public.keys.in.reply.and.keystore.don.t.match",
                 "Public keys in reply and keystore don't match"},
         {"Certificate.reply.and.certificate.in.keystore.are.identical",
--- a/src/java.base/share/classes/sun/security/util/Resources.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/util/Resources.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -66,8 +66,6 @@
         {"Subject.", "Subject:\n"},
         {".Principal.", "\tPrincipal: "},
         {".Public.Credential.", "\tPublic Credential: "},
-        {".Private.Credentials.inaccessible.",
-                "\tPrivate Credentials inaccessible\n"},
         {".Private.Credential.", "\tPrivate Credential: "},
         {".Private.Credential.inaccessible.",
                 "\tPrivate Credential inaccessible\n"},
@@ -89,16 +87,6 @@
                 "invalid null CallbackHandler provided"},
         {"null.subject.logout.called.before.login",
                 "null subject - logout called before login"},
-        {"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor",
-                "unable to instantiate LoginModule, {0}, because it does not provide a no-argument constructor"},
-        {"unable.to.instantiate.LoginModule",
-                "unable to instantiate LoginModule"},
-        {"unable.to.instantiate.LoginModule.",
-                "unable to instantiate LoginModule: "},
-        {"unable.to.find.LoginModule.class.",
-                "unable to find LoginModule class: "},
-        {"unable.to.access.LoginModule.",
-                "unable to access LoginModule: "},
         {"Login.Failure.all.modules.ignored",
                 "Login Failure: all modules ignored"},
 
--- a/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/x509/AlgorithmId.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -26,9 +26,14 @@
 package sun.security.x509;
 
 import java.io.*;
+import java.security.spec.AlgorithmParameterSpec;
+import java.security.spec.InvalidParameterSpecException;
+import java.security.spec.MGF1ParameterSpec;
+import java.security.spec.PSSParameterSpec;
 import java.util.*;
 import java.security.*;
 
+import sun.security.rsa.PSSParameters;
 import sun.security.util.*;
 
 
@@ -190,7 +195,12 @@
             } else {
                 bytes.putNull();
             }*/
-            bytes.putNull();
+            if (algid.equals(RSASSA_PSS_oid)) {
+                // RFC 4055 3.3: when an RSASSA-PSS key does not require
+                // parameter validation, field is absent.
+            } else {
+                bytes.putNull();
+            }
         } else {
             bytes.putDerValue(params);
         }
@@ -689,6 +699,8 @@
                                             oid(1, 2, 840, 113549, 1, 1, 1);
     public static final ObjectIdentifier RSAES_OAEP_oid =
                                             oid(1, 2, 840, 113549, 1, 1, 7);
+    public static final ObjectIdentifier mgf1_oid =
+                                            oid(1, 2, 840, 113549, 1, 1, 8);
     public static final ObjectIdentifier RSASSA_PSS_oid =
                                             oid(1, 2, 840, 113549, 1, 1, 10);
 
@@ -1063,6 +1075,81 @@
         }
     }
 
+    // Most commonly used PSSParameterSpec and AlgorithmId
+    private static class PSSParamsHolder {
+
+        final static PSSParameterSpec PSS_256_SPEC = new PSSParameterSpec(
+                "SHA-256", "MGF1",
+                new MGF1ParameterSpec("SHA-256"),
+                32, PSSParameterSpec.TRAILER_FIELD_BC);
+        final static PSSParameterSpec PSS_384_SPEC = new PSSParameterSpec(
+                "SHA-384", "MGF1",
+                new MGF1ParameterSpec("SHA-384"),
+                48, PSSParameterSpec.TRAILER_FIELD_BC);
+        final static PSSParameterSpec PSS_512_SPEC = new PSSParameterSpec(
+                "SHA-512", "MGF1",
+                new MGF1ParameterSpec("SHA-512"),
+                64, PSSParameterSpec.TRAILER_FIELD_BC);
+
+        final static AlgorithmId PSS_256_ID;
+        final static AlgorithmId PSS_384_ID;
+        final static AlgorithmId PSS_512_ID;
+
+        static {
+            try {
+                PSS_256_ID = new AlgorithmId(RSASSA_PSS_oid,
+                        new DerValue(PSSParameters.getEncoded(PSS_256_SPEC)));
+                PSS_384_ID = new AlgorithmId(RSASSA_PSS_oid,
+                        new DerValue(PSSParameters.getEncoded(PSS_384_SPEC)));
+                PSS_512_ID = new AlgorithmId(RSASSA_PSS_oid,
+                        new DerValue(PSSParameters.getEncoded(PSS_512_SPEC)));
+            } catch (IOException e) {
+                throw new AssertionError("Should not happen", e);
+            }
+        }
+    }
+
+    public static AlgorithmId getWithParameterSpec(String algName,
+            AlgorithmParameterSpec spec) throws NoSuchAlgorithmException {
+
+        if (spec == null) {
+            return AlgorithmId.get(algName);
+        } else if (spec == PSSParamsHolder.PSS_256_SPEC) {
+            return PSSParamsHolder.PSS_256_ID;
+        } else if (spec == PSSParamsHolder.PSS_384_SPEC) {
+            return PSSParamsHolder.PSS_384_ID;
+        } else if (spec == PSSParamsHolder.PSS_512_SPEC) {
+            return PSSParamsHolder.PSS_512_ID;
+        } else {
+            try {
+                AlgorithmParameters result =
+                        AlgorithmParameters.getInstance(algName);
+                result.init(spec);
+                return get(result);
+            } catch (InvalidParameterSpecException | NoSuchAlgorithmException e) {
+                throw new ProviderException(e);
+            }
+        }
+    }
+
+    public static PSSParameterSpec getDefaultAlgorithmParameterSpec(
+            String sigAlg, PrivateKey k) {
+        if (sigAlg.equalsIgnoreCase("RSASSA-PSS")) {
+            switch (ifcFfcStrength(KeyUtil.getKeySize(k))) {
+                case "SHA256":
+                    return PSSParamsHolder.PSS_256_SPEC;
+                case "SHA384":
+                    return PSSParamsHolder.PSS_384_SPEC;
+                case "SHA512":
+                    return PSSParamsHolder.PSS_512_SPEC;
+                default:
+                    throw new AssertionError("Should not happen");
+            }
+        } else {
+            return null;
+        }
+    }
+
     // Values from SP800-57 part 1 rev 4 tables 2 and 3
     private static String ecStrength (int bitLength) {
         if (bitLength >= 512) { // 256 bits of strength
--- a/src/java.base/share/classes/sun/security/x509/X509CertImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/classes/sun/security/x509/X509CertImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -42,7 +42,6 @@
 
 import javax.security.auth.x500.X500Principal;
 
-import java.util.Base64;
 import sun.security.util.*;
 import sun.security.provider.X509Factory;
 
@@ -599,14 +598,10 @@
 
             sigEngine.initSign(key);
 
-            // set parameters after Signature.initSign/initVerify call, so
-            // the deferred provider selection happens when the key is set
-            try {
+            if (signingParams != null) {
+                // set parameters after Signature.initSign/initVerify call, so
+                // the deferred provider selection happens when the key is set
                 sigEngine.setParameter(signingParams);
-            } catch (UnsupportedOperationException e) {
-                // for backward compatibility, only re-throw when
-                // parameters is not null
-                if (signingParams != null) throw e;
             }
 
             // in case the name is reset
--- a/src/java.base/share/conf/net.properties	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/conf/net.properties	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 ############################################################
-#  	Default Networking Configuration File
+#       Default Networking Configuration File
 #
 # This file may contain default values for the networking system properties.
 # These values are only used when the system properties are not specified
@@ -110,3 +110,23 @@
 #
 # jdk.httpclient.allowRestrictedHeaders=host
 #
+#
+# Transparent NTLM HTTP authentication mode on Windows. Transparent authentication
+# can be used for the NTLM scheme, where the security credentials based on the
+# currently logged in user's name and password can be obtained directly from the
+# operating system, without prompting the user. This property has three possible
+# values which regulate the behavior as shown below. Other unrecognized values
+# are handled the same as 'disabled'. Note, that NTLM is not considered to be a
+# strongly secure authentication scheme and care should be taken before enabling
+# this mechanism.
+#
+# Transparent authentication never used.
+#jdk.http.ntlm.transparentAuth=disabled
+#
+# Enabled for all hosts.
+#jdk.http.ntlm.transparentAuth=allHosts
+#
+# Enabled for hosts that are trusted in Windows Internet settings
+#jdk.http.ntlm.transparentAuth=trustedHosts
+#
+jdk.http.ntlm.transparentAuth=disabled
--- a/src/java.base/share/conf/security/java.security	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/conf/security/java.security	Tue Jan 22 09:43:38 2019 -0500
@@ -920,7 +920,7 @@
     noRetrievalMethodLoops
 
 #
-# Serialization process-wide filter
+# Serialization system-wide filter
 #
 # A filter, if configured, is used by java.io.ObjectInputStream during
 # deserialization to check the contents of the stream.
--- a/src/java.base/share/lib/security/default.policy	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/share/lib/security/default.policy	Tue Jan 22 09:43:38 2019 -0500
@@ -127,6 +127,7 @@
     permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
     permission java.lang.RuntimePermission "loadLibrary.j2pkcs11";
     permission java.util.PropertyPermission "sun.security.pkcs11.allowSingleThreadedModules", "read";
+    permission java.util.PropertyPermission "sun.security.pkcs11.disableKeyExtraction", "read";
     permission java.util.PropertyPermission "os.name", "read";
     permission java.util.PropertyPermission "os.arch", "read";
     permission java.util.PropertyPermission "jdk.crypto.KeyAgreement.legacyKDF", "read";
@@ -157,10 +158,14 @@
 };
 
 grant codeBase "jrt:/jdk.internal.vm.compiler.management" {
-    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.hotspot";
+    permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.vm.compiler.collections";
     permission java.lang.RuntimePermission "accessClassInPackage.jdk.vm.ci.runtime";
-    permission java.lang.RuntimePermission "accessClassInPackage.sun.management.spi";
-    permission java.lang.RuntimePermission "sun.management.spi.PlatformMBeanProvider.subclass";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.core.common";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.debug";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.hotspot";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.options";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.phases.common.jmx";
+    permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.serviceprovider";
 };
 
 grant codeBase "jrt:/jdk.jsobject" {
--- a/src/java.base/unix/classes/java/net/PlainDatagramSocketImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/classes/java/net/PlainDatagramSocketImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -28,7 +28,6 @@
 import java.util.Set;
 import java.util.HashSet;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_DGRAM;
 
 /*
  * On Unix systems we simply delegate to native methods.
@@ -78,7 +77,7 @@
 
     protected Set<SocketOption<?>> supportedOptions() {
         HashSet<SocketOption<?>> options = new HashSet<>(super.supportedOptions());
-        options.addAll(ExtendedSocketOptions.options(SOCK_DGRAM));
+        options.addAll(ExtendedSocketOptions.datagramSocketOptions());
         return options;
     }
 
--- a/src/java.base/unix/classes/java/net/PlainSocketImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/classes/java/net/PlainSocketImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -29,7 +29,6 @@
 import java.util.Set;
 import java.util.HashSet;
 import sun.net.ext.ExtendedSocketOptions;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
 
 /*
  * On Unix systems we simply delegate to native methods.
@@ -91,25 +90,14 @@
 
     protected Set<SocketOption<?>> supportedOptions() {
         HashSet<SocketOption<?>> options = new HashSet<>(super.supportedOptions());
-        addExtSocketOptions(ExtendedSocketOptions.options(SOCK_STREAM), options);
+        if (getServerSocket() != null) {
+            options.addAll(ExtendedSocketOptions.serverSocketOptions());
+        } else {
+            options.addAll(ExtendedSocketOptions.clientSocketOptions());
+        }
         return options;
     }
 
-    private void addExtSocketOptions(Set<SocketOption<?>> extOptions,
-            Set<SocketOption<?>> options) {
-        extOptions.forEach((option) -> {
-            if (option.name().equals("SO_FLOW_SLA")) {
-                // SO_FLOW_SLA is Solaris specific option which is not applicable
-                // for ServerSockets.
-                // getSocket() will always return null for server socket
-                if (getSocket() != null) {
-                    options.add(option);
-                }
-            } else {
-                options.add(option);
-            }
-        });
-    }
     protected void socketSetOption(int opt, boolean b, Object val) throws SocketException {
         if (opt == SocketOptions.SO_REUSEPORT &&
             !supportedOptions().contains(StandardSocketOptions.SO_REUSEPORT)) {
--- a/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Tue Jan 22 09:43:38 2019 -0500
@@ -93,10 +93,13 @@
 
     /**
      * Returns true if the given site is trusted, i.e. we can try
-     * transparent Authentication.
+     * transparent Authentication. Shouldn't be called since
+     * capability not supported on Unix
      */
     public static boolean isTrustedSite(URL url) {
-        return NTLMAuthCallback.isTrustedSite(url);
+        if (NTLMAuthCallback != null)
+            return NTLMAuthCallback.isTrustedSite(url);
+        return false;
     }
 
     private void init0() {
--- a/src/java.base/unix/native/libjli/java_md_solinux.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/native/libjli/java_md_solinux.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -374,10 +374,6 @@
             char *new_jvmpath = JLI_StringDup(jvmpath);
             new_runpath_size = ((runpath != NULL) ? JLI_StrLen(runpath) : 0) +
                     2 * JLI_StrLen(jrepath) +
-#ifdef AIX
-                    /* On AIX we additionally need 'jli' in the path because ld doesn't support $ORIGIN. */
-                    JLI_StrLen(jrepath) + JLI_StrLen("/lib//jli:") +
-#endif
                     JLI_StrLen(new_jvmpath) + 52;
             new_runpath = JLI_MemAlloc(new_runpath_size);
             newpath = new_runpath + JLI_StrLen(LD_LIBRARY_PATH "=");
@@ -395,15 +391,9 @@
                 sprintf(new_runpath, LD_LIBRARY_PATH "="
                         "%s:"
                         "%s/lib:"
-#ifdef AIX
-                        "%s/lib/jli:" /* Needed on AIX because ld doesn't support $ORIGIN. */
-#endif
                         "%s/../lib",
                         new_jvmpath,
                         jrepath,
-#ifdef AIX
-                        jrepath,
-#endif
                         jrepath
                         );
 
--- a/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/native/libnet/Inet6AddressImpl.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -142,17 +142,18 @@
      */
     struct ifaddrs *iter = ifa;
     while (iter) {
-        int family = iter->ifa_addr->sa_family;
-        if (iter->ifa_name[0] != '\0' && iter->ifa_addr)
-        {
-            jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
-            if (family == AF_INET) {
-                addrs4++;
-                if (isLoopback) numV4Loopbacks++;
-            } else if (family == AF_INET6 && includeV6) {
-                addrs6++;
-                if (isLoopback) numV6Loopbacks++;
-            } // else we don't care, e.g. AF_LINK
+        if (iter->ifa_addr != NULL) {
+            int family = iter->ifa_addr->sa_family;
+            if (iter->ifa_name[0] != '\0') {
+                jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
+                if (family == AF_INET) {
+                    addrs4++;
+                    if (isLoopback) numV4Loopbacks++;
+                } else if (family == AF_INET6 && includeV6) {
+                    addrs6++;
+                    if (isLoopback) numV6Loopbacks++;
+                } // else we don't care, e.g. AF_LINK
+            }
         }
         iter = iter->ifa_next;
     }
@@ -180,28 +181,30 @@
     // Now loop around the ifaddrs
     iter = ifa;
     while (iter != NULL) {
-        jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
-        int family = iter->ifa_addr->sa_family;
+        if (iter->ifa_addr != NULL) {
+            jboolean isLoopback = iter->ifa_flags & IFF_LOOPBACK;
+            int family = iter->ifa_addr->sa_family;
 
-        if (iter->ifa_name[0] != '\0' && iter->ifa_addr &&
-            (family == AF_INET || (family == AF_INET6 && includeV6)) &&
-            (!isLoopback || includeLoopback))
-        {
-            int port;
-            int index = (family == AF_INET) ? i++ : j++;
-            jobject o = NET_SockaddrToInetAddress(env,
-                            (SOCKETADDRESS *)iter->ifa_addr, &port);
-            if (!o) {
-                freeifaddrs(ifa);
-                if (!(*env)->ExceptionCheck(env))
-                    JNU_ThrowOutOfMemoryError(env, "Object allocation failed");
-                return NULL;
+            if (iter->ifa_name[0] != '\0' &&
+                (family == AF_INET || (family == AF_INET6 && includeV6)) &&
+                (!isLoopback || includeLoopback))
+            {
+                int port;
+                int index = (family == AF_INET) ? i++ : j++;
+                jobject o = NET_SockaddrToInetAddress(env,
+                                (SOCKETADDRESS *)iter->ifa_addr, &port);
+                if (!o) {
+                    freeifaddrs(ifa);
+                    if (!(*env)->ExceptionCheck(env))
+                        JNU_ThrowOutOfMemoryError(env, "Object allocation failed");
+                    return NULL;
+                }
+                setInetAddress_hostName(env, o, name);
+                if ((*env)->ExceptionCheck(env))
+                    goto done;
+                (*env)->SetObjectArrayElement(env, result, index, o);
+                (*env)->DeleteLocalRef(env, o);
             }
-            setInetAddress_hostName(env, o, name);
-            if ((*env)->ExceptionCheck(env))
-                goto done;
-            (*env)->SetObjectArrayElement(env, result, index, o);
-            (*env)->DeleteLocalRef(env, o);
         }
         iter = iter->ifa_next;
     }
--- a/src/java.base/unix/native/libnet/NetworkInterface.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/native/libnet/NetworkInterface.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 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
@@ -1015,7 +1015,11 @@
  */
 static short translateIPv4AddressToPrefix(struct sockaddr_in *addr) {
     short prefix = 0;
-    unsigned int mask = ntohl(addr->sin_addr.s_addr);
+    unsigned int mask;
+    if (addr == NULL) {
+        return 0;
+    }
+    mask = ntohl(addr->sin_addr.s_addr);
     while (mask) {
         mask <<= 1;
         prefix++;
@@ -1028,7 +1032,11 @@
  */
 static short translateIPv6AddressToPrefix(struct sockaddr_in6 *addr) {
     short prefix = 0;
-    u_char *addrBytes = (u_char *)&(addr->sin6_addr);
+    u_char *addrBytes;
+    if (addr == NULL) {
+        return 0;
+    }
+    addrBytes = (u_char *)&(addr->sin6_addr);
     unsigned int byte, bit;
 
     for (byte = 0; byte < sizeof(struct in6_addr); byte++, prefix += 8) {
@@ -1541,20 +1549,23 @@
 
     if (getkerninfo(KINFO_NDD, nddp, &size, 0) < 0) {
         perror("getkerninfo 2");
+        free(nddp);
         return -1;
     }
 
     end = (void *)nddp + size;
     while ((void *)nddp < end) {
         if (!strcmp(nddp->ndd_alias, ifname) ||
-                !strcmp(nddp->ndd_name, ifname)) {
+                 !strcmp(nddp->ndd_name, ifname)) {
             bcopy(nddp->ndd_addr, buf, 6);
+            free(nddp);
             return 6;
         } else {
             nddp++;
         }
     }
 
+    free(nddp);
     return -1;
 }
 
@@ -2092,14 +2103,16 @@
         // cycle through the interfaces
         for (i = 0, ifa = ifa0; ifa != NULL; ifa = ifa->ifa_next, i++) {
             saddr = ifa->ifa_addr;
-            // link layer contains the MAC address
-            if (saddr->sa_family == AF_LINK && !strcmp(ifname, ifa->ifa_name)) {
-                struct sockaddr_dl *sadl = (struct sockaddr_dl *) saddr;
-                // check the address has the correct length
-                if (sadl->sdl_alen == ETHER_ADDR_LEN) {
-                    memcpy(buf, (sadl->sdl_data + sadl->sdl_nlen), ETHER_ADDR_LEN);
-                    freeifaddrs(ifa0);
-                    return ETHER_ADDR_LEN;
+            if (saddr != NULL) {
+                // link layer contains the MAC address
+                if (saddr->sa_family == AF_LINK && !strcmp(ifname, ifa->ifa_name)) {
+                    struct sockaddr_dl *sadl = (struct sockaddr_dl *) saddr;
+                    // check the address has the correct length
+                    if (sadl->sdl_alen == ETHER_ADDR_LEN) {
+                        memcpy(buf, (sadl->sdl_data + sadl->sdl_nlen), ETHER_ADDR_LEN);
+                        freeifaddrs(ifa0);
+                        return ETHER_ADDR_LEN;
+                    }
                 }
             }
         }
--- a/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -1084,7 +1084,7 @@
 
     if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF,
                    (const char*)&index, sizeof(index)) < 0) {
-        if (errno == EINVAL && index > 0) {
+        if ((errno == EINVAL || errno == EADDRNOTAVAIL) && index > 0) {
             JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
                 "IPV6_MULTICAST_IF failed (interface has IPv4 "
                 "address only?)");
--- a/src/java.base/unix/native/libnet/net_util_md.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/unix/native/libnet/net_util_md.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -584,6 +584,8 @@
 
                 if (loRoutesTemp == 0) {
                     free(loRoutes);
+                    loRoutes = NULL;
+                    nRoutes = 0;
                     fclose (f);
                     return;
                 }
@@ -645,6 +647,7 @@
     unsigned char staddr [16];
     char ifname [33];
     struct localinterface *lif=0;
+    struct localinterface *localifsTemp;
     int index, x1, x2, x3;
     unsigned int u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,ua,ub,uc,ud,ue,uf;
 
@@ -673,13 +676,17 @@
         staddr[15] = (unsigned char)uf;
         nifs ++;
         if (nifs > localifsSize) {
-            localifs = (struct localinterface *) realloc (
+            localifsTemp = (struct localinterface *) realloc(
                         localifs, sizeof (struct localinterface)* (localifsSize+5));
-            if (localifs == 0) {
+            if (localifsTemp == 0) {
+                free(localifs);
+                localifs = 0;
+                localifsSize = 0;
                 nifs = 0;
-                fclose (f);
+                fclose(f);
                 return;
             }
+            localifs = localifsTemp;
             lif = localifs + localifsSize;
             localifsSize += 5;
         } else {
--- a/src/java.base/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java	Tue Jan 22 09:43:38 2019 -0500
@@ -32,6 +32,7 @@
 import java.net.URL;
 import java.util.Objects;
 import java.util.Properties;
+import sun.net.NetProperties;
 import sun.net.www.HeaderParser;
 import sun.net.www.protocol.http.AuthenticationInfo;
 import sun.net.www.protocol.http.AuthScheme;
@@ -56,11 +57,33 @@
     private static final String defaultDomain;
     /* Whether cache is enabled for NTLM */
     private static final boolean ntlmCache;
+
+    enum TransparentAuth {
+        DISABLED,      // disable for all hosts (default)
+        TRUSTED_HOSTS, // use Windows trusted hosts settings
+        ALL_HOSTS      // attempt for all hosts
+    }
+
+    private static final TransparentAuth authMode;
+
     static {
         Properties props = GetPropertyAction.privilegedGetProperties();
         defaultDomain = props.getProperty("http.auth.ntlm.domain", "domain");
         String ntlmCacheProp = props.getProperty("jdk.ntlm.cache", "true");
         ntlmCache = Boolean.parseBoolean(ntlmCacheProp);
+        String modeProp = java.security.AccessController.doPrivileged(
+            new java.security.PrivilegedAction<String>() {
+                public String run() {
+                    return NetProperties.get("jdk.http.ntlm.transparentAuth");
+                }
+            });
+
+        if ("trustedHosts".equalsIgnoreCase(modeProp))
+            authMode = TransparentAuth.TRUSTED_HOSTS;
+        else if ("allHosts".equalsIgnoreCase(modeProp))
+            authMode = TransparentAuth.ALL_HOSTS;
+        else
+            authMode = TransparentAuth.DISABLED;
     }
 
     private void init0() {
@@ -166,9 +189,21 @@
      * transparent Authentication.
      */
     public static boolean isTrustedSite(URL url) {
-        return NTLMAuthCallback.isTrustedSite(url);
+        if (NTLMAuthCallback != null)
+            return NTLMAuthCallback.isTrustedSite(url);
+
+        switch (authMode) {
+            case TRUSTED_HOSTS:
+                return isTrustedSite(url.toString());
+            case ALL_HOSTS:
+                return true;
+            default:
+                return false;
+        }
     }
 
+    static native boolean isTrustedSite(String url);
+
     /**
      * Not supported. Must use the setHeaders() method
      */
@@ -218,5 +253,4 @@
             return false;
         }
     }
-
 }
--- a/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -470,9 +470,6 @@
         } catch (WindowsException x) {
             x.rethrowAsIOException(file);
         }
-        // DOS hidden attribute not meaningful when set on directories
-        if (attrs.isDirectory())
-            return false;
         return attrs.isHidden();
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.base/windows/native/libnet/NTLMAuthentication.c	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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 <jni.h>
+#include <windows.h>
+#include "jni_util.h"
+#include <urlmon.h>
+
+JNIEXPORT jboolean JNICALL Java_sun_net_www_protocol_http_ntlm_NTLMAuthentication_isTrustedSite(JNIEnv *env, jclass clazz, jstring url )
+{
+
+    HRESULT hr;
+    DWORD dwZone;
+    DWORD  pPolicy = 0;
+    IInternetSecurityManager *spSecurityManager;
+    jboolean ret;
+
+    // Create IInternetSecurityManager
+    hr = CoInternetCreateSecurityManager(NULL, &spSecurityManager, (DWORD)0);
+    if (FAILED(hr)) {
+        return JNI_FALSE;
+    }
+
+    const LPCWSTR bstrURL = (LPCWSTR)((*env)->GetStringChars(env, url, NULL));
+    if (bstrURL == NULL) {
+        if (!(*env)->ExceptionCheck(env))
+            JNU_ThrowOutOfMemoryError(env, NULL);
+        spSecurityManager->lpVtbl->Release(spSecurityManager);
+        return JNI_FALSE;
+    }
+
+    // Determines the policy for the URLACTION_CREDENTIALS_USE action and display
+    // a user interface, if the policy indicates that the user should be queried
+    hr = spSecurityManager->lpVtbl->ProcessUrlAction(
+        spSecurityManager,
+        bstrURL,
+        URLACTION_CREDENTIALS_USE,
+        (LPBYTE)&pPolicy,
+        sizeof(DWORD), 0, 0, 0, 0);
+
+    if (FAILED(hr)) {
+        ret = JNI_FALSE;
+        goto cleanupAndReturn;
+    }
+
+    // If these two User Authentication Logon options is selected
+    // Anonymous logon
+    // Prompt for user name and password
+    if (pPolicy == URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY ||
+        pPolicy == URLPOLICY_CREDENTIALS_MUST_PROMPT_USER) {
+        ret = JNI_FALSE;
+        goto cleanupAndReturn;
+    }
+
+    // Option "Automatic logon with current user name and password" is selected
+    if (pPolicy == URLPOLICY_CREDENTIALS_SILENT_LOGON_OK) {
+        ret = JNI_TRUE;
+        goto cleanupAndReturn;
+    }
+
+    // Option "Automatic logon only in intranet zone" is selected
+    if (pPolicy == URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT) {
+
+        // Gets the zone index from the specified URL
+        hr = spSecurityManager->lpVtbl->MapUrlToZone(
+                spSecurityManager, bstrURL, &dwZone, 0);
+        if (FAILED(hr)) {
+            ret = JNI_FALSE;
+            goto cleanupAndReturn;
+        }
+
+        // Check if the URL is in Local or Intranet zone
+        if (dwZone == URLZONE_INTRANET || dwZone == URLZONE_LOCAL_MACHINE) {
+            ret = JNI_TRUE;
+            goto cleanupAndReturn;
+        }
+    }
+    ret = JNI_FALSE;
+
+cleanupAndReturn:
+    (*env)->ReleaseStringChars(env, url, bstrURL);
+    spSecurityManager->lpVtbl->Release(spSecurityManager);
+    return ret;
+}
--- a/src/java.base/windows/native/libnet/NetworkInterface.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/windows/native/libnet/NetworkInterface.c	Tue Jan 22 09:43:38 2019 -0500
@@ -273,7 +273,7 @@
                 // But in rare case it fails, we allow 'char' to be displayed
                 curr->displayName = (char *)malloc(ifrowP->dwDescrLen + 1);
             } else {
-                curr->displayName = (wchar_t *)malloc(wlen*(sizeof(wchar_t))+1);
+                curr->displayName = (wchar_t *)malloc((wlen+1)*sizeof(wchar_t));
             }
 
             curr->name = (char *)malloc(strlen(dev_name) + 1);
@@ -316,7 +316,7 @@
                 free(curr);
                 return -1;
             } else {
-                curr->displayName[wlen*(sizeof(wchar_t))] = '\0';
+                ((wchar_t *)curr->displayName)[wlen] = L'\0';
                 curr->dNameIsUnicode = TRUE;
             }
         }
--- a/src/java.base/windows/native/libnio/ch/DatagramDispatcher.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/windows/native/libnio/ch/DatagramDispatcher.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -95,6 +95,10 @@
     jint fd = fdval(env, fdo);
     struct iovec *iovp = (struct iovec *)address;
     WSABUF *bufs = malloc(len * sizeof(WSABUF));
+    if (bufs == NULL) {
+        JNU_ThrowOutOfMemoryError(env, NULL);
+        return IOS_THROWN;
+    }
 
     /* copy iovec into WSABUF */
     for(i=0; i<len; i++) {
@@ -182,6 +186,10 @@
     jint fd = fdval(env, fdo);
     struct iovec *iovp = (struct iovec *)address;
     WSABUF *bufs = malloc(len * sizeof(WSABUF));
+    if (bufs == NULL) {
+        JNU_ThrowOutOfMemoryError(env, NULL);
+        return IOS_THROWN;
+    }
 
     /* copy iovec into WSABUF */
     for(i=0; i<len; i++) {
--- a/src/java.base/windows/native/libnio/ch/WindowsSelectorImpl.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.base/windows/native/libnio/ch/WindowsSelectorImpl.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -219,6 +219,10 @@
     /* Prepare corresponding buffer if needed, and then read */
     if (bytesToRead > WAKEUP_SOCKET_BUF_SIZE) {
         char* buf = (char*)malloc(bytesToRead);
+        if (buf == NULL) {
+            JNU_ThrowOutOfMemoryError(env, NULL);
+            return;
+        }
         recv(scinFd, buf, bytesToRead, 0);
         free(buf);
     } else {
--- a/src/java.compiler/share/classes/javax/lang/model/util/Elements.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.compiler/share/classes/javax/lang/model/util/Elements.java	Tue Jan 22 09:43:38 2019 -0500
@@ -189,7 +189,7 @@
     /**
      * Returns a module element given its fully qualified name.
      *
-     * If the named module cannot be found, {@code null} is
+     * If the requested module cannot be found, {@code null} is
      * returned. One situation where a module cannot be found is if
      * the environment does not include modules, such as an annotation
      * processing environment configured for a {@linkplain
@@ -199,7 +199,7 @@
      * @implSpec The default implementation of this method returns
      * {@code null}.
      *
-     * @param name  the name
+     * @param name  the name, or an empty string for an unnamed module
      * @return the named module element, or {@code null} if it cannot be found
      * @see #getAllModuleElements
      * @since 9
--- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -298,8 +298,6 @@
     private Rectangle normalBounds = null; // not-null only for undecorated maximized windows
     private CPlatformResponder responder;
     private long lastBecomeMainTime; // this is necessary to preserve right siblings order
-    private boolean maximizedBothState = false;
-    private boolean frameResizibilityChanged = false;
 
     public CPlatformWindow() {
         super(0, true);
@@ -402,7 +400,7 @@
 
         // Either java.awt.Frame or java.awt.Dialog can be resizable, however java.awt.Window is never resizable
         {
-            final boolean resizable = isTargetResizable();
+            final boolean resizable = isFrame ? ((Frame)target).isResizable() : (isDialog ? ((Dialog)target).isResizable() : false);
             styleBits = SET(styleBits, RESIZABLE, resizable);
             if (!resizable) {
                 styleBits = SET(styleBits, ZOOMABLE, false);
@@ -614,8 +612,6 @@
             setBounds(maximizedBounds.x, maximizedBounds.y,
                     maximizedBounds.width, maximizedBounds.height);
         }
-        setFrameResizibilityChanged(true);
-        updateResizableAndMaximizeState(true);
     }
 
     private void unmaximize() {
@@ -712,9 +708,11 @@
         // Manage the extended state when showing
         if (visible) {
             /* Frame or Dialog should be set property WINDOW_FULLSCREENABLE to true if the
-            Frame resizable and Frame state is not MAXIMIZED_BOTH or Dialog is resizable.
+            Frame or Dialog is resizable.
             **/
-            if (isTargetResizable()) {
+            final boolean resizable = (target instanceof Frame) ? ((Frame)target).isResizable() :
+            ((target instanceof Dialog) ? ((Dialog)target).isResizable() : false);
+            if (resizable) {
                 setCanFullscreen(true);
             }
 
@@ -730,11 +728,6 @@
                         frameState = Frame.ICONIFIED;
                     }
 
-                    if (isFrameResizibilityChanged()) {
-                        updateResizableAndMaximizeState(false);
-                        setFrameResizibilityChanged(false);
-                    }
-
                     switch (frameState) {
                         case Frame.ICONIFIED:
                             execute(CWrapper.NSWindow::miniaturize);
@@ -854,10 +847,9 @@
 
     @Override
     public void setResizable(final boolean resizable) {
-        boolean windowResizable = resizable && !isMaximizedBoth();
-        setCanFullscreen(windowResizable);
-        setStyleBits(RESIZABLE, windowResizable);
-        setStyleBits(ZOOMABLE, windowResizable);
+        setCanFullscreen(resizable);
+        setStyleBits(RESIZABLE, resizable);
+        setStyleBits(ZOOMABLE, resizable);
     }
 
     @Override
@@ -966,11 +958,6 @@
             windowState = Frame.ICONIFIED;
         }
 
-        if (isFrameResizibilityChanged()) {
-            updateResizableAndMaximizeState(false);
-            setFrameResizibilityChanged(false);
-        }
-
         switch (windowState) {
             case Frame.ICONIFIED:
                 if (prevWindowState == Frame.MAXIMIZED_BOTH) {
@@ -1174,21 +1161,6 @@
     }
 
     /*
-     * Resizibility of frame with state MAXIMIZED_BOTH is set to true to zoom
-     * the frame on double click on title bar and set to false later. This is
-     * required as frame won't zoom if resizibility of frame is false.
-     */
-    private void deliverDoubleClickOnTitlebar() {
-        if ((peer != null) && (target instanceof Frame)) {
-            if (isMaximizedBoth()) {
-                updateResizableAndMaximizeState(false);
-                execute(CWrapper.NSWindow::zoom);
-                updateResizableAndMaximizeState(true);
-            }
-        }
-    }
-
-    /*
      * Our focus model is synthetic and only non-simple window
      * may become natively focusable window.
      */
@@ -1353,33 +1325,6 @@
         }
         return false;
     }
-
-    private boolean isTargetResizable() {
-        if (target instanceof Frame) {
-            return ((Frame)target).isResizable() && !isMaximizedBoth();
-        } else if (target instanceof Dialog) {
-            return ((Dialog)target).isResizable();
-        }
-        return false;
-    }
-
-    private void updateResizableAndMaximizeState(boolean maximizeState) {
-        maximizedBothState = maximizeState;
-        setResizable(!maximizeState);
-    }
-
-    private boolean isMaximizedBoth() {
-        return maximizedBothState;
-    }
-
-    private void setFrameResizibilityChanged(boolean resize) {
-        frameResizibilityChanged = resize;
-    }
-
-    private boolean isFrameResizibilityChanged() {
-        return frameResizibilityChanged;
-    }
-
     // ----------------------------------------------------------------------
     //                          NATIVE CALLBACKS
     // ----------------------------------------------------------------------
--- a/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -965,11 +965,6 @@
                     // Currently, no need to deliver the whole NSEvent.
                     static JNF_MEMBER_CACHE(jm_deliverNCMouseDown, jc_CPlatformWindow, "deliverNCMouseDown", "()V");
                     JNFCallVoidMethod(env, platformWindow, jm_deliverNCMouseDown);
-                    // Deliver double click on title bar
-                    if ([event clickCount] > 1) {
-                        static JNF_MEMBER_CACHE(jm_deliverDoubleClickOnTitlebar, jc_CPlatformWindow, "deliverDoubleClickOnTitlebar", "()V");
-                        JNFCallVoidMethod(env, platformWindow, jm_deliverDoubleClickOnTitlebar);
-                    }
                     (*env)->DeleteLocalRef(env, platformWindow);
                 }
             }
--- a/src/java.desktop/share/classes/java/awt/Robot.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/share/classes/java/awt/Robot.java	Tue Jan 22 09:43:38 2019 -0500
@@ -394,6 +394,7 @@
      * @return  Color of the pixel
      */
     public synchronized Color getPixelColor(int x, int y) {
+        checkScreenCaptureAllowed();
         AffineTransform tx = GraphicsEnvironment.
                 getLocalGraphicsEnvironment().getDefaultScreenDevice().
                 getDefaultConfiguration().getDefaultTransform();
--- a/src/java.desktop/share/native/libjavajpeg/jmemmgr.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/share/native/libjavajpeg/jmemmgr.c	Tue Jan 22 09:43:38 2019 -0500
@@ -406,6 +406,9 @@
   JDIMENSION rowsperchunk, currow, i;
   long ltemp;
 
+  if (samplesperrow == 0) {
+    ERREXIT(cinfo, JERR_WIDTH_OVERFLOW);
+  }
   /* Calculate max # of rows allowed in one allocation chunk */
   ltemp = (MAX_ALLOC_CHUNK-SIZEOF(large_pool_hdr)) /
           ((long) samplesperrow * SIZEOF(JSAMPLE));
@@ -454,6 +457,10 @@
   JDIMENSION rowsperchunk, currow, i;
   long ltemp;
 
+  if (blocksperrow == 0) {
+    ERREXIT(cinfo, JERR_WIDTH_OVERFLOW);
+  }
+
   /* Calculate max # of rows allowed in one allocation chunk */
   ltemp = (MAX_ALLOC_CHUNK-SIZEOF(large_pool_hdr)) /
           ((long) blocksperrow * SIZEOF(JBLOCK));
--- a/src/java.desktop/share/native/liblcms/cmscgats.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/share/native/liblcms/cmscgats.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1535,10 +1535,16 @@
     t-> nSamples   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS"));
     t-> nPatches   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS"));
 
-    t-> Data = (char**)AllocChunk (it8, ((cmsUInt32Number) t->nSamples + 1) * ((cmsUInt32Number) t->nPatches + 1) *sizeof (char*));
-    if (t->Data == NULL) {
-
-        SynError(it8, "AllocateDataSet: Unable to allocate data array");
+    if (t -> nSamples < 0 || t->nSamples > 0x7ffe || t->nPatches < 0 || t->nPatches > 0x7ffe)
+    {
+        SynError(it8, "AllocateDataSet: too much data");
+    }
+    else {
+        t->Data = (char**)AllocChunk(it8, ((cmsUInt32Number)t->nSamples + 1) * ((cmsUInt32Number)t->nPatches + 1) * sizeof(char*));
+        if (t->Data == NULL) {
+
+            SynError(it8, "AllocateDataSet: Unable to allocate data array");
+        }
     }
 
 }
--- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_UNIXToolkit.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_UNIXToolkit.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -161,6 +161,7 @@
     int len;
     char *stock_id_str = NULL;
     char *detail_str = NULL;
+    jboolean result = JNI_FALSE;
 
     if (stock_id == NULL)
     {
@@ -190,23 +191,15 @@
         (*env)->GetStringUTFRegion(env, detail, 0, len, detail_str);
     }
 
-    if (!init_method(env, this) ) {
-        free(stock_id_str);
-        if (detail_str != NULL) {
-            free(detail_str);
-        }
-        return JNI_FALSE;
+    if (init_method(env, this)) {
+        result = gtk->get_icon_data(env, widget_type, stock_id_str,
+                                    icon_size, text_direction, detail_str,
+                                    icon_upcall_method, this);
     }
-    jboolean result = gtk->get_icon_data(env, widget_type, stock_id_str,
-                  icon_size, text_direction, detail_str,
-                  icon_upcall_method, this);
-
     /* Release the strings we've allocated. */
     free(stock_id_str);
-    if (detail_str != NULL)
-    {
-        free(detail_str);
-    }
+    free(detail_str);
+
     return result;
 #else /* HEADLESS */
     return JNI_FALSE;
--- a/src/java.desktop/windows/native/libawt/windows/WPrinterJob.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.desktop/windows/native/libawt/windows/WPrinterJob.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -962,9 +962,10 @@
               if (!present) {
                   defIndices[0] = papers[0];
               }
-              if (papers != NULL) {
-                  free((char*)papers);
-              }
+          }
+          // If DeviceCapabilities fails, then also free paper allocation
+          if (papers != NULL) {
+              free((char*)papers);
           }
       }
       RESTORE_CONTROLWORD
--- a/src/java.instrument/unix/native/libinstrument/FileSystemSupport_md.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.instrument/unix/native/libinstrument/FileSystemSupport_md.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -23,6 +23,7 @@
  * questions.
  */
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -50,6 +51,10 @@
     } else {
         int len = last - path;
         char* str = (char*)malloc(len+1);
+        if (str == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         if (len > 0) {
             memcpy(str, path, len);
         }
@@ -80,6 +85,10 @@
     if (n == 0) return strdup("/");
 
     sb = (char*)malloc(strlen(pathname)+1);
+    if (sb == NULL) {
+        fprintf(stderr, "OOM error in native tmp buffer allocation");
+        return NULL;
+    }
     sbLen = 0;
 
     if (off > 0) {
@@ -128,6 +137,10 @@
     len = parentEnd + cn - childStart;
     if (child[0] == slash) {
         theChars = (char*)malloc(len+1);
+        if (theChars == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         if (parentEnd > 0)
             memcpy(theChars, parent, parentEnd);
         if (cn > 0)
@@ -135,6 +148,10 @@
         theChars[len] = '\0';
     } else {
         theChars = (char*)malloc(len+2);
+        if (theChars == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         if (parentEnd > 0)
             memcpy(theChars, parent, parentEnd);
         theChars[parentEnd] = slash;
@@ -150,10 +167,13 @@
     if (len > 1 && path[len-1] == slash) {
         // "/foo/" --> "/foo", but "/" --> "/"
         char* str = (char*)malloc(len);
-        if (str != NULL) {
-            memcpy(str, path, len-1);
-            str[len-1] = '\0';
+        if (str == NULL)
+        {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
         }
+        memcpy(str, path, len-1);
+        str[len-1] = '\0';
         return str;
     } else {
         return (char*)path;
--- a/src/java.instrument/windows/native/libinstrument/FileSystemSupport_md.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.instrument/windows/native/libinstrument/FileSystemSupport_md.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 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
@@ -23,6 +23,7 @@
  * questions.
  */
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <malloc.h>
@@ -66,6 +67,10 @@
     } else {
         int len = (int)(last - path);
         char* str = (char*)malloc(len+1);
+        if (str == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         if (len > 0) {
             memcpy(str, path, len);
         }
@@ -135,6 +140,10 @@
     if (off < 3) off = 0;       /* Avoid fencepost cases with UNC pathnames */
 
     sb = (char*)malloc(len+1);
+    if (sb == NULL) {
+        fprintf(stderr, "OOM error in native tmp buffer allocation");
+        return NULL;
+    }
     sbLen = 0;
 
     if (off == 0) {
@@ -261,11 +270,19 @@
 
     if (child[childStart] == slash) {
         theChars = (char*)malloc(len+1);
+        if (theChars == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         memcpy(theChars, parent, parentEnd);
         memcpy(theChars+parentEnd, child+childStart, (cn-childStart));
         theChars[len] = '\0';
     } else {
         theChars = (char*)malloc(len+2);
+        if (theChars == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
+        }
         memcpy(theChars, parent, parentEnd);
         theChars[parentEnd] = slash;
         memcpy(theChars+parentEnd+1, child+childStart, (cn-childStart));
@@ -320,10 +337,12 @@
         return (char*)path;
     } else {
         char* p = (char*)malloc(len+1);
-        if (p != NULL) {
-            memcpy(p, path+start, len);
-            p[len] = '\0';
+        if (p == NULL) {
+            fprintf(stderr, "OOM error in native tmp buffer allocation");
+            return NULL;
         }
+        memcpy(p, path+start, len);
+        p[len] = '\0';
         return p;
     }
 }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -34,6 +34,7 @@
 import java.net.URL;
 import java.util.Base64;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Objects;
 import java.util.WeakHashMap;
 import java.net.http.HttpHeaders;
@@ -258,23 +259,21 @@
 
         boolean proxy = status == PROXY_UNAUTHORIZED;
         String authname = proxy ? "Proxy-Authenticate" : "WWW-Authenticate";
-        String authval = hdrs.firstValue(authname).orElse(null);
-        if (authval == null) {
-            if (exchange.client().authenticator().isPresent()) {
-                throw new IOException(authname + " header missing for response code " + status);
-            } else {
-                // No authenticator? let the caller deal with this.
-                return null;
+        List<String> authvals = hdrs.allValues(authname);
+        if (authvals.isEmpty() && exchange.client().authenticator().isPresent()) {
+            throw new IOException(authname + " header missing for response code " + status);
+        }
+        String authval = null;
+        for (String aval : authvals) {
+            HeaderParser parser = new HeaderParser(aval);
+            String scheme = parser.findKey(0);
+            if (scheme.equalsIgnoreCase("Basic")) {
+                authval = aval;
+                break;
             }
         }
-
-        HeaderParser parser = new HeaderParser(authval);
-        String scheme = parser.findKey(0);
-
-        // TODO: Need to generalise from Basic only. Delegate to a provider class etc.
-
-        if (!scheme.equalsIgnoreCase("Basic")) {
-            return null;   // error gets returned to app
+        if (authval == null) {
+            return null;
         }
 
         if (proxy) {
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -33,8 +33,10 @@
 import java.net.URISyntaxException;
 import java.net.URLPermission;
 import java.security.AccessControlContext;
+import java.time.Duration;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
 import java.util.function.Function;
@@ -125,6 +127,10 @@
         return request;
     }
 
+    public Optional<Duration> remainingConnectTimeout() {
+        return multi.remainingConnectTimeout();
+    }
+
     HttpClientImpl client() {
         return client;
     }
@@ -151,6 +157,13 @@
         }
     }
 
+    // Called for 204 response - when no body is permitted
+    // This is actually only needed for HTTP/1.1 in order
+    // to return the connection to the pool (or close it)
+    void nullBody(HttpResponse<T> resp, Throwable t) {
+        exchImpl.nullBody(resp, t);
+    }
+
     public CompletableFuture<T> readBodyAsync(HttpResponse.BodyHandler<T> handler) {
         // If we received a 407 while establishing the exchange
         // there will be no body to read: bodyIgnored will be true,
--- a/src/java.net.http/share/classes/jdk/internal/net/http/ExchangeImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/ExchangeImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -161,6 +161,12 @@
         }
     }
 
+    // Called for 204 response - when no body is permitted
+    void nullBody(HttpResponse<T> resp, Throwable t) {
+        // only needed for HTTP/1.1 to close the connection
+        // or return it to the pool
+    }
+
     /* The following methods have separate HTTP/1.1 and HTTP/2 implementations */
 
     abstract CompletableFuture<ExchangeImpl<T>> sendHeadersAsync();
@@ -177,6 +183,7 @@
      */
     abstract CompletableFuture<Void> ignoreBody();
 
+
     /** Gets the response headers. Completes before body is read. */
     abstract CompletableFuture<Response> getResponseAsync(Executor executor);
 
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -28,6 +28,7 @@
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.http.HttpClient;
+import java.net.http.HttpResponse;
 import java.net.http.HttpResponse.BodyHandler;
 import java.net.http.HttpResponse.BodySubscriber;
 import java.nio.ByteBuffer;
@@ -382,6 +383,13 @@
         return response.ignoreBody(executor);
     }
 
+    // Used for those response codes that have no body associated
+    @Override
+    public void nullBody(HttpResponse<T> resp, Throwable t) {
+       response.nullBody(resp, t);
+    }
+
+
     ByteBuffer drainLeftOverBytes() {
         synchronized (lock) {
             asyncReceiver.stop();
--- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -267,6 +267,15 @@
         }
     }
 
+    // Used for those response codes that have no body associated
+    public void nullBody(HttpResponse<T> resp, Throwable t) {
+        if (t != null) connection.close();
+        else {
+            return2Cache = !request.isWebSocket();
+            onFinished();
+        }
+    }
+
     static final Flow.Subscription NOP = new Flow.Subscription() {
         @Override
         public void request(long n) { }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,6 +26,8 @@
 package jdk.internal.net.http;
 
 import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.SSLParameters;
 import java.io.IOException;
 import java.io.UncheckedIOException;
@@ -158,7 +160,7 @@
     private final CookieHandler cookieHandler;
     private final Duration connectTimeout;
     private final Redirect followRedirects;
-    private final Optional<ProxySelector> userProxySelector;
+    private final ProxySelector userProxySelector;
     private final ProxySelector proxySelector;
     private final Authenticator authenticator;
     private final Version version;
@@ -284,12 +286,12 @@
         connectTimeout = builder.connectTimeout;
         followRedirects = builder.followRedirects == null ?
                 Redirect.NEVER : builder.followRedirects;
-        this.userProxySelector = Optional.ofNullable(builder.proxy);
-        this.proxySelector = userProxySelector
+        this.userProxySelector = builder.proxy;
+        this.proxySelector = Optional.ofNullable(userProxySelector)
                 .orElseGet(HttpClientImpl::getDefaultProxySelector);
         if (debug.on())
             debug.log("proxySelector is %s (user-supplied=%s)",
-                      this.proxySelector, userProxySelector.isPresent());
+                      this.proxySelector, userProxySelector != null);
         authenticator = builder.authenticator;
         if (builder.version == null) {
             version = HttpClient.Version.HTTP_2;
@@ -561,6 +563,15 @@
                 ConnectException ce = new ConnectException(msg);
                 ce.initCause(throwable);
                 throw ce;
+            } else if (throwable instanceof SSLHandshakeException) {
+                // special case for SSLHandshakeException
+                SSLHandshakeException he = new SSLHandshakeException(msg);
+                he.initCause(throwable);
+                throw he;
+            } else if (throwable instanceof SSLException) {
+                // any other SSLException is wrapped in a plain
+                // SSLException
+                throw new SSLException(msg, throwable);
             } else if (throwable instanceof IOException) {
                 throw new IOException(msg, throwable);
             } else {
@@ -1138,7 +1149,7 @@
 
     @Override
     public Optional<ProxySelector> proxy() {
-        return this.userProxySelector;
+        return Optional.ofNullable(userProxySelector);
     }
 
     // Return the effective proxy that this client uses.
--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -85,8 +85,8 @@
                 new IdentityHashMap<>();
         void add(CompletionStage<?> cf) {
             synchronized(operations) {
+                operations.put(cf, Boolean.TRUE);
                 cf.whenComplete((r,t)-> remove(cf));
-                operations.put(cf, Boolean.TRUE);
             }
         }
         boolean remove(CompletionStage<?> cf) {
--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpResponseImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpResponseImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -44,16 +44,13 @@
 class HttpResponseImpl<T> implements HttpResponse<T>, RawChannel.Provider {
 
     final int responseCode;
-    final Exchange<T> exchange;
     final HttpRequest initialRequest;
     final Optional<HttpResponse<T>> previousResponse;
     final HttpHeaders headers;
     final Optional<SSLSession> sslSession;
     final URI uri;
     final HttpClient.Version version;
-    RawChannel rawchan;
-    final HttpConnection connection;
-    final Stream<T> stream;
+    final RawChannelProvider rawChannelProvider;
     final T body;
 
     public HttpResponseImpl(HttpRequest initialRequest,
@@ -62,7 +59,6 @@
                             T body,
                             Exchange<T> exch) {
         this.responseCode = response.statusCode();
-        this.exchange = exch;
         this.initialRequest = initialRequest;
         this.previousResponse = Optional.ofNullable(previousResponse);
         this.headers = response.headers();
@@ -70,23 +66,10 @@
         this.sslSession = Optional.ofNullable(response.getSSLSession());
         this.uri = response.request().uri();
         this.version = response.version();
-        this.connection = connection(exch);
-        this.stream = null;
+        this.rawChannelProvider = RawChannelProvider.create(response, exch);
         this.body = body;
     }
 
-    private HttpConnection connection(Exchange<?> exch) {
-        if (exch == null || exch.exchImpl == null) {
-            assert responseCode == 407;
-            return null; // case of Proxy 407
-        }
-        return exch.exchImpl.connection();
-    }
-
-    private ExchangeImpl<?> exchangeImpl() {
-        return exchange != null ? exchange.exchImpl : stream;
-    }
-
     @Override
     public int statusCode() {
         return responseCode;
@@ -141,23 +124,11 @@
      */
     @Override
     public synchronized RawChannel rawChannel() throws IOException {
-        if (rawchan == null) {
-            ExchangeImpl<?> exchImpl = exchangeImpl();
-            if (!(exchImpl instanceof Http1Exchange)) {
-                // RawChannel is only used for WebSocket - and WebSocket
-                // is not supported over HTTP/2 yet, so we should not come
-                // here. Getting a RawChannel over HTTP/2 might be supported
-                // in the future, but it would entail retrieving any left over
-                // bytes that might have been read but not consumed by the
-                // HTTP/2 connection.
-                throw new UnsupportedOperationException("RawChannel is not supported over HTTP/2");
-            }
-            // Http1Exchange may have some remaining bytes in its
-            // internal buffer.
-            Supplier<ByteBuffer> initial = ((Http1Exchange<?>)exchImpl)::drainLeftOverBytes;
-            rawchan = new RawChannelTube(connection, initial);
+        if (rawChannelProvider == null) {
+            throw new UnsupportedOperationException(
+                    "RawChannel is only supported for WebSocket creation");
         }
-        return rawchan;
+        return rawChannelProvider.rawChannel();
     }
 
     @Override
@@ -174,4 +145,61 @@
           .append(statusCode());
         return sb.toString();
     }
+
+    /**
+     * An auxiliary class used for RawChannel creation when creating a WebSocket.
+     * This avoids keeping around references to connection/exchange in the
+     * regular HttpResponse case. Only those responses corresponding to an
+     * initial WebSocket request have a RawChannelProvider.
+     */
+    private static final class RawChannelProvider implements RawChannel.Provider {
+        private final HttpConnection connection;
+        private final Exchange<?> exchange;
+        private RawChannel rawchan;
+        RawChannelProvider(HttpConnection conn, Exchange<?> exch) {
+            connection = conn;
+            exchange = exch;
+        }
+
+        static RawChannelProvider create(Response resp, Exchange<?> exch) {
+            if (resp.request().isWebSocket()) {
+                return new RawChannelProvider(connection(resp, exch), exch);
+            }
+            return null;
+        }
+
+        @Override
+        public synchronized RawChannel rawChannel() {
+            if (rawchan == null) {
+                ExchangeImpl<?> exchImpl = exchangeImpl();
+                if (!(exchImpl instanceof Http1Exchange)) {
+                    // RawChannel is only used for WebSocket - and WebSocket
+                    // is not supported over HTTP/2 yet, so we should not come
+                    // here. Getting a RawChannel over HTTP/2 might be supported
+                    // in the future, but it would entail retrieving any left over
+                    // bytes that might have been read but not consumed by the
+                    // HTTP/2 connection.
+                    throw new UnsupportedOperationException("RawChannel is not supported over HTTP/2");
+                }
+                // Http1Exchange may have some remaining bytes in its
+                // internal buffer.
+                Supplier<ByteBuffer> initial = ((Http1Exchange<?>) exchImpl)::drainLeftOverBytes;
+                rawchan = new RawChannelTube(connection, initial);
+            }
+            return rawchan;
+        }
+
+        private static HttpConnection connection(Response resp, Exchange<?> exch) {
+            if (exch == null || exch.exchImpl == null) {
+                assert resp.statusCode == 407;
+                return null; // case of Proxy 407
+            }
+            return exch.exchImpl.connection();
+        }
+
+        private ExchangeImpl<?> exchangeImpl() {
+            return exchange != null ? exchange.exchImpl : null;
+        }
+
+    }
 }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,12 +26,14 @@
 package jdk.internal.net.http;
 
 import java.io.IOException;
-import java.io.UncheckedIOException;
 import java.net.ConnectException;
 import java.net.http.HttpConnectTimeoutException;
+import java.time.Duration;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.security.AccessControlContext;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionStage;
 import java.util.concurrent.CompletionException;
@@ -39,6 +41,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.Flow;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Function;
 
 import java.net.http.HttpClient;
@@ -71,6 +74,7 @@
 
     private final HttpRequest userRequest; // the user request
     private final HttpRequestImpl request; // a copy of the user request
+    private final ConnectTimeoutTracker connectTimeout; // null if no timeout
     final AccessControlContext acc;
     final HttpClientImpl client;
     final HttpResponse.BodyHandler<T> responseHandler;
@@ -107,6 +111,38 @@
     // RedirectHandler
     volatile int numberOfRedirects = 0;
 
+    // This class is used to keep track of the connection timeout
+    // across retries, when a ConnectException causes a retry.
+    // In that case - we will retry the connect, but we don't
+    // want to double the timeout by starting a new timer with
+    // the full connectTimeout again.
+    // Instead we use the ConnectTimeoutTracker to return a new
+    // duration that takes into account the time spent in the
+    // first connect attempt.
+    // If however, the connection gets connected, but we later
+    // retry the whole operation, then we reset the timer before
+    // retrying (since the connection used for the second request
+    // will not necessarily be the same: it could be a new
+    // unconnected connection) - see getExceptionalCF().
+    private static final class ConnectTimeoutTracker {
+        final Duration max;
+        final AtomicLong startTime = new AtomicLong();
+        ConnectTimeoutTracker(Duration connectTimeout) {
+            this.max = Objects.requireNonNull(connectTimeout);
+        }
+
+        Duration getRemaining() {
+            long now = System.nanoTime();
+            long previous = startTime.compareAndExchange(0, now);
+            if (previous == 0 || max.isZero()) return max;
+            Duration remaining = max.minus(Duration.ofNanos(now - previous));
+            assert remaining.compareTo(max) <= 0;
+            return remaining.isNegative() ? Duration.ZERO : remaining;
+        }
+
+        void reset() { startTime.set(0); }
+    }
+
     /**
      * MultiExchange with one final response.
      */
@@ -135,7 +171,8 @@
         } else {
             pushGroup = null;
         }
-
+        this.connectTimeout = client.connectTimeout()
+                .map(ConnectTimeoutTracker::new).orElse(null);
         this.exchange = new Exchange<>(request, this);
     }
 
@@ -161,6 +198,11 @@
         this.exchange = exchange;
     }
 
+    public Optional<Duration> remainingConnectTimeout() {
+        return Optional.ofNullable(connectTimeout)
+                .map(ConnectTimeoutTracker::getRemaining);
+    }
+
     private void cancelTimer() {
         if (responseTimerEvent != null) {
             client.cancelTimer(responseTimerEvent);
@@ -242,7 +284,8 @@
                 result.complete(this.response);
             }
         });
-        return result;
+        // ensure that the connection is closed or returned to the pool.
+        return result.whenComplete(exch::nullBody);
     }
 
     private CompletableFuture<HttpResponse<T>>
@@ -354,7 +397,7 @@
         return s.isEmpty() ? true : Boolean.parseBoolean(s);
     }
 
-    private static boolean retryConnect() {
+    private static boolean disableRetryConnect() {
         String s = Utils.getNetProperty("jdk.httpclient.disableRetryConnect");
         if (s == null)
             return false;
@@ -364,7 +407,7 @@
     /** True if ALL ( even non-idempotent ) requests can be automatic retried. */
     private static final boolean RETRY_ALWAYS = retryPostValue();
     /** True if ConnectException should cause a retry. Enabled by default */
-    private static final boolean RETRY_CONNECT = retryConnect();
+    private static final boolean RETRY_CONNECT = !disableRetryConnect();
 
     /** Returns true is given request has an idempotent method. */
     private static boolean isIdempotentRequest(HttpRequest request) {
@@ -415,10 +458,13 @@
             Throwable cause = retryCause(t);
 
             if (!(t instanceof ConnectException)) {
+                // we may need to start a new connection, and if so
+                // we want to start with a fresh connect timeout again.
+                if (connectTimeout != null) connectTimeout.reset();
                 if (!canRetryRequest(currentreq)) {
                     return failedFuture(cause); // fails with original cause
                 }
-            }
+            } // ConnectException: retry, but don't reset the connectTimeout.
 
             // allow the retry mechanism to do its work
             retryCause = cause;
--- a/src/java.net.http/share/classes/jdk/internal/net/http/PlainHttpConnection.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/PlainHttpConnection.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -65,7 +65,7 @@
      */
     private ConnectTimerEvent newConnectTimer(Exchange<?> exchange,
                                               CompletableFuture<Void> cf) {
-        Duration duration = client().connectTimeout().orElse(null);
+        Duration duration = exchange.remainingConnectTimeout().orElse(null);
         if (duration != null) {
             ConnectTimerEvent cte = new ConnectTimerEvent(duration, exchange, cf);
             return cte;
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -32,6 +32,7 @@
 import javax.net.ssl.SSLEngineResult.HandshakeStatus;
 import javax.net.ssl.SSLEngineResult.Status;
 import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
 import java.io.IOException;
 import java.lang.ref.Reference;
 import java.lang.ref.ReferenceQueue;
@@ -109,6 +110,7 @@
     volatile boolean close_notify_received;
     final CompletableFuture<Void> readerCF;
     final CompletableFuture<Void> writerCF;
+    final CompletableFuture<Void> stopCF;
     final Consumer<ByteBuffer> recycler;
     static AtomicInteger scount = new AtomicInteger(1);
     final int id;
@@ -149,8 +151,7 @@
         this.writerCF = reader.completion();
         readerCF.exceptionally(this::stopOnError);
         writerCF.exceptionally(this::stopOnError);
-
-        CompletableFuture.allOf(reader.completion(), writer.completion())
+        this.stopCF = CompletableFuture.allOf(reader.completion(), writer.completion())
             .thenRun(this::normalStop);
         this.alpnCF = new MinimalFuture<>();
 
@@ -302,7 +303,9 @@
             return "READER: " + super.toString() + ", readBuf: " + readBuf.toString()
                     + ", count: " + count.toString() + ", scheduler: "
                     + (scheduler.isStopped() ? "stopped" : "running")
-                    + ", status: " + lastUnwrapStatus;
+                    + ", status: " + lastUnwrapStatus
+                    + ", handshakeState: " + handshakeState.get()
+                    + ", engine: " + engine.getHandshakeStatus();
         }
 
         private void reallocReadBuf() {
@@ -429,6 +432,8 @@
                         if (complete && result.status() == Status.CLOSED) {
                             if (debugr.on()) debugr.log("Closed: completing");
                             outgoing(Utils.EMPTY_BB_LIST, true);
+                            // complete ALPN if not yet completed
+                            setALPN();
                             return;
                         }
                         if (result.handshaking()) {
@@ -437,11 +442,7 @@
                             if (doHandshake(result, READER)) continue; // need unwrap
                             else break; // doHandshake will have triggered the write scheduler if necessary
                         } else {
-                            if ((handshakeState.getAndSet(NOT_HANDSHAKING) & ~DOING_TASKS) == HANDSHAKING) {
-                                handshaking = false;
-                                applicationBufferSize = engine.getSession().getApplicationBufferSize();
-                                packetBufferSize = engine.getSession().getPacketBufferSize();
-                                setALPN();
+                            if (trySetALPN()) {
                                 resumeActivity();
                             }
                         }
@@ -741,6 +742,8 @@
                         if (!upstreamCompleted) {
                             upstreamCompleted = true;
                             upstreamSubscription.cancel();
+                            // complete ALPN if not yet completed
+                            setALPN();
                         }
                         if (result.bytesProduced() <= 0)
                             return;
@@ -758,10 +761,7 @@
                         doHandshake(result, WRITER);  // ok to ignore return
                         handshaking = true;
                     } else {
-                        if ((handshakeState.getAndSet(NOT_HANDSHAKING) & ~DOING_TASKS) == HANDSHAKING) {
-                            applicationBufferSize = engine.getSession().getApplicationBufferSize();
-                            packetBufferSize = engine.getSession().getPacketBufferSize();
-                            setALPN();
+                        if (trySetALPN()) {
                             resumeActivity();
                         }
                     }
@@ -914,11 +914,25 @@
         stopped = true;
         reader.stop();
         writer.stop();
+        // make sure the alpnCF is completed.
+        if (!alpnCF.isDone()) {
+            Throwable alpn = new SSLHandshakeException(
+                    "Connection closed before successful ALPN negotiation");
+            alpnCF.completeExceptionally(alpn);
+        }
         if (isMonitored) Monitor.remove(monitor);
     }
 
-    private Void stopOnError(Throwable currentlyUnused) {
+    private Void stopOnError(Throwable error) {
         // maybe log, etc
+        // ensure the ALPN is completed
+        // We could also do this in SSLTube.SSLSubscriberWrapper
+        // onError/onComplete - with the caveat that the ALP CF
+        // would get completed externally. Doing it here keeps
+        // it all inside SSLFlowDelegate.
+        if (!alpnCF.isDone()) {
+            alpnCF.completeExceptionally(error);
+        }
         normalStop();
         return null;
     }
@@ -1070,6 +1084,11 @@
                     }
                 } while (true);
                 if (debug.on()) debug.log("finished task execution");
+                HandshakeStatus hs = engine.getHandshakeStatus();
+                if (hs == HandshakeStatus.FINISHED || hs == HandshakeStatus.NOT_HANDSHAKING) {
+                    // We're no longer handshaking, try setting ALPN
+                    trySetALPN();
+                }
                 resumeActivity();
             } catch (Throwable t) {
                 handleError(t);
@@ -1077,6 +1096,17 @@
         });
     }
 
+    boolean trySetALPN() {
+        // complete ALPN CF if needed.
+        if ((handshakeState.getAndSet(NOT_HANDSHAKING) & ~DOING_TASKS) == HANDSHAKING) {
+            applicationBufferSize = engine.getSession().getApplicationBufferSize();
+            packetBufferSize = engine.getSession().getPacketBufferSize();
+            setALPN();
+            return true;
+        }
+        return false;
+    }
+
     // FIXME: acknowledge a received CLOSE request from peer
     EngineResult doClosure(EngineResult r) throws IOException {
         if (debug.on())
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLTube.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/SSLTube.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -274,7 +274,11 @@
 
         @Override
         public String toString() {
-            return "DelegateWrapper:" + delegate.toString();
+            return "DelegateWrapper[subscribedCalled: " + subscribedCalled
+                    +", subscribedDone: " + subscribedDone
+                    +", completed: " + completed
+                    +", error: " + error
+                    +"]: " + delegate;
         }
 
     }
@@ -288,6 +292,20 @@
         private final AtomicReference<Throwable> errorRef
                 = new AtomicReference<>();
 
+        @Override
+        public String toString() {
+            DelegateWrapper sub = subscribed;
+            DelegateWrapper pend = pendingDelegate.get();
+            // Though final sslFD may be null if called from within
+            // SSLFD::connect() as SSLTube is not fully constructed yet.
+            SSLFlowDelegate sslFD = sslDelegate;
+            return "SSLSubscriberWrapper[" + SSLTube.this
+                    + ", delegate: " + (sub == null ? pend  :sub)
+                    + ", getALPN: " + (sslFD == null ? null : sslFD.alpn())
+                    + ", onCompleteReceived: " + onCompleteReceived
+                    + ", onError: " + errorRef.get() + "]";
+        }
+
         // setDelegate can be called asynchronously when the SSLTube flow
         // is connected. At this time the permanent subscriber (this class)
         // may already be subscribed (readSubscription != null) or not.
@@ -319,6 +337,9 @@
                     debug.log("SSLSubscriberWrapper (reader) no subscription yet");
                 return;
             }
+            // sslDelegate field should have been initialized by the
+            // the time we reach here, as there can be no subscriber
+            // until SSLTube is fully constructed.
             if (handleNow || !sslDelegate.resumeReader()) {
                 processPendingSubscriber();
             }
@@ -429,7 +450,8 @@
             Throwable failed;
             boolean completed;
             // reset any demand that may have been made by the previous
-            // subscriber
+            // subscriber. sslDelegate field should have been initialized,
+            // since we only reach here when there is a subscriber.
             sslDelegate.resetReaderDemand();
             // send the subscription to the subscriber.
             subscriberImpl.onSubscribe(subscription);
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/SubscriberWrapper.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/SubscriberWrapper.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -468,7 +468,8 @@
           .append(" outputQ size: ").append(Integer.toString(outputQ.size()))
           //.append(" outputQ: ").append(outputQ.toString())
           .append(" cf: ").append(cf.toString())
-          .append(" downstreamSubscription: ").append(downstreamSubscription.toString());
+          .append(" downstreamSubscription: ").append(downstreamSubscription)
+          .append(" downstreamSubscriber: ").append(downstreamSubscriber);
 
         return sb.toString();
     }
--- a/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -31,11 +31,11 @@
 
 import javax.net.ssl.ExtendedSSLSession;
 import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.SSLParameters;
 import javax.net.ssl.SSLSession;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
-import java.io.EOFException;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.io.UncheckedIOException;
@@ -74,7 +74,6 @@
 import java.util.stream.Stream;
 
 import static java.lang.String.format;
-import static java.util.Objects.requireNonNull;
 import static java.util.stream.Collectors.joining;
 import jdk.internal.net.http.HttpRequestImpl;
 
@@ -307,11 +306,16 @@
         if (!(t instanceof IOException))
             return t;
 
+        if (t instanceof SSLHandshakeException)
+            return t;  // no need to decorate
+
         String msg = messageSupplier.get();
         if (msg == null)
             return t;
 
         if (t instanceof ConnectionExpiredException) {
+            if (t.getCause() instanceof SSLHandshakeException)
+                return t;  // no need to decorate
             IOException ioe = new IOException(msg, t.getCause());
             t = new ConnectionExpiredException(ioe);
         } else {
--- a/src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c	Tue Jan 22 09:43:38 2019 -0500
@@ -78,7 +78,8 @@
 
 BOOL PackageConnectLookup(PHANDLE,PULONG);
 
-NTSTATUS ConstructTicketRequest(UNICODE_STRING DomainName,
+NTSTATUS ConstructTicketRequest(JNIEnv *env,
+                                UNICODE_STRING DomainName,
                                 PKERB_RETRIEVE_TKT_REQUEST *outRequest,
                                 ULONG *outSize);
 
@@ -104,6 +105,8 @@
 jobject BuildTicketFlags(JNIEnv *env, PULONG flags);
 jobject BuildKerberosTime(JNIEnv *env, PLARGE_INTEGER kerbtime);
 
+void ThrowOOME(JNIEnv *env, const char *szMessage);
+
 /*
  * Class:     sun_security_krb5_KrbCreds
  * Method:    JNI_OnLoad
@@ -497,7 +500,7 @@
             }
 
             // use domain to request Ticket
-            Status = ConstructTicketRequest(msticket->TargetDomainName,
+            Status = ConstructTicketRequest(env, msticket->TargetDomainName,
                                 &pTicketRequest, &requestSize);
             if (!LSA_SUCCESS(Status)) {
                 ShowNTError("ConstructTicketRequest status", Status);
@@ -691,7 +694,7 @@
 }
 
 static NTSTATUS
-ConstructTicketRequest(UNICODE_STRING DomainName,
+ConstructTicketRequest(JNIEnv *env, UNICODE_STRING DomainName,
                 PKERB_RETRIEVE_TKT_REQUEST *outRequest, ULONG *outSize)
 {
     NTSTATUS Status;
@@ -738,8 +741,10 @@
 
     pTicketRequest = (PKERB_RETRIEVE_TKT_REQUEST)
                     LocalAlloc(LMEM_ZEROINIT, RequestSize);
-    if (!pTicketRequest)
+    if (!pTicketRequest) {
+        ThrowOOME(env, "Can't allocate memory for ticket");
         return GetLastError();
+    }
 
     //
     // Concatenate the target prefix with the previous response's
@@ -896,7 +901,7 @@
     jbyteArray ary;
 
     ary = (*env)->NewByteArray(env,encodedTicketSize);
-    if ((*env)->ExceptionOccurred(env)) {
+    if (ary == NULL) {
         return (jobject) NULL;
     }
 
@@ -942,6 +947,10 @@
 
     realm = (WCHAR *) LocalAlloc(LMEM_ZEROINIT,
             ((domainName.Length)*sizeof(WCHAR) + sizeof(UNICODE_NULL)));
+    if (realm == NULL) {
+        ThrowOOME(env, "Can't allocate memory for realm");
+        return NULL;
+    }
     wcsncpy(realm, domainName.Buffer, domainName.Length/sizeof(WCHAR));
 
     if (native_debug) {
@@ -1016,6 +1025,9 @@
     }
 
     ary = (*env)->NewByteArray(env,cryptoKey->Length);
+    if (ary == NULL) {
+        return (jobject) NULL;
+    }
     (*env)->SetByteArrayRegion(env, ary, (jsize) 0, cryptoKey->Length,
                                     (jbyte *)cryptoKey->Value);
     if ((*env)->ExceptionOccurred(env)) {
@@ -1038,6 +1050,9 @@
     ULONG nlflags = htonl(*flags);
 
     ary = (*env)->NewByteArray(env, sizeof(*flags));
+    if (ary == NULL) {
+        return (jobject) NULL;
+    }
     (*env)->SetByteArrayRegion(env, ary, (jsize) 0, sizeof(*flags),
                                     (jbyte *)&nlflags);
     if ((*env)->ExceptionOccurred(env)) {
@@ -1090,3 +1105,10 @@
     }
     return kerberosTime;
 }
+
+void ThrowOOME(JNIEnv *env, const char *szMessage) {
+    jclass exceptionClazz = (*env)->FindClass(env, "java/lang/OutOfMemoryError");
+    if (exceptionClazz != NULL) {
+        (*env)->ThrowNew(env, exceptionClazz, szMessage);
+    }
+}
--- a/src/jdk.accessibility/windows/native/libwindowsaccessbridge/AccessBridgeMessageQueue.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.accessibility/windows/native/libwindowsaccessbridge/AccessBridgeMessageQueue.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -32,6 +32,7 @@
 #include "AccessBridgePackages.h"               // for debugging only
 #include <windows.h>
 #include <malloc.h>
+#include <new>
 
 DEBUG_CODE(extern HWND theDialogWindow);
 extern "C" {
@@ -46,6 +47,9 @@
     next = (AccessBridgeQueueElement *) 0;
     previous = (AccessBridgeQueueElement *) 0;
     buffer = (char *) malloc(bufsize);
+    if (buffer == NULL) {
+        throw std::bad_alloc();
+    }
     memcpy(buffer, buf, bufsize);
 }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -794,7 +794,7 @@
      * @param typarams the type variables to enter
      * @param env      the current environment
      */
-    void attribTypeVariables(List<JCTypeParameter> typarams, Env<AttrContext> env) {
+    void attribTypeVariables(List<JCTypeParameter> typarams, Env<AttrContext> env, boolean checkCyclic) {
         for (JCTypeParameter tvar : typarams) {
             TypeVar a = (TypeVar)tvar.type;
             a.tsym.flags_field |= UNATTRIBUTED;
@@ -811,8 +811,10 @@
             }
             a.tsym.flags_field &= ~UNATTRIBUTED;
         }
-        for (JCTypeParameter tvar : typarams) {
-            chk.checkNonCyclic(tvar.pos(), (TypeVar)tvar.type);
+        if (checkCyclic) {
+            for (JCTypeParameter tvar : typarams) {
+                chk.checkNonCyclic(tvar.pos(), (TypeVar)tvar.type);
+            }
         }
     }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -2712,6 +2712,8 @@
             if (type.isErroneous()) return;
             for (List<Type> l = types.interfaces(type); l.nonEmpty(); l = l.tail) {
                 Type it = l.head;
+                if (type.hasTag(CLASS) && !it.hasTag(CLASS)) continue; // JLS 8.1.5
+
                 Type oldit = seensofar.put(it.tsym, it);
                 if (oldit != null) {
                     List<Type> oldparams = oldit.allparams();
@@ -2725,6 +2727,7 @@
                 checkClassBounds(pos, seensofar, it);
             }
             Type st = types.supertype(type);
+            if (type.hasTag(CLASS) && !st.hasTag(CLASS)) return; // JLS 8.1.4
             if (st != Type.noType) checkClassBounds(pos, seensofar, st);
         }
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -103,7 +103,7 @@
 
         // Enter and attribute type parameters.
         List<Type> tvars = enter.classEnter(typarams, env);
-        attr.attribTypeVariables(typarams, env);
+        attr.attribTypeVariables(typarams, env, true);
 
         // Enter and attribute value parameters.
         ListBuffer<Type> argbuf = new ListBuffer<>();
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -831,8 +831,8 @@
 
             annotate.annotateLater(tree.mods.annotations, baseEnv,
                         sym, tree.pos());
+            attr.attribTypeVariables(tree.typarams, baseEnv, false);
 
-            attr.attribTypeVariables(tree.typarams, baseEnv);
             for (JCTypeParameter tp : tree.typarams)
                 annotate.queueScanTreeAndTypeAnnotate(tp, baseEnv, sym, tree.pos());
 
@@ -939,6 +939,12 @@
                 env.info.scope.enter(superSym);
             }
 
+            if (!tree.typarams.isEmpty()) {
+                for (JCTypeParameter tvar : tree.typarams) {
+                    chk.checkNonCyclic(tvar, (TypeVar)tvar.type);
+                }
+            }
+
             finishClass(tree, env);
 
             if (allowTypeAnnos) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -29,12 +29,18 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
+import java.io.Writer;
 import java.net.URL;
+import java.nio.file.Files;
 import java.nio.file.NoSuchFileException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.security.CodeSource;
 import java.security.DigestInputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -307,6 +313,7 @@
             comp.closeables = comp.closeables.prepend(log.getWriter(WriterKind.NOTICE));
         }
 
+        boolean printArgsToFile = options.isSet("printArgsToFile");
         try {
             comp.compile(args.getFileObjects(), args.getClassNames(), null, List.nil());
 
@@ -338,6 +345,7 @@
             if (twoClassLoadersInUse(iae)) {
                 bugMessage(iae);
             }
+            printArgsToFile = true;
             return Result.ABNORMAL;
         } catch (Throwable ex) {
             // Nasty.  If we've already reported an error, compensate
@@ -345,8 +353,12 @@
             // exceptions.
             if (comp == null || comp.errorCount() == 0 || options.isSet("dev"))
                 bugMessage(ex);
+            printArgsToFile = true;
             return Result.ABNORMAL;
         } finally {
+            if (printArgsToFile) {
+                printArgumentsToFile(argv);
+            }
             if (comp != null) {
                 try {
                     comp.close();
@@ -357,6 +369,29 @@
         }
     }
 
+    void printArgumentsToFile(String... params) {
+        Path out = Paths.get(String.format("javac.%s.args",
+                new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime())));
+        String strOut = "";
+        try {
+            try (Writer w = Files.newBufferedWriter(out)) {
+                for (String param : params) {
+                    param = param.replaceAll("\\\\", "\\\\\\\\");
+                    if (param.matches(".*\\s+.*")) {
+                        param = "\"" + param + "\"";
+                    }
+                    strOut += param + '\n';
+                }
+                w.write(strOut);
+            }
+            log.printLines(PrefixKind.JAVAC, "msg.parameters.output", out.toAbsolutePath());
+        } catch (IOException ioe) {
+            log.printLines(PrefixKind.JAVAC, "msg.parameters.output.error", out.toAbsolutePath());
+            System.err.println(strOut);
+            System.err.println();
+        }
+    }
+
     private boolean twoClassLoadersInUse(IllegalAccessError iae) {
         String msg = iae.getMessage();
         Pattern pattern = Pattern.compile("(?i)(?<=tried to access class )([a-z_$][a-z\\d_$]*\\.)*[a-z_$][a-z\\d_$]*");
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 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
@@ -44,7 +44,7 @@
 javac.opt.sourcepath=\
     Specify where to find input source files
 javac.opt.m=\
-    Compile only the specified module, check timestamps
+    Compile only the specified module(s), check timestamps
 javac.opt.modulesourcepath=\
     Specify where to find input source files for multiple modules
 javac.opt.bootclasspath=\
@@ -108,7 +108,7 @@
 javac.opt.arg.mspath=\
     <module-source-path>
 javac.opt.arg.m=\
-    <module-name>
+    <module>(,<module>)*
 javac.opt.arg.jdk=\
     <jdk>|none
 javac.opt.arg.dirs=\
@@ -352,7 +352,7 @@
 An exception has occurred in the compiler ({0}). \
 Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) \
 after checking the Bug Database (http://bugs.java.com) for duplicates. \
-Include your program and the following diagnostic in your report. Thank you.
+Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
 
 javac.msg.io=\
 \n\nAn input/output error occurred.\n\
@@ -372,3 +372,9 @@
 
 javac.version={0} {1}
 javac.fullVersion={0} full version "{1}"
+
+javac.msg.parameters.output=\
+printing javac parameters to: {0}
+
+javac.msg.parameters.output.error=\
+error while trying to print javac parameters to: {0}, parameters will follow:
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -400,19 +400,35 @@
         }
     }
 
-    private void cancelOperation() {
-        if (initialized == false) {
+    // reset the states to the pre-initialized values
+    // need to be called after doFinal or prior to re-init
+    private void reset(boolean doCancel) {
+        if (!initialized) {
             return;
         }
-
-        if ((session == null) || (token.explicitCancel == false)) {
-            return;
-        }
+        initialized = false;
         try {
-            if (session.hasObjects() == false) {
-                session = token.killSession(session);
+            if (session == null) {
                 return;
-            } else {
+            }
+            if (doCancel && token.explicitCancel) {
+                cancelOperation();
+            }
+        } finally {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
+            bytesBuffered = 0;
+            padBufferLen = 0;
+        }
+    }
+
+    private void cancelOperation() {
+        token.ensureValid();
+        if (session.hasObjects() == false) {
+            session = token.killSession(session);
+            return;
+        } else {
+            try {
                 // cancel operation by finishing it
                 int bufLen = doFinalLength(0);
                 byte[] buffer = new byte[bufLen];
@@ -421,40 +437,46 @@
                 } else {
                     token.p11.C_DecryptFinal(session.id(), 0, buffer, 0, bufLen);
                 }
+            } catch (PKCS11Exception e) {
+                throw new ProviderException("Cancel failed", e);
             }
-        } catch (PKCS11Exception e) {
-            throw new ProviderException("Cancel failed", e);
         }
     }
 
     private void ensureInitialized() throws PKCS11Exception {
-        if (initialized == false) {
+        if (!initialized) {
             initialize();
         }
     }
 
     private void initialize() throws PKCS11Exception {
-        if (session == null) {
-            session = token.getOpSession();
+        if (p11Key == null) {
+            throw new ProviderException(
+                    "Operation cannot be performed without"
+                    + " calling engineInit first");
         }
-        CK_MECHANISM mechParams = (blockMode == MODE_CTR?
-            new CK_MECHANISM(mechanism, new CK_AES_CTR_PARAMS(iv)) :
-            new CK_MECHANISM(mechanism, iv));
-
+        token.ensureValid();
+        long p11KeyID = p11Key.getKeyID();
         try {
+            if (session == null) {
+                session = token.getOpSession();
+            }
+            CK_MECHANISM mechParams = (blockMode == MODE_CTR?
+                    new CK_MECHANISM(mechanism, new CK_AES_CTR_PARAMS(iv)) :
+                    new CK_MECHANISM(mechanism, iv));
             if (encrypt) {
-                token.p11.C_EncryptInit(session.id(), mechParams, p11Key.keyID);
+                token.p11.C_EncryptInit(session.id(), mechParams, p11KeyID);
             } else {
-                token.p11.C_DecryptInit(session.id(), mechParams, p11Key.keyID);
+                token.p11.C_DecryptInit(session.id(), mechParams, p11KeyID);
             }
-        } catch (PKCS11Exception ex) {
-            // release session when initialization failed
+        } catch (PKCS11Exception e) {
+            p11Key.releaseKeyID();
             session = token.releaseSession(session);
-            throw ex;
+            throw e;
         }
+        initialized = true;
         bytesBuffered = 0;
         padBufferLen = 0;
-        initialized = true;
     }
 
     // if update(inLen) is called, how big does the output buffer have to be?
@@ -485,18 +507,6 @@
         return result;
     }
 
-    // reset the states to the pre-initialized values
-    private void reset(boolean doCancel) {
-        if (doCancel) cancelOperation();
-
-        initialized = false;
-        bytesBuffered = 0;
-        padBufferLen = 0;
-        if (session != null) {
-            session = token.releaseSession(session);
-        }
-    }
-
     // see JCE spec
     protected byte[] engineUpdate(byte[] in, int inOfs, int inLen) {
         try {
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11DHKeyFactory.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11DHKeyFactory.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -221,7 +221,12 @@
                 new CK_ATTRIBUTE(CKA_PRIME),
                 new CK_ATTRIBUTE(CKA_BASE),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
             KeySpec spec = new DHPublicKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger(),
@@ -243,7 +248,12 @@
                 new CK_ATTRIBUTE(CKA_PRIME),
                 new CK_ATTRIBUTE(CKA_BASE),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
             KeySpec spec = new DHPrivateKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger(),
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -218,7 +218,12 @@
                 new CK_ATTRIBUTE(CKA_SUBPRIME),
                 new CK_ATTRIBUTE(CKA_BASE),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
             KeySpec spec = new DSAPublicKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger(),
@@ -242,7 +247,12 @@
                 new CK_ATTRIBUTE(CKA_SUBPRIME),
                 new CK_ATTRIBUTE(CKA_BASE),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
             KeySpec spec = new DSAPrivateKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger(),
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Digest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Digest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -143,7 +143,8 @@
         token.ensureValid();
 
         if (session != null) {
-            if (state == S_INIT && token.explicitCancel == true) {
+            if (state == S_INIT && token.explicitCancel == true
+                    && session.hasObjects() == false) {
                 session = token.killSession(session);
             } else {
                 session = token.releaseSession(session);
@@ -254,6 +255,7 @@
         }
 
         fetchSession();
+        long p11KeyID = p11Key.getKeyID();
         try {
             if (state == S_BUFFERED) {
                 token.p11.C_DigestInit(session.id(), mechanism);
@@ -264,10 +266,12 @@
                 token.p11.C_DigestUpdate(session.id(), 0, buffer, 0, bufOfs);
                 bufOfs = 0;
             }
-            token.p11.C_DigestKey(session.id(), p11Key.keyID);
+            token.p11.C_DigestKey(session.id(), p11KeyID);
         } catch (PKCS11Exception e) {
             engineReset();
             throw new ProviderException("update(SecretKey) failed", e);
+        } finally {
+            p11Key.releaseKeyID();
         }
     }
 
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11ECDHKeyAgreement.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11ECDHKeyAgreement.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -120,6 +120,7 @@
             throw new IllegalStateException("Not initialized correctly");
         }
         Session session = null;
+        long privKeyID = privateKey.getKeyID();
         try {
             session = token.getOpSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -131,8 +132,8 @@
             attributes = token.getAttributes
                 (O_GENERATE, CKO_SECRET_KEY, CKK_GENERIC_SECRET, attributes);
             long keyID = token.p11.C_DeriveKey(session.id(),
-                new CK_MECHANISM(mechanism, ckParams), privateKey.keyID,
-                attributes);
+                    new CK_MECHANISM(mechanism, ckParams), privKeyID,
+                    attributes);
             attributes = new CK_ATTRIBUTE[] {
                 new CK_ATTRIBUTE(CKA_VALUE)
             };
@@ -143,6 +144,7 @@
         } catch (PKCS11Exception e) {
             throw new ProviderException("Could not derive key", e);
         } finally {
+            privateKey.releaseKeyID();
             publicValue = null;
             token.releaseSession(session);
         }
@@ -182,6 +184,7 @@
         }
         long keyType = CKK_GENERIC_SECRET;
         Session session = null;
+        long privKeyID = privateKey.getKeyID();
         try {
             session = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -193,8 +196,8 @@
             attributes = token.getAttributes
                 (O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
             long keyID = token.p11.C_DeriveKey(session.id(),
-                new CK_MECHANISM(mechanism, ckParams), privateKey.keyID,
-                attributes);
+                    new CK_MECHANISM(mechanism, ckParams), privKeyID,
+                    attributes);
             CK_ATTRIBUTE[] lenAttributes = new CK_ATTRIBUTE[] {
                 new CK_ATTRIBUTE(CKA_VALUE_LEN),
             };
@@ -206,6 +209,7 @@
         } catch (PKCS11Exception e) {
             throw new InvalidKeyException("Could not derive key", e);
         } finally {
+            privateKey.releaseKeyID();
             publicValue = null;
             token.releaseSession(session);
         }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11ECKeyFactory.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11ECKeyFactory.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -290,13 +290,16 @@
                 new CK_ATTRIBUTE(CKA_EC_POINT),
                 new CK_ATTRIBUTE(CKA_EC_PARAMS),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
             try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
                 ECParameterSpec params = decodeParameters(attributes[1].getByteArray());
                 ECPoint point = decodePoint(attributes[0].getByteArray(), params.getCurve());
                 return keySpec.cast(new ECPublicKeySpec(point, params));
             } catch (IOException e) {
                 throw new InvalidKeySpecException("Could not parse key", e);
+            } finally {
+                key.releaseKeyID();
             }
         } else { // X.509 handled in superclass
             throw new InvalidKeySpecException("Only ECPublicKeySpec and "
@@ -312,13 +315,16 @@
                 new CK_ATTRIBUTE(CKA_VALUE),
                 new CK_ATTRIBUTE(CKA_EC_PARAMS),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
             try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
                 ECParameterSpec params = decodeParameters(attributes[1].getByteArray());
                 return keySpec.cast(
                     new ECPrivateKeySpec(attributes[0].getBigInteger(), params));
             } catch (IOException e) {
                 throw new InvalidKeySpecException("Could not parse key", e);
+            } finally {
+                key.releaseKeyID();
             }
         } else { // PKCS#8 handled in superclass
             throw new InvalidKeySpecException("Only ECPrivateKeySpec "
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java	Tue Jan 22 09:43:38 2019 -0500
@@ -29,7 +29,6 @@
 import java.lang.ref.*;
 import java.math.BigInteger;
 import java.util.*;
-
 import java.security.*;
 import java.security.interfaces.*;
 import java.security.spec.*;
@@ -45,12 +44,15 @@
 import sun.security.internal.interfaces.TlsMasterSecret;
 
 import sun.security.pkcs11.wrapper.*;
+
+import static sun.security.pkcs11.TemplateManager.O_GENERATE;
 import static sun.security.pkcs11.wrapper.PKCS11Constants.*;
 
 import sun.security.util.Debug;
 import sun.security.util.DerValue;
 import sun.security.util.Length;
 import sun.security.util.ECUtil;
+import sun.security.jca.JCAUtil;
 
 /**
  * Key implementation classes.
@@ -83,23 +85,38 @@
     // algorithm name, returned by getAlgorithm(), etc.
     final String algorithm;
 
-    // key id
-    final long keyID;
-
     // effective key length of the key, e.g. 56 for a DES key
     final int keyLength;
 
     // flags indicating whether the key is a token object, sensitive, extractable
     final boolean tokenObject, sensitive, extractable;
 
-    // phantom reference notification clean up for session keys
-    private final SessionKeyRef sessionKeyRef;
+    private final NativeKeyHolder keyIDHolder;
+
+    private static final boolean DISABLE_NATIVE_KEYS_EXTRACTION;
+
+    /**
+     * {@systemProperty sun.security.pkcs11.disableKeyExtraction} property
+     * indicating whether or not cryptographic keys within tokens are
+     * extracted to a Java byte array for memory management purposes.
+     *
+     * Key extraction affects NSS PKCS11 library only.
+     *
+     */
+    static {
+        PrivilegedAction<String> getKeyExtractionProp =
+                () -> System.getProperty(
+                        "sun.security.pkcs11.disableKeyExtraction", "true");
+        String disableKeyExtraction =
+                AccessController.doPrivileged(getKeyExtractionProp);
+        DISABLE_NATIVE_KEYS_EXTRACTION =
+                "true".equalsIgnoreCase(disableKeyExtraction);
+    }
 
     P11Key(String type, Session session, long keyID, String algorithm,
             int keyLength, CK_ATTRIBUTE[] attributes) {
         this.type = type;
         this.token = session.token;
-        this.keyID = keyID;
         this.algorithm = algorithm;
         this.keyLength = keyLength;
         boolean tokenObject = false;
@@ -119,11 +136,21 @@
         this.tokenObject = tokenObject;
         this.sensitive = sensitive;
         this.extractable = extractable;
-        if (tokenObject == false) {
-            sessionKeyRef = new SessionKeyRef(this, keyID, session);
-        } else {
-            sessionKeyRef = null;
-        }
+        char[] tokenLabel = this.token.tokenInfo.label;
+        boolean isNSS = (tokenLabel[0] == 'N' && tokenLabel[1] == 'S'
+                && tokenLabel[2] == 'S');
+        boolean extractKeyInfo = (!DISABLE_NATIVE_KEYS_EXTRACTION && isNSS &&
+                extractable && !tokenObject);
+        this.keyIDHolder = new NativeKeyHolder(this, keyID, session, extractKeyInfo,
+            tokenObject);
+    }
+
+    public long getKeyID() {
+        return keyIDHolder.getKeyID();
+    }
+
+    public void releaseKeyID() {
+        keyIDHolder.releaseKeyID();
     }
 
     // see JCA spec
@@ -208,8 +235,7 @@
         token.ensureValid();
         String s1 = token.provider.getName() + " " + algorithm + " " + type
                 + " key, " + keyLength + " bits";
-        s1 += " (id " + keyID + ", "
-                + (tokenObject ? "token" : "session") + " object";
+        s1 += (tokenObject ? "token" : "session") + " object";
         if (isPublic()) {
             s1 += ")";
         } else {
@@ -241,12 +267,15 @@
 
     void fetchAttributes(CK_ATTRIBUTE[] attributes) {
         Session tempSession = null;
+        long keyID = this.getKeyID();
         try {
             tempSession = token.getOpSession();
-            token.p11.C_GetAttributeValue(tempSession.id(), keyID, attributes);
+            token.p11.C_GetAttributeValue(tempSession.id(), keyID,
+                        attributes);
         } catch (PKCS11Exception e) {
             throw new ProviderException(e);
         } finally {
+            this.releaseKeyID();
             token.releaseSession(tempSession);
         }
     }
@@ -293,7 +322,8 @@
             new CK_ATTRIBUTE(CKA_SENSITIVE),
             new CK_ATTRIBUTE(CKA_EXTRACTABLE),
         });
-        return new P11SecretKey(session, keyID, algorithm, keyLength, attributes);
+        return new P11SecretKey(session, keyID, algorithm, keyLength,
+                attributes);
     }
 
     static SecretKey masterSecretKey(Session session, long keyID, String algorithm,
@@ -303,8 +333,9 @@
             new CK_ATTRIBUTE(CKA_SENSITIVE),
             new CK_ATTRIBUTE(CKA_EXTRACTABLE),
         });
-        return new P11TlsMasterSecretKey
-                (session, keyID, algorithm, keyLength, attributes, major, minor);
+        return new P11TlsMasterSecretKey(
+                session, keyID, algorithm, keyLength, attributes, major,
+                minor);
     }
 
     // we assume that all components of public keys are always accessible
@@ -312,17 +343,17 @@
             int keyLength, CK_ATTRIBUTE[] attributes) {
         switch (algorithm) {
             case "RSA":
-                return new P11RSAPublicKey
-                    (session, keyID, algorithm, keyLength, attributes);
+                return new P11RSAPublicKey(session, keyID, algorithm,
+                        keyLength, attributes);
             case "DSA":
-                return new P11DSAPublicKey
-                    (session, keyID, algorithm, keyLength, attributes);
+                return new P11DSAPublicKey(session, keyID, algorithm,
+                        keyLength, attributes);
             case "DH":
-                return new P11DHPublicKey
-                    (session, keyID, algorithm, keyLength, attributes);
+                return new P11DHPublicKey(session, keyID, algorithm,
+                        keyLength, attributes);
             case "EC":
-                return new P11ECPublicKey
-                    (session, keyID, algorithm, keyLength, attributes);
+                return new P11ECPublicKey(session, keyID, algorithm,
+                        keyLength, attributes);
             default:
                 throw new ProviderException
                     ("Unknown public key algorithm " + algorithm);
@@ -367,21 +398,21 @@
                         crtKey = false;
                     }
                     if (crtKey) {
-                        return new P11RSAPrivateKey
-                                (session, keyID, algorithm, keyLength, attributes, attrs2);
+                        return new P11RSAPrivateKey(session, keyID, algorithm,
+                                keyLength, attributes, attrs2);
                     } else {
-                        return new P11RSAPrivateNonCRTKey
-                                (session, keyID, algorithm, keyLength, attributes);
+                        return new P11RSAPrivateNonCRTKey(session, keyID,
+                                algorithm, keyLength, attributes);
                     }
                 case "DSA":
-                    return new P11DSAPrivateKey
-                            (session, keyID, algorithm, keyLength, attributes);
+                    return new P11DSAPrivateKey(session, keyID, algorithm,
+                            keyLength, attributes);
                 case "DH":
-                    return new P11DHPrivateKey
-                            (session, keyID, algorithm, keyLength, attributes);
+                    return new P11DHPrivateKey(session, keyID, algorithm,
+                            keyLength, attributes);
                 case "EC":
-                    return new P11ECPrivateKey
-                            (session, keyID, algorithm, keyLength, attributes);
+                    return new P11ECPrivateKey(session, keyID, algorithm,
+                            keyLength, attributes);
                 default:
                     throw new ProviderException
                             ("Unknown private key algorithm " + algorithm);
@@ -435,17 +466,19 @@
                     b = encoded;
                     if (b == null) {
                         Session tempSession = null;
+                        long keyID = this.getKeyID();
                         try {
                             tempSession = token.getOpSession();
                             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
                                 new CK_ATTRIBUTE(CKA_VALUE),
                             };
                             token.p11.C_GetAttributeValue
-                                (tempSession.id(), keyID, attributes);
+                                    (tempSession.id(), keyID, attributes);
                             b = attributes[0].getByteArray();
                         } catch (PKCS11Exception e) {
                             throw new ProviderException(e);
                         } finally {
+                            this.releaseKeyID();
                             token.releaseSession(tempSession);
                         }
                         encoded = b;
@@ -1100,6 +1133,153 @@
     }
 }
 
+final class NativeKeyHolder {
+
+    private static long nativeKeyWrapperKeyID = 0;
+    private static CK_MECHANISM nativeKeyWrapperMechanism = null;
+
+    private final P11Key p11Key;
+    private final byte[] nativeKeyInfo;
+
+    // destroyed and recreated when refCount toggles to 1
+    private long keyID;
+
+    private boolean isTokenObject;
+
+    // phantom reference notification clean up for session keys
+    private SessionKeyRef ref;
+
+    private int refCount;
+
+    NativeKeyHolder(P11Key p11Key, long keyID, Session keySession,
+            boolean extractKeyInfo, boolean isTokenObject) {
+        this.p11Key = p11Key;
+        this.keyID = keyID;
+        this.refCount = -1;
+        byte[] ki = null;
+        if (isTokenObject) {
+            this.ref = null;
+        } else {
+            this.ref = new SessionKeyRef(p11Key, keyID, keySession);
+
+            // Try extracting key info, if any error, disable it
+            Token token = p11Key.token;
+            if (extractKeyInfo) {
+                try {
+                    if (p11Key.sensitive && nativeKeyWrapperKeyID == 0) {
+                        synchronized(NativeKeyHolder.class) {
+                            // Create a global wrapping/unwrapping key
+                            CK_ATTRIBUTE[] wrappingAttributes = token.getAttributes
+                                (O_GENERATE, CKO_SECRET_KEY, CKK_AES, new CK_ATTRIBUTE[] {
+                                    new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY),
+                                    new CK_ATTRIBUTE(CKA_VALUE_LEN, 256 >> 3),
+                                });
+                            Session wrappingSession = null;
+                            try {
+                                wrappingSession = token.getObjSession();
+                                nativeKeyWrapperKeyID = token.p11.C_GenerateKey
+                                    (wrappingSession.id(),
+                                    new CK_MECHANISM(CKM_AES_KEY_GEN),
+                                    wrappingAttributes);
+                                byte[] iv = new byte[16];
+                                JCAUtil.getSecureRandom().nextBytes(iv);
+                                nativeKeyWrapperMechanism = new CK_MECHANISM
+                                    (CKM_AES_CBC_PAD, iv);
+                            } catch (PKCS11Exception e) {
+                                // best effort
+                            } finally {
+                                token.releaseSession(wrappingSession);
+                            }
+                        }
+                    }
+                    Session opSession = null;
+                    try {
+                        opSession = token.getOpSession();
+                        ki = p11Key.token.p11.getNativeKeyInfo(opSession.id(),
+                            keyID, nativeKeyWrapperKeyID, nativeKeyWrapperMechanism);
+                    } catch (PKCS11Exception e) {
+                        // best effort
+                    } finally {
+                        token.releaseSession(opSession);
+                    }
+                } catch (PKCS11Exception e) {
+                    // best effort
+                }
+            }
+        }
+        this.nativeKeyInfo = ((ki == null || ki.length == 0)? null : ki);
+    }
+
+    long getKeyID() throws ProviderException {
+        if (this.nativeKeyInfo != null) {
+            synchronized(this.nativeKeyInfo) {
+                if (this.refCount == -1) {
+                    this.refCount = 0;
+                }
+                int cnt = (this.refCount)++;
+                if (keyID == 0) {
+                    if (cnt != 0) {
+                        throw new RuntimeException(
+                                "Error: null keyID with non-zero refCount " + cnt);
+                    }
+                    if (this.ref != null)  {
+                        throw new RuntimeException(
+                                "Error: null keyID with non-null session ref");
+                    }
+                    Token token = p11Key.token;
+                    // Create keyID using nativeKeyInfo
+                    Session session = null;
+                    try {
+                        session = token.getObjSession();
+                        this.keyID = token.p11.createNativeKey(session.id(),
+                                nativeKeyInfo, nativeKeyWrapperKeyID, nativeKeyWrapperMechanism);
+                        this.ref = new SessionKeyRef(p11Key, this.keyID, session);
+                    } catch (PKCS11Exception e) {
+                        this.refCount--;
+                        throw new ProviderException("Error recreating native key", e);
+                    } finally {
+                        token.releaseSession(session);
+                    }
+                } else {
+                    if (cnt < 0) {
+                        throw new RuntimeException("ERROR: negative refCount");
+                    }
+                }
+            }
+        }
+        return keyID;
+    }
+
+    void releaseKeyID() {
+        if (this.nativeKeyInfo != null) {
+            synchronized(this.nativeKeyInfo) {
+                if (this.refCount == -1) {
+                    throw new RuntimeException("Error: miss match getKeyID call");
+                }
+                int cnt = --(this.refCount);
+                if (cnt == 0) {
+                    // destroy
+                    if (this.keyID == 0) {
+                        throw new RuntimeException("ERROR: null keyID can't be destroyed");
+                    }
+
+                    if (this.ref == null) {
+                        throw new RuntimeException("ERROR: null session ref can't be disposed");
+                    }
+                    // destroy
+                    this.keyID = 0;
+                    this.ref = this.ref.dispose();
+                } else {
+                    if (cnt < 0) {
+                        // should never happen as we start count at 1 and pair get/release calls
+                        throw new RuntimeException("wrong refCount value: " + cnt);
+                    }
+                }
+            }
+        }
+    }
+}
+
 /*
  * NOTE: Must use PhantomReference here and not WeakReference
  * otherwise the key maybe cleared before other objects which
@@ -1117,64 +1297,50 @@
     }
 
     private static void drainRefQueueBounded() {
-        Session sess = null;
-        Token tkn = null;
         while (true) {
             SessionKeyRef next = (SessionKeyRef) refQueue.poll();
             if (next == null) {
                 break;
             }
-
-            // If the token is still valid, try to remove the object
-            if (next.session.token.isValid()) {
-                // If this key's token is the same as the previous key, the
-                // same session can be used for C_DestroyObject.
-                try {
-                    if (next.session.token != tkn || sess == null) {
-                        // Release session if not using previous token
-                        if (tkn != null && sess != null) {
-                            tkn.releaseSession(sess);
-                            sess = null;
-                        }
-
-                        tkn = next.session.token;
-                        sess = tkn.getOpSession();
-                    }
-                    next.disposeNative(sess);
-                } catch (PKCS11Exception e) {
-                    // ignore
-                }
-            }
-            // Regardless of native results, dispose of java references
             next.dispose();
         }
-
-        if (tkn != null && sess != null) {
-            tkn.releaseSession(sess);
-        }
     }
 
-    // handle to the native key
-    private long keyID;
-    private Session session;
+    // handle to the native key and the session it is generated under
+    private final long keyID;
+    private final Session session;
 
-    SessionKeyRef(P11Key key , long keyID, Session session) {
-        super(key, refQueue);
+    SessionKeyRef(P11Key p11Key, long keyID, Session session) {
+        super(p11Key, refQueue);
+        if (session == null) {
+            throw new ProviderException("key must be associated with a session");
+        }
         this.keyID = keyID;
         this.session = session;
         this.session.addObject();
+
         refList.add(this);
         drainRefQueueBounded();
     }
 
-    private void disposeNative(Session s) throws PKCS11Exception {
-        session.token.p11.C_DestroyObject(s.id(), keyID);
-    }
-
-    private void dispose() {
+    SessionKeyRef dispose() {
+        Token token = session.token;
+        // If the token is still valid, try to remove the key object
+        if (token.isValid()) {
+            Session s = null;
+            try {
+                s = token.getOpSession();
+                token.p11.C_DestroyObject(s.id(), keyID);
+            } catch (PKCS11Exception e) {
+                // best effort
+            } finally {
+                token.releaseSession(s);
+            }
+        }
         refList.remove(this);
         this.clear();
         session.removeObject();
+        return null;
     }
 
     public int compareTo(SessionKeyRef other) {
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyAgreement.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyAgreement.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -201,6 +201,7 @@
             throw new IllegalStateException("Not initialized correctly");
         }
         Session session = null;
+        long privKeyID = privateKey.getKeyID();
         try {
             session = token.getOpSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -210,8 +211,9 @@
             attributes = token.getAttributes
                 (O_GENERATE, CKO_SECRET_KEY, CKK_GENERIC_SECRET, attributes);
             long keyID = token.p11.C_DeriveKey(session.id(),
-                new CK_MECHANISM(mechanism, publicValue), privateKey.keyID,
-                attributes);
+                    new CK_MECHANISM(mechanism, publicValue), privKeyID,
+                    attributes);
+
             attributes = new CK_ATTRIBUTE[] {
                 new CK_ATTRIBUTE(CKA_VALUE)
             };
@@ -237,6 +239,7 @@
         } catch (PKCS11Exception e) {
             throw new ProviderException("Could not derive key", e);
         } finally {
+            privateKey.releaseKeyID();
             publicValue = null;
             token.releaseSession(session);
         }
@@ -325,6 +328,7 @@
         }
         long keyType = CKK_GENERIC_SECRET;
         Session session = null;
+        long privKeyID = privateKey.getKeyID();
         try {
             session = token.getObjSession();
             CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] {
@@ -334,8 +338,8 @@
             attributes = token.getAttributes
                 (O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
             long keyID = token.p11.C_DeriveKey(session.id(),
-                new CK_MECHANISM(mechanism, publicValue), privateKey.keyID,
-                attributes);
+                    new CK_MECHANISM(mechanism, publicValue), privKeyID,
+                    attributes);
             CK_ATTRIBUTE[] lenAttributes = new CK_ATTRIBUTE[] {
                 new CK_ATTRIBUTE(CKA_VALUE_LEN),
             };
@@ -359,6 +363,7 @@
         } catch (PKCS11Exception e) {
             throw new InvalidKeyException("Could not derive key", e);
         } finally {
+            privateKey.releaseKeyID();
             publicValue = null;
             token.releaseSession(session);
         }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyStore.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyStore.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -1485,6 +1485,7 @@
         }
     }
 
+    // retrieves the native key handle and either update it directly or make a copy
     private void updateP11Pkey(String alias, CK_ATTRIBUTE attribute, P11Key key)
                 throws PKCS11Exception {
 
@@ -1492,23 +1493,22 @@
         // if session key, convert to token key.
 
         Session session = null;
+        long keyID = key.getKeyID();
         try {
             session = token.getOpSession();
             if (key.tokenObject == true) {
-
                 // token key - set new CKA_ID
 
                 CK_ATTRIBUTE[] attrs = new CK_ATTRIBUTE[] {
                                 new CK_ATTRIBUTE(CKA_ID, alias) };
                 token.p11.C_SetAttributeValue
-                                (session.id(), key.keyID, attrs);
+                                (session.id(), keyID, attrs);
                 if (debug != null) {
                     debug.println("updateP11Pkey set new alias [" +
                                 alias +
                                 "] for key entry");
                 }
             } else {
-
                 // session key - convert to token key and set CKA_ID
 
                 CK_ATTRIBUTE[] attrs = new CK_ATTRIBUTE[] {
@@ -1518,7 +1518,8 @@
                 if (attribute != null) {
                     attrs = addAttribute(attrs, attribute);
                 }
-                token.p11.C_CopyObject(session.id(), key.keyID, attrs);
+                // creates a new token key with the desired CKA_ID
+                token.p11.C_CopyObject(session.id(), keyID, attrs);
                 if (debug != null) {
                     debug.println("updateP11Pkey copied private session key " +
                                 "for [" +
@@ -1528,6 +1529,7 @@
             }
         } finally {
             token.releaseSession(session);
+            key.releaseKeyID();
         }
     }
 
@@ -1894,10 +1896,12 @@
             return attrs;
         }
         String alg = privateKey.getAlgorithm();
-        if (id && alg.equals("RSA") && (publicKey instanceof RSAPublicKey)) {
+        if (alg.equals("RSA") && (publicKey instanceof RSAPublicKey)) {
+            if (id) {
+                BigInteger n = ((RSAPublicKey)publicKey).getModulus();
+                attrs[0] = new CK_ATTRIBUTE(CKA_ID, sha1(getMagnitude(n)));
+            }
             // CKA_NETSCAPE_DB not needed for RSA public keys
-            BigInteger n = ((RSAPublicKey)publicKey).getModulus();
-            attrs[0] = new CK_ATTRIBUTE(CKA_ID, sha1(getMagnitude(n)));
         } else if (alg.equals("DSA") && (publicKey instanceof DSAPublicKey)) {
             BigInteger y = ((DSAPublicKey)publicKey).getY();
             if (id) {
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -25,7 +25,6 @@
 
 package sun.security.pkcs11;
 
-import java.util.*;
 import java.nio.ByteBuffer;
 
 import java.security.*;
@@ -54,27 +53,12 @@
  */
 final class P11Mac extends MacSpi {
 
-    /* unitialized, all fields except session have arbitrary values */
-    private final static int S_UNINIT   = 1;
-
-    /* session initialized, no data processed yet */
-    private final static int S_RESET    = 2;
-
-    /* session initialized, data processed */
-    private final static int S_UPDATE   = 3;
-
-    /* transitional state after doFinal() before we go to S_UNINIT */
-    private final static int S_DOFINAL  = 4;
-
     // token instance
     private final Token token;
 
     // algorithm name
     private final String algorithm;
 
-    // mechanism id
-    private final long mechanism;
-
     // mechanism object
     private final CK_MECHANISM ckMechanism;
 
@@ -87,8 +71,8 @@
     // associated session, if any
     private Session session;
 
-    // state, one of S_* above
-    private int state;
+    // initialization status
+    private boolean initialized;
 
     // one byte buffer for the update(byte) method, initialized on demand
     private byte[] oneByte;
@@ -98,7 +82,6 @@
         super();
         this.token = token;
         this.algorithm = algorithm;
-        this.mechanism = mechanism;
         Long params = null;
         switch ((int)mechanism) {
         case (int)CKM_MD5_HMAC:
@@ -131,47 +114,65 @@
             throw new ProviderException("Unknown mechanism: " + mechanism);
         }
         ckMechanism = new CK_MECHANISM(mechanism, params);
-        state = S_UNINIT;
-        initialize();
     }
 
-    private void ensureInitialized() throws PKCS11Exception {
-        token.ensureValid();
-        if (state == S_UNINIT) {
-            initialize();
+    // reset the states to the pre-initialized values
+    private void reset(boolean doCancel) {
+        if (!initialized) {
+            return;
+        }
+        initialized = false;
+        try {
+            if (session == null) {
+                return;
+            }
+            if (doCancel && token.explicitCancel) {
+                cancelOperation();
+            }
+        } finally {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
         }
     }
 
     private void cancelOperation() {
         token.ensureValid();
-        if (state == S_UNINIT) {
-            return;
-        }
-        state = S_UNINIT;
-        if ((session == null) || (token.explicitCancel == false)) {
+        if (session.hasObjects() == false) {
+            session = token.killSession(session);
             return;
+        } else {
+            try {
+                token.p11.C_SignFinal(session.id(), 0);
+            } catch (PKCS11Exception e) {
+                throw new ProviderException("Cancel failed", e);
+            }
         }
-        try {
-            token.p11.C_SignFinal(session.id(), 0);
-        } catch (PKCS11Exception e) {
-            throw new ProviderException("Cancel failed", e);
+    }
+
+    private void ensureInitialized() throws PKCS11Exception {
+        if (!initialized) {
+            initialize();
         }
     }
 
     private void initialize() throws PKCS11Exception {
-        if (state == S_RESET) {
-            return;
-        }
-        if (session == null) {
-            session = token.getOpSession();
+        if (p11Key == null) {
+            throw new ProviderException(
+                    "Operation cannot be performed without calling engineInit first");
         }
-        if (p11Key != null) {
-            token.p11.C_SignInit
-                (session.id(), ckMechanism, p11Key.keyID);
-            state = S_RESET;
-        } else {
-            state = S_UNINIT;
+        token.ensureValid();
+        long p11KeyID = p11Key.getKeyID();
+        try {
+            if (session == null) {
+                session = token.getOpSession();
+            }
+            token.p11.C_SignInit(session.id(), ckMechanism, p11KeyID);
+        } catch (PKCS11Exception e) {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
+            throw e;
         }
+        initialized = true;
     }
 
     // see JCE spec
@@ -181,18 +182,7 @@
 
     // see JCE spec
     protected void engineReset() {
-        // the framework insists on calling reset() after doFinal(),
-        // but we prefer to take care of reinitialization ourselves
-        if (state == S_DOFINAL) {
-            state = S_UNINIT;
-            return;
-        }
-        cancelOperation();
-        try {
-            initialize();
-        } catch (PKCS11Exception e) {
-            throw new ProviderException("reset() failed, ", e);
-        }
+        reset(true);
     }
 
     // see JCE spec
@@ -202,7 +192,7 @@
             throw new InvalidAlgorithmParameterException
                 ("Parameters not supported");
         }
-        cancelOperation();
+        reset(true);
         p11Key = P11SecretKeyFactory.convertKey(token, key, algorithm);
         try {
             initialize();
@@ -215,13 +205,12 @@
     protected byte[] engineDoFinal() {
         try {
             ensureInitialized();
-            byte[] mac = token.p11.C_SignFinal(session.id(), 0);
-            state = S_DOFINAL;
-            return mac;
+            return token.p11.C_SignFinal(session.id(), 0);
         } catch (PKCS11Exception e) {
+            reset(true);
             throw new ProviderException("doFinal() failed", e);
         } finally {
-            session = token.releaseSession(session);
+            reset(false);
         }
     }
 
@@ -239,7 +228,6 @@
         try {
             ensureInitialized();
             token.p11.C_SignUpdate(session.id(), 0, b, ofs, len);
-            state = S_UPDATE;
         } catch (PKCS11Exception e) {
             throw new ProviderException("update() failed", e);
         }
@@ -261,7 +249,6 @@
             int ofs = byteBuffer.position();
             token.p11.C_SignUpdate(session.id(), addr + ofs, null, 0, len);
             byteBuffer.position(ofs + len);
-            state = S_UPDATE;
         } catch (PKCS11Exception e) {
             throw new ProviderException("update() failed", e);
         }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -196,7 +196,7 @@
     }
 
     private void implInit(int opmode, Key key) throws InvalidKeyException {
-        cancelOperation();
+        reset(true);
         p11Key = P11KeyFactory.convertKey(token, key, algorithm);
         boolean encrypt;
         if (opmode == Cipher.ENCRYPT_MODE) {
@@ -241,80 +241,105 @@
         }
     }
 
-    private void cancelOperation() {
-        token.ensureValid();
-        if (initialized == false) {
+    // reset the states to the pre-initialized values
+    private void reset(boolean doCancel) {
+        if (!initialized) {
             return;
         }
         initialized = false;
-        if ((session == null) || (token.explicitCancel == false)) {
-            return;
+        try {
+            if (session == null) {
+                return;
+            }
+            if (doCancel && token.explicitCancel) {
+                cancelOperation();
+            }
+        } finally {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
         }
+    }
+
+    // should only called by reset as this method does not update other
+    // state variables such as "initialized"
+    private void cancelOperation() {
+        token.ensureValid();
         if (session.hasObjects() == false) {
             session = token.killSession(session);
             return;
-        }
-        try {
-            PKCS11 p11 = token.p11;
-            int inLen = maxInputSize;
-            int outLen = buffer.length;
-            switch (mode) {
-            case MODE_ENCRYPT:
-                p11.C_Encrypt
-                        (session.id(), buffer, 0, inLen, buffer, 0, outLen);
-                break;
-            case MODE_DECRYPT:
-                p11.C_Decrypt
-                        (session.id(), buffer, 0, inLen, buffer, 0, outLen);
-                break;
-            case MODE_SIGN:
-                byte[] tmpBuffer = new byte[maxInputSize];
-                p11.C_Sign
-                        (session.id(), tmpBuffer);
-                break;
-            case MODE_VERIFY:
-                p11.C_VerifyRecover
-                        (session.id(), buffer, 0, inLen, buffer, 0, outLen);
-                break;
-            default:
-                throw new ProviderException("internal error");
+        } else {
+            try {
+                PKCS11 p11 = token.p11;
+                int inLen = maxInputSize;
+                int outLen = buffer.length;
+                long sessId = session.id();
+                switch (mode) {
+                case MODE_ENCRYPT:
+                    p11.C_Encrypt(sessId, buffer, 0, inLen, buffer, 0, outLen);
+                    break;
+                case MODE_DECRYPT:
+                    p11.C_Decrypt(sessId, buffer, 0, inLen, buffer, 0, outLen);
+                    break;
+                case MODE_SIGN:
+                    byte[] tmpBuffer = new byte[maxInputSize];
+                    p11.C_Sign(sessId, tmpBuffer);
+                    break;
+                case MODE_VERIFY:
+                    p11.C_VerifyRecover(sessId, buffer, 0, inLen, buffer,
+                            0, outLen);
+                    break;
+                default:
+                    throw new ProviderException("internal error");
+                }
+            } catch (PKCS11Exception e) {
+                // XXX ensure this always works, ignore error
             }
-        } catch (PKCS11Exception e) {
-            // XXX ensure this always works, ignore error
         }
     }
 
     private void ensureInitialized() throws PKCS11Exception {
         token.ensureValid();
-        if (initialized == false) {
+        if (!initialized) {
             initialize();
         }
     }
 
     private void initialize() throws PKCS11Exception {
-        if (session == null) {
-            session = token.getOpSession();
+        if (p11Key == null) {
+            throw new ProviderException(
+                    "Operation cannot be performed without " +
+                    "calling engineInit first");
         }
-        PKCS11 p11 = token.p11;
-        CK_MECHANISM ckMechanism = new CK_MECHANISM(mechanism);
-        switch (mode) {
-        case MODE_ENCRYPT:
-            p11.C_EncryptInit(session.id(), ckMechanism, p11Key.keyID);
-            break;
-        case MODE_DECRYPT:
-            p11.C_DecryptInit(session.id(), ckMechanism, p11Key.keyID);
-            break;
-        case MODE_SIGN:
-            p11.C_SignInit(session.id(), ckMechanism, p11Key.keyID);
-            break;
-        case MODE_VERIFY:
-            p11.C_VerifyRecoverInit(session.id(), ckMechanism, p11Key.keyID);
-            break;
-        default:
-            throw new AssertionError("internal error");
+        long keyID = p11Key.getKeyID();
+        try {
+            if (session == null) {
+                session = token.getOpSession();
+            }
+            PKCS11 p11 = token.p11;
+            CK_MECHANISM ckMechanism = new CK_MECHANISM(mechanism);
+            switch (mode) {
+            case MODE_ENCRYPT:
+                p11.C_EncryptInit(session.id(), ckMechanism, keyID);
+                break;
+            case MODE_DECRYPT:
+                p11.C_DecryptInit(session.id(), ckMechanism, keyID);
+                break;
+            case MODE_SIGN:
+                p11.C_SignInit(session.id(), ckMechanism, keyID);
+                break;
+            case MODE_VERIFY:
+                p11.C_VerifyRecoverInit(session.id(), ckMechanism, keyID);
+                break;
+            default:
+                throw new AssertionError("internal error");
+            }
+            bufOfs = 0;
+            initialized = true;
+        } catch (PKCS11Exception e) {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
+            throw e;
         }
-        bufOfs = 0;
-        initialized = true;
     }
 
     private void implUpdate(byte[] in, int inOfs, int inLen) {
@@ -377,8 +402,7 @@
             throw (BadPaddingException)new BadPaddingException
                 ("doFinal() failed").initCause(e);
         } finally {
-            initialized = false;
-            session = token.releaseSession(session);
+            reset(false);
         }
     }
 
@@ -452,13 +476,17 @@
             }
         }
         Session s = null;
+        long p11KeyID = p11Key.getKeyID();
+        long sKeyID = sKey.getKeyID();
         try {
             s = token.getOpSession();
             return token.p11.C_WrapKey(s.id(), new CK_MECHANISM(mechanism),
-                p11Key.keyID, sKey.keyID);
+                    p11KeyID, sKeyID);
         } catch (PKCS11Exception e) {
             throw new InvalidKeyException("wrap() failed", e);
         } finally {
+            p11Key.releaseKeyID();
+            sKey.releaseKeyID();
             token.releaseSession(s);
         }
     }
@@ -518,6 +546,7 @@
         } else {
             Session s = null;
             SecretKey secretKey = null;
+            long p11KeyID = p11Key.getKeyID();
             try {
                 try {
                     s = token.getObjSession();
@@ -528,9 +557,10 @@
                         };
                     attributes = token.getAttributes(
                             O_IMPORT, CKO_SECRET_KEY, keyType, attributes);
+
                     long keyID = token.p11.C_UnwrapKey(s.id(),
-                            new CK_MECHANISM(mechanism), p11Key.keyID,
-                            wrappedKey, attributes);
+                                    new CK_MECHANISM(mechanism), p11KeyID,
+                                    wrappedKey, attributes);
                     secretKey = P11Key.secretKey(s, keyID,
                             algorithm, 48 << 3, attributes);
                 } catch (PKCS11Exception e) {
@@ -554,6 +584,7 @@
 
                 return secretKey;
             } finally {
+                p11Key.releaseKeyID();
                 token.releaseSession(s);
             }
         }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java	Tue Jan 22 09:43:38 2019 -0500
@@ -263,7 +263,12 @@
                 new CK_ATTRIBUTE(CKA_MODULUS),
                 new CK_ATTRIBUTE(CKA_PUBLIC_EXPONENT),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
             KeySpec spec = new RSAPublicKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger()
@@ -289,7 +294,13 @@
                 new CK_ATTRIBUTE(CKA_EXPONENT_2),
                 new CK_ATTRIBUTE(CKA_COEFFICIENT),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
+
             KeySpec spec = new RSAPrivateCrtKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger(),
@@ -307,7 +318,13 @@
                 new CK_ATTRIBUTE(CKA_MODULUS),
                 new CK_ATTRIBUTE(CKA_PRIVATE_EXPONENT),
             };
-            token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes);
+            long keyID = key.getKeyID();
+            try {
+                token.p11.C_GetAttributeValue(session[0].id(), keyID, attributes);
+            } finally {
+                key.releaseKeyID();
+            }
+
             KeySpec spec = new RSAPrivateKeySpec(
                 attributes[0].getBigInteger(),
                 attributes[1].getBigInteger()
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -146,20 +146,24 @@
             P11Key p11Key = (P11Key)key;
             if (p11Key.token == token) {
                 if (extraAttrs != null) {
+                    P11Key newP11Key = null;
                     Session session = null;
+                    long p11KeyID = p11Key.getKeyID();
                     try {
                         session = token.getObjSession();
                         long newKeyID = token.p11.C_CopyObject(session.id(),
-                                p11Key.keyID, extraAttrs);
-                        p11Key = (P11Key) (P11Key.secretKey(session,
+                            p11KeyID, extraAttrs);
+                        newP11Key = (P11Key) (P11Key.secretKey(session,
                                 newKeyID, p11Key.algorithm, p11Key.keyLength,
                                 extraAttrs));
                     } catch (PKCS11Exception p11e) {
                         throw new InvalidKeyException
                                 ("Cannot duplicate the PKCS11 key", p11e);
                     } finally {
+                        p11Key.releaseKeyID();
                         token.releaseSession(session);
                     }
+                    p11Key = newP11Key;
                 }
                 return p11Key;
             }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java	Tue Jan 22 09:43:38 2019 -0500
@@ -263,27 +263,33 @@
         }
     }
 
-    private void ensureInitialized() {
-        token.ensureValid();
-        if (initialized == false) {
-            initialize();
+    // reset the states to the pre-initialized values
+    private void reset(boolean doCancel) {
+
+        if (!initialized) {
+            return;
+        }
+        initialized = false;
+        try {
+            if (session == null) {
+                return;
+            }
+            if (doCancel && token.explicitCancel) {
+                cancelOperation();
+            }
+        } finally {
+            p11Key.releaseKeyID();
+            session = token.releaseSession(session);
         }
     }
 
     private void cancelOperation() {
+
         token.ensureValid();
-        if (initialized == false) {
-            return;
-        }
-        initialized = false;
-        if ((session == null) || (token.explicitCancel == false)) {
-            return;
-        }
         if (session.hasObjects() == false) {
             session = token.killSession(session);
             return;
-        }
-        try {
+        } else {
             // "cancel" operation by finishing it
             // XXX make sure all this always works correctly
             if (mode == M_SIGN) {
@@ -303,8 +309,8 @@
                     throw new ProviderException("cancel failed", e);
                 }
             } else { // M_VERIFY
+                byte[] signature;
                 try {
-                    byte[] signature;
                     if (keyAlgorithm.equals("DSA")) {
                         signature = new byte[40];
                     } else {
@@ -322,31 +328,48 @@
                         token.p11.C_Verify(session.id(), digest, signature);
                     }
                 } catch (PKCS11Exception e) {
-                    // will fail since the signature is incorrect
-                    // XXX check error code
+                    long errorCode = e.getErrorCode();
+                    if ((errorCode == CKR_SIGNATURE_INVALID) ||
+                        (errorCode == CKR_SIGNATURE_LEN_RANGE)) {
+                        // expected since signature is incorrect
+                        return;
+                    }
+                    throw new ProviderException("cancel failed", e);
                 }
             }
-        } finally {
-            session = token.releaseSession(session);
+        }
+    }
+
+    private void ensureInitialized() {
+
+        if (!initialized) {
+            initialize();
         }
     }
 
     // assumes current state is initialized == false
     private void initialize() {
+
+        if (p11Key == null) {
+            throw new ProviderException(
+                    "Operation cannot be performed without " +
+                    "calling engineInit first");
+        }
+        long keyID = p11Key.getKeyID();
         try {
+            token.ensureValid();
             if (session == null) {
                 session = token.getOpSession();
             }
             if (mode == M_SIGN) {
                 token.p11.C_SignInit(session.id(),
-                        new CK_MECHANISM(mechanism), p11Key.keyID);
+                        new CK_MECHANISM(mechanism), keyID);
             } else {
                 token.p11.C_VerifyInit(session.id(),
-                        new CK_MECHANISM(mechanism), p11Key.keyID);
+                        new CK_MECHANISM(mechanism), keyID);
             }
-            initialized = true;
         } catch (PKCS11Exception e) {
-            // release session when initialization failed
+            p11Key.releaseKeyID();
             session = token.releaseSession(session);
             throw new ProviderException("Initialization failed", e);
         }
@@ -356,6 +379,7 @@
                 md.reset();
             }
         }
+        initialized = true;
     }
 
     private void checkKeySize(String keyAlgo, Key key)
@@ -444,6 +468,7 @@
     @Override
     protected void engineInitVerify(PublicKey publicKey)
             throws InvalidKeyException {
+
         if (publicKey == null) {
             throw new InvalidKeyException("Key must not be null");
         }
@@ -451,7 +476,7 @@
         if (publicKey != p11Key) {
             checkKeySize(keyAlgorithm, publicKey);
         }
-        cancelOperation();
+        reset(true);
         mode = M_VERIFY;
         p11Key = P11KeyFactory.convertKey(token, publicKey, keyAlgorithm);
         initialize();
@@ -461,6 +486,7 @@
     @Override
     protected void engineInitSign(PrivateKey privateKey)
             throws InvalidKeyException {
+
         if (privateKey == null) {
             throw new InvalidKeyException("Key must not be null");
         }
@@ -468,7 +494,7 @@
         if (privateKey != p11Key) {
             checkKeySize(keyAlgorithm, privateKey);
         }
-        cancelOperation();
+        reset(true);
         mode = M_SIGN;
         p11Key = P11KeyFactory.convertKey(token, privateKey, keyAlgorithm);
         initialize();
@@ -503,6 +529,7 @@
     @Override
     protected void engineUpdate(byte[] b, int ofs, int len)
             throws SignatureException {
+
         ensureInitialized();
         if (len == 0) {
             return;
@@ -521,8 +548,7 @@
                 }
                 bytesProcessed += len;
             } catch (PKCS11Exception e) {
-                initialized = false;
-                session = token.releaseSession(session);
+                reset(false);
                 throw new ProviderException(e);
             }
             break;
@@ -546,6 +572,7 @@
     // see JCA spec
     @Override
     protected void engineUpdate(ByteBuffer byteBuffer) {
+
         ensureInitialized();
         int len = byteBuffer.remaining();
         if (len <= 0) {
@@ -571,8 +598,7 @@
                 bytesProcessed += len;
                 byteBuffer.position(ofs + len);
             } catch (PKCS11Exception e) {
-                initialized = false;
-                session = token.releaseSession(session);
+                reset(false);
                 throw new ProviderException("Update failed", e);
             }
             break;
@@ -589,6 +615,7 @@
             bytesProcessed += len;
             break;
         default:
+            reset(false);
             throw new ProviderException("Internal error");
         }
     }
@@ -596,7 +623,9 @@
     // see JCA spec
     @Override
     protected byte[] engineSign() throws SignatureException {
+
         ensureInitialized();
+        boolean doCancel = true;
         try {
             byte[] signature;
             if (type == T_UPDATE) {
@@ -633,6 +662,8 @@
                     signature = token.p11.C_Sign(session.id(), data);
                 }
             }
+            doCancel = false;
+
             if (keyAlgorithm.equals("RSA")) {
                 return signature;
             } else {
@@ -643,20 +674,21 @@
                 }
             }
         } catch (PKCS11Exception pe) {
+            doCancel = false;
             throw new ProviderException(pe);
         } catch (SignatureException | ProviderException e) {
-            cancelOperation();
             throw e;
         } finally {
-            initialized = false;
-            session = token.releaseSession(session);
+            reset(doCancel);
         }
     }
 
     // see JCA spec
     @Override
     protected boolean engineVerify(byte[] signature) throws SignatureException {
+
         ensureInitialized();
+        boolean doCancel = true;
         try {
             if (!p1363Format) {
                 if (keyAlgorithm.equals("DSA")) {
@@ -698,8 +730,10 @@
                     token.p11.C_Verify(session.id(), data, signature);
                 }
             }
+            doCancel = false;
             return true;
         } catch (PKCS11Exception pe) {
+            doCancel = false;
             long errorCode = pe.getErrorCode();
             if (errorCode == CKR_SIGNATURE_INVALID) {
                 return false;
@@ -714,11 +748,9 @@
             }
             throw new ProviderException(pe);
         }  catch (SignatureException | ProviderException e) {
-            cancelOperation();
             throw e;
         } finally {
-            initialized = false;
-            session = token.releaseSession(session);
+            reset(doCancel);
         }
     }
 
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java	Tue Jan 22 09:43:38 2019 -0500
@@ -189,8 +189,13 @@
             attributes = token.getAttributes
                 (O_GENERATE, CKO_SECRET_KEY, keyType, attributes);
             // the returned keyID is a dummy, ignore
-            token.p11.C_DeriveKey(session.id(),
-                ckMechanism, p11Key.keyID, attributes);
+            long p11KeyID = p11Key.getKeyID();
+            try {
+                token.p11.C_DeriveKey(session.id(),
+                        ckMechanism, p11KeyID, attributes);
+            } finally {
+                p11Key.releaseKeyID();
+            }
 
             CK_SSL3_KEY_MAT_OUT out = null;
             if (params instanceof CK_SSL3_KEY_MAT_PARAMS) {
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java	Tue Jan 22 09:43:38 2019 -0500
@@ -160,12 +160,13 @@
             ckMechanism = new CK_MECHANISM(mechanism, params);
         }
         Session session = null;
+        long p11KeyID = p11Key.getKeyID();
         try {
             session = token.getObjSession();
             CK_ATTRIBUTE[] attributes = token.getAttributes(O_GENERATE,
                 CKO_SECRET_KEY, CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]);
             long keyID = token.p11.C_DeriveKey(session.id(),
-                    ckMechanism, p11Key.keyID, attributes);
+                    ckMechanism, p11KeyID, attributes);
             int major, minor;
             if (ckVersion == null) {
                 major = -1;
@@ -174,12 +175,12 @@
                 major = ckVersion.major;
                 minor = ckVersion.minor;
             }
-            SecretKey key = P11Key.masterSecretKey(session, keyID,
+            return P11Key.masterSecretKey(session, keyID,
                 "TlsMasterSecret", 48 << 3, attributes, major, minor);
-            return key;
         } catch (Exception e) {
             throw new ProviderException("Could not generate key", e);
         } finally {
+            p11Key.releaseKeyID();
             token.releaseSession(session);
         }
     }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java	Tue Jan 22 09:43:38 2019 -0500
@@ -146,34 +146,36 @@
                         Functions.getHashMechId(spec.getPRFHashAlg()),
                         spec.getOutputLength(), ulServerOrClient);
                 Session session = null;
+                long keyID = p11Key.getKeyID();
                 try {
                     session = token.getOpSession();
                     token.p11.C_SignInit(session.id(),
-                            new CK_MECHANISM(mechanism, params), p11Key.keyID);
+                            new CK_MECHANISM(mechanism, params), keyID);
                     token.p11.C_SignUpdate(session.id(), 0, seed, 0, seed.length);
                     byte[] out = token.p11.C_SignFinal
                                         (session.id(), spec.getOutputLength());
-                    k = new SecretKeySpec(out, "TlsPrf");
+                    return new SecretKeySpec(out, "TlsPrf");
                 } catch (PKCS11Exception e) {
                     throw new ProviderException("Could not calculate PRF", e);
                 } finally {
+                    p11Key.releaseKeyID();
                     token.releaseSession(session);
                 }
             } else {
                 throw new ProviderException("Only Finished message authentication code"+
                                             " generation supported for TLS 1.2.");
             }
-            return k;
         }
 
         byte[] label = P11Util.getBytesUTF8(spec.getLabel());
 
         if (mechanism == CKM_NSS_TLS_PRF_GENERAL) {
             Session session = null;
+            long keyID = p11Key.getKeyID();
             try {
                 session = token.getOpSession();
                 token.p11.C_SignInit
-                    (session.id(), new CK_MECHANISM(mechanism), p11Key.keyID);
+                    (session.id(), new CK_MECHANISM(mechanism), keyID);
                 token.p11.C_SignUpdate(session.id(), 0, label, 0, label.length);
                 token.p11.C_SignUpdate(session.id(), 0, seed, 0, seed.length);
                 byte[] out = token.p11.C_SignFinal
@@ -182,6 +184,7 @@
             } catch (PKCS11Exception e) {
                 throw new ProviderException("Could not calculate PRF", e);
             } finally {
+                p11Key.releaseKeyID();
                 token.releaseSession(session);
             }
         }
@@ -192,15 +195,16 @@
         CK_TLS_PRF_PARAMS params = new CK_TLS_PRF_PARAMS(seed, label, out);
 
         Session session = null;
+        long keyID = p11Key.getKeyID();
         try {
             session = token.getOpSession();
-            long keyID = token.p11.C_DeriveKey(session.id(),
-                new CK_MECHANISM(mechanism, params), p11Key.keyID, null);
-            // ignore keyID, returned PRF bytes are in 'out'
+            token.p11.C_DeriveKey(session.id(),
+                new CK_MECHANISM(mechanism, params), keyID, null);
             return new SecretKeySpec(out, "TlsPrf");
         } catch (PKCS11Exception e) {
             throw new ProviderException("Could not calculate PRF", e);
         } finally {
+            p11Key.releaseKeyID();
             token.releaseSession(session);
         }
     }
--- a/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  */
 
 /* Copyright  (c) 2002 Graz University of Technology. All rights reserved.
@@ -1291,6 +1291,46 @@
  ******************************************************************************/
 
     /**
+     * getNativeKeyInfo gets the key object attributes and values as an opaque
+     * byte array to be used in createNativeKey method.
+     * (Key management)
+     *
+     * @param hSession the session's handle
+     * @param hKey key's handle
+     * @param hWrappingKey key handle for wrapping the extracted sensitive keys.
+     *        -1 if not used.
+     * @param pWrappingMech mechanism for wrapping the extracted sensitive keys
+     * @return an opaque byte array containing the key object attributes
+     *         and values
+     * @exception PKCS11Exception If an internal PKCS#11 function returns other
+     *            value than CKR_OK.
+     * @preconditions
+     * @postconditions
+     */
+    public native byte[] getNativeKeyInfo(long hSession, long hKey,
+            long hWrappingKey, CK_MECHANISM pWrappingMech) throws PKCS11Exception;
+
+    /**
+     * createNativeKey creates a key object with attributes and values
+     * specified by parameter as an opaque byte array.
+     * (Key management)
+     *
+     * @param hSession the session's handle
+     * @param keyInfo opaque byte array containing key object attributes
+     *        and values
+     * @param hWrappingKey key handle for unwrapping the extracted sensitive keys.
+     *        -1 if not used.
+     * @param pWrappingMech mechanism for unwrapping the extracted sensitive keys
+     * @return key object handle
+     * @exception PKCS11Exception If an internal PKCS#11 function returns other
+     *            value than CKR_OK.
+     * @preconditions
+     * @postconditions
+     */
+    public native long createNativeKey(long hSession, byte[] keyInfo,
+            long hWrappingKey, CK_MECHANISM pWrappingMech) throws PKCS11Exception;
+
+    /**
      * C_GenerateKey generates a secret key, creating a new key
      * object.
      * (Key management)
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_keymgmt.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_keymgmt.c	Tue Jan 22 09:43:38 2019 -0500
@@ -54,6 +54,444 @@
 
 #include "sun_security_pkcs11_wrapper_PKCS11.h"
 
+#ifdef P11_ENABLE_GETNATIVEKEYINFO
+
+#define CK_ATTRIBUTES_TEMPLATE_LENGTH (CK_ULONG)61U
+
+static CK_ATTRIBUTE ckpAttributesTemplate[CK_ATTRIBUTES_TEMPLATE_LENGTH] = {
+        {CKA_CLASS, 0, 0},
+        {CKA_TOKEN, 0, 0},
+        {CKA_PRIVATE, 0, 0},
+        {CKA_LABEL, 0, 0},
+        {CKA_APPLICATION, 0, 0},
+        {CKA_VALUE, 0, 0},
+        {CKA_OBJECT_ID, 0, 0},
+        {CKA_CERTIFICATE_TYPE, 0, 0},
+        {CKA_ISSUER, 0, 0},
+        {CKA_SERIAL_NUMBER, 0, 0},
+        {CKA_AC_ISSUER, 0, 0},
+        {CKA_OWNER, 0, 0},
+        {CKA_ATTR_TYPES, 0, 0},
+        {CKA_TRUSTED, 0, 0},
+        {CKA_KEY_TYPE, 0, 0},
+        {CKA_SUBJECT, 0, 0},
+        {CKA_ID, 0, 0},
+        {CKA_SENSITIVE, 0, 0},
+        {CKA_ENCRYPT, 0, 0},
+        {CKA_DECRYPT, 0, 0},
+        {CKA_WRAP, 0, 0},
+        {CKA_UNWRAP, 0, 0},
+        {CKA_SIGN, 0, 0},
+        {CKA_SIGN_RECOVER, 0, 0},
+        {CKA_VERIFY, 0, 0},
+        {CKA_VERIFY_RECOVER, 0, 0},
+        {CKA_DERIVE, 0, 0},
+        {CKA_START_DATE, 0, 0},
+        {CKA_END_DATE, 0, 0},
+        {CKA_MODULUS, 0, 0},
+        {CKA_MODULUS_BITS, 0, 0},
+        {CKA_PUBLIC_EXPONENT, 0, 0},
+        {CKA_PRIVATE_EXPONENT, 0, 0},
+        {CKA_PRIME_1, 0, 0},
+        {CKA_PRIME_2, 0, 0},
+        {CKA_EXPONENT_1, 0, 0},
+        {CKA_EXPONENT_2, 0, 0},
+        {CKA_COEFFICIENT, 0, 0},
+        {CKA_PRIME, 0, 0},
+        {CKA_SUBPRIME, 0, 0},
+        {CKA_BASE, 0, 0},
+        {CKA_PRIME_BITS, 0, 0},
+        {CKA_SUB_PRIME_BITS, 0, 0},
+        {CKA_VALUE_BITS, 0, 0},
+        {CKA_VALUE_LEN, 0, 0},
+        {CKA_EXTRACTABLE, 0, 0},
+        {CKA_LOCAL, 0, 0},
+        {CKA_NEVER_EXTRACTABLE, 0, 0},
+        {CKA_ALWAYS_SENSITIVE, 0, 0},
+        {CKA_KEY_GEN_MECHANISM, 0, 0},
+        {CKA_MODIFIABLE, 0, 0},
+        {CKA_ECDSA_PARAMS, 0, 0},
+        {CKA_EC_PARAMS, 0, 0},
+        {CKA_EC_POINT, 0, 0},
+        {CKA_SECONDARY_AUTH, 0, 0},
+        {CKA_AUTH_PIN_FLAGS, 0, 0},
+        {CKA_HW_FEATURE_TYPE, 0, 0},
+        {CKA_RESET_ON_INIT, 0, 0},
+        {CKA_HAS_RESET, 0, 0},
+        {CKA_VENDOR_DEFINED, 0, 0},
+        {CKA_NETSCAPE_DB, 0, 0},
+};
+
+/*
+ * Class:     sun_security_pkcs11_wrapper_PKCS11
+ * Method:    getNativeKeyInfo
+ * Signature: (JJJLsun/security/pkcs11/wrapper/CK_MECHANISM;)[B
+ * Parametermapping:                         *PKCS11*
+ * @param   jlong         jSessionHandle     CK_SESSION_HANDLE hSession
+ * @param   jlong         jKeyHandle         CK_OBJECT_HANDLE hObject
+ * @param   jlong         jWrappingKeyHandle CK_OBJECT_HANDLE hObject
+ * @param   jobject       jWrappingMech      CK_MECHANISM_PTR pMechanism
+ * @return  jbyteArray    jNativeKeyInfo     -
+ */
+JNIEXPORT jbyteArray JNICALL
+Java_sun_security_pkcs11_wrapper_PKCS11_getNativeKeyInfo
+    (JNIEnv *env, jobject obj, jlong jSessionHandle, jlong jKeyHandle,
+    jlong jWrappingKeyHandle, jobject jWrappingMech)
+{
+    jbyteArray returnValue = NULL;
+    CK_SESSION_HANDLE ckSessionHandle = jLongToCKULong(jSessionHandle);
+    CK_OBJECT_HANDLE ckObjectHandle = jLongToCKULong(jKeyHandle);
+    CK_ATTRIBUTE_PTR ckpAttributes = NULL;
+    CK_RV rv;
+    jbyteArray nativeKeyInfoArray = NULL;
+    jbyteArray nativeKeyInfoWrappedKeyArray = NULL;
+    jbyte* nativeKeyInfoArrayRaw = NULL;
+    jbyte* nativeKeyInfoWrappedKeyArrayRaw = NULL;
+    unsigned int sensitiveAttributePosition = (unsigned int)-1;
+    unsigned int i = 0U;
+    unsigned long totalDataSize = 0UL, attributesCount = 0UL;
+    unsigned long totalCkAttributesSize = 0UL, totalNativeKeyInfoArraySize = 0UL;
+    unsigned long* wrappedKeySizePtr = NULL;
+    jbyte* nativeKeyInfoArrayRawCkAttributes = NULL;
+    jbyte* nativeKeyInfoArrayRawCkAttributesPtr = NULL;
+    jbyte* nativeKeyInfoArrayRawDataPtr = NULL;
+    CK_MECHANISM ckMechanism;
+    char iv[16] = {0x0};
+    CK_ULONG ckWrappedKeyLength = 0U;
+    unsigned long* wrappedKeySizeWrappedKeyArrayPtr = NULL;
+    CK_BYTE_PTR wrappedKeyBufferPtr = NULL;
+    CK_FUNCTION_LIST_PTR ckpFunctions = getFunctionList(env, obj);
+    CK_OBJECT_CLASS class;
+    CK_KEY_TYPE keyType;
+    CK_BBOOL sensitive;
+    CK_BBOOL netscapeAttributeValueNeeded = CK_FALSE;
+    CK_ATTRIBUTE ckNetscapeAttributesTemplate[4];
+    ckNetscapeAttributesTemplate[0].type = CKA_CLASS;
+    ckNetscapeAttributesTemplate[1].type = CKA_KEY_TYPE;
+    ckNetscapeAttributesTemplate[2].type = CKA_SENSITIVE;
+    ckNetscapeAttributesTemplate[3].type = CKA_NETSCAPE_DB;
+    ckNetscapeAttributesTemplate[0].pValue = &class;
+    ckNetscapeAttributesTemplate[1].pValue = &keyType;
+    ckNetscapeAttributesTemplate[2].pValue = &sensitive;
+    ckNetscapeAttributesTemplate[3].pValue = 0;
+    ckNetscapeAttributesTemplate[0].ulValueLen = sizeof(class);
+    ckNetscapeAttributesTemplate[1].ulValueLen = sizeof(keyType);
+    ckNetscapeAttributesTemplate[2].ulValueLen = sizeof(sensitive);
+    ckNetscapeAttributesTemplate[3].ulValueLen = 0;
+
+    if (ckpFunctions == NULL) { goto cleanup; }
+
+    // If key is private and of DSA or EC type, NSS may require CKA_NETSCAPE_DB
+    // attribute to unwrap it.
+    rv = (*ckpFunctions->C_GetAttributeValue)(ckSessionHandle, ckObjectHandle,
+            ckNetscapeAttributesTemplate,
+            sizeof(ckNetscapeAttributesTemplate)/sizeof(CK_ATTRIBUTE));
+
+    if (rv == CKR_OK && class == CKO_PRIVATE_KEY &&
+            (keyType == CKK_EC || keyType == CKK_DSA) &&
+            sensitive == CK_TRUE &&
+            ckNetscapeAttributesTemplate[3].ulValueLen == CK_UNAVAILABLE_INFORMATION) {
+        // We cannot set the attribute through C_SetAttributeValue here
+        // because it might be read-only. However, we can add it to
+        // the extracted buffer.
+        netscapeAttributeValueNeeded = CK_TRUE;
+        TRACE0("DEBUG: override CKA_NETSCAPE_DB attr value to TRUE\n");
+    }
+
+    ckpAttributes = (CK_ATTRIBUTE_PTR)malloc(
+            CK_ATTRIBUTES_TEMPLATE_LENGTH * sizeof(CK_ATTRIBUTE));
+    if (ckpAttributes == NULL) {
+        throwOutOfMemoryError(env, 0);
+        goto cleanup;
+    }
+    memcpy(ckpAttributes, ckpAttributesTemplate,
+            CK_ATTRIBUTES_TEMPLATE_LENGTH * sizeof(CK_ATTRIBUTE));
+
+    // Get sizes for value buffers
+    // NOTE: may return an error code but length values are filled anyways
+    (*ckpFunctions->C_GetAttributeValue)(ckSessionHandle, ckObjectHandle,
+            ckpAttributes, CK_ATTRIBUTES_TEMPLATE_LENGTH);
+
+    for (i = 0; i < CK_ATTRIBUTES_TEMPLATE_LENGTH; i++) {
+        if ((ckpAttributes+i)->ulValueLen != CK_UNAVAILABLE_INFORMATION) {
+            totalDataSize += (ckpAttributes+i)->ulValueLen;
+            if ((ckpAttributes+i)->type == CKA_SENSITIVE) {
+                 sensitiveAttributePosition = attributesCount;
+                 TRACE0("DEBUG: GetNativeKeyInfo key is sensitive");
+            }
+            attributesCount++;
+        }
+    }
+
+    if (netscapeAttributeValueNeeded) {
+        attributesCount++;
+    }
+
+    // Allocate a single buffer to hold valid attributes and attribute's values
+    // Buffer structure: [ attributes-size, [ ... attributes ... ],
+    //                   values-size, [ ... values ... ], wrapped-key-size,
+    //                   [ ... wrapped-key ... ] ]
+    //     * sizes are expressed in bytes and data type is unsigned long
+    totalCkAttributesSize = attributesCount * sizeof(CK_ATTRIBUTE);
+    TRACE1("DEBUG: GetNativeKeyInfo attributesCount = %lu\n", attributesCount);
+    TRACE1("DEBUG: GetNativeKeyInfo sizeof CK_ATTRIBUTE = %lu\n", sizeof(CK_ATTRIBUTE));
+    TRACE1("DEBUG: GetNativeKeyInfo totalCkAttributesSize = %lu\n", totalCkAttributesSize);
+    TRACE1("DEBUG: GetNativeKeyInfo totalDataSize = %lu\n", totalDataSize);
+
+    totalNativeKeyInfoArraySize =
+            totalCkAttributesSize + sizeof(unsigned long) * 3 + totalDataSize;
+
+    TRACE1("DEBUG: GetNativeKeyInfo totalNativeKeyInfoArraySize = %lu\n", totalNativeKeyInfoArraySize);
+
+    nativeKeyInfoArray = (*env)->NewByteArray(env, totalNativeKeyInfoArraySize);
+    if (nativeKeyInfoArray == NULL) {
+        goto cleanup;
+    }
+
+    nativeKeyInfoArrayRaw = (*env)->GetByteArrayElements(env, nativeKeyInfoArray,
+            NULL);
+    if (nativeKeyInfoArrayRaw == NULL) {
+        goto cleanup;
+    }
+
+    wrappedKeySizePtr = (unsigned long*)(nativeKeyInfoArrayRaw +
+            sizeof(unsigned long)*2 + totalCkAttributesSize + totalDataSize);
+    memcpy(nativeKeyInfoArrayRaw, &totalCkAttributesSize, sizeof(unsigned long));
+
+    memcpy(nativeKeyInfoArrayRaw + sizeof(unsigned long) + totalCkAttributesSize,
+        &totalDataSize, sizeof(unsigned long));
+
+    memset(wrappedKeySizePtr, 0, sizeof(unsigned long));
+
+    nativeKeyInfoArrayRawCkAttributes = nativeKeyInfoArrayRaw +
+            sizeof(unsigned long);
+    nativeKeyInfoArrayRawCkAttributesPtr = nativeKeyInfoArrayRawCkAttributes;
+    nativeKeyInfoArrayRawDataPtr = nativeKeyInfoArrayRaw +
+            totalCkAttributesSize + sizeof(unsigned long) * 2;
+
+    for (i = 0; i < CK_ATTRIBUTES_TEMPLATE_LENGTH; i++) {
+        if ((ckpAttributes+i)->ulValueLen != CK_UNAVAILABLE_INFORMATION) {
+            (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).type =
+                    (ckpAttributes+i)->type;
+            (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).ulValueLen =
+                    (ckpAttributes+i)->ulValueLen;
+            if ((ckpAttributes+i)->ulValueLen != 0) {
+                (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).pValue =
+                        nativeKeyInfoArrayRawDataPtr;
+            } else {
+                (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).pValue = 0;
+            }
+            nativeKeyInfoArrayRawDataPtr +=
+                    (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).ulValueLen;
+            nativeKeyInfoArrayRawCkAttributesPtr += sizeof(CK_ATTRIBUTE);
+        }
+    }
+
+    TRACE0("DEBUG: GetNativeKeyInfo finished prepping nativeKeyInfoArray\n");
+
+    // Get attribute's values
+    rv = (*ckpFunctions->C_GetAttributeValue)(ckSessionHandle, ckObjectHandle,
+            (CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributes,
+            attributesCount);
+    if (ckAssertReturnValueOK(env, rv) != CK_ASSERT_OK) {
+        goto cleanup;
+    }
+
+    TRACE0("DEBUG: GetNativeKeyInfo 1st C_GetAttributeValue call passed\n");
+
+    if (netscapeAttributeValueNeeded) {
+        (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).type = CKA_NETSCAPE_DB;
+        // Value is not needed, public key is not used
+    }
+
+    if ((sensitiveAttributePosition != (unsigned int)-1) &&
+        *(CK_BBOOL*)(((CK_ATTRIBUTE_PTR)(((CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributes)
+                +sensitiveAttributePosition))->pValue) == CK_TRUE) {
+        // Key is sensitive. Need to extract it wrapped.
+        if (jWrappingKeyHandle != -1) {
+
+            jMechanismToCKMechanism(env, jWrappingMech, &ckMechanism);
+            rv = (*ckpFunctions->C_WrapKey)(ckSessionHandle, &ckMechanism,
+                    jLongToCKULong(jWrappingKeyHandle), ckObjectHandle,
+                    NULL_PTR, &ckWrappedKeyLength);
+            if (ckWrappedKeyLength != 0) {
+                // Allocate space for getting the wrapped key
+                nativeKeyInfoWrappedKeyArray = (*env)->NewByteArray(env,
+                        totalNativeKeyInfoArraySize + ckWrappedKeyLength);
+                if (nativeKeyInfoWrappedKeyArray == NULL) {
+                    goto cleanup;
+                }
+                nativeKeyInfoWrappedKeyArrayRaw =
+                        (*env)->GetByteArrayElements(env,
+                                nativeKeyInfoWrappedKeyArray, NULL);
+                if (nativeKeyInfoWrappedKeyArrayRaw == NULL) {
+                    goto cleanup;
+                }
+                memcpy(nativeKeyInfoWrappedKeyArrayRaw, nativeKeyInfoArrayRaw,
+                        totalNativeKeyInfoArraySize);
+                wrappedKeySizeWrappedKeyArrayPtr =
+                        (unsigned long*)(nativeKeyInfoWrappedKeyArrayRaw +
+                        sizeof(unsigned long)*2 + totalCkAttributesSize +
+                        totalDataSize);
+                memcpy(wrappedKeySizeWrappedKeyArrayPtr, &ckWrappedKeyLength, sizeof(unsigned long));
+                TRACE1("DEBUG: GetNativeKeyInfo 1st C_WrapKey wrappedKeyLength = %lu\n", ckWrappedKeyLength);
+
+                wrappedKeyBufferPtr =
+                        (unsigned char*)wrappedKeySizeWrappedKeyArrayPtr +
+                        sizeof(unsigned long);
+                rv = (*ckpFunctions->C_WrapKey)(ckSessionHandle, &ckMechanism,
+                        jLongToCKULong(jWrappingKeyHandle),ckObjectHandle,
+                        wrappedKeyBufferPtr, &ckWrappedKeyLength);
+                if (ckAssertReturnValueOK(env, rv) != CK_ASSERT_OK) {
+                    goto cleanup;
+                }
+                memcpy(wrappedKeySizeWrappedKeyArrayPtr, &ckWrappedKeyLength, sizeof(unsigned long));
+                TRACE1("DEBUG: GetNativeKeyInfo 2nd C_WrapKey wrappedKeyLength = %lu\n", ckWrappedKeyLength);
+            } else {
+                goto cleanup;
+            }
+        } else {
+            goto cleanup;
+        }
+        returnValue = nativeKeyInfoWrappedKeyArray;
+    } else {
+        returnValue = nativeKeyInfoArray;
+    }
+
+cleanup:
+    if (ckpAttributes != NULL) {
+        free(ckpAttributes);
+    }
+
+    if (nativeKeyInfoArrayRaw != NULL) {
+        (*env)->ReleaseByteArrayElements(env, nativeKeyInfoArray,
+                nativeKeyInfoArrayRaw, 0);
+    }
+
+    if (nativeKeyInfoWrappedKeyArrayRaw != NULL) {
+        (*env)->ReleaseByteArrayElements(env, nativeKeyInfoWrappedKeyArray,
+                nativeKeyInfoWrappedKeyArrayRaw, 0);
+    }
+
+    if (nativeKeyInfoArray != NULL && returnValue != nativeKeyInfoArray) {
+        (*env)->DeleteLocalRef(env, nativeKeyInfoArray);
+    }
+
+    if (nativeKeyInfoWrappedKeyArray != NULL
+            && returnValue != nativeKeyInfoWrappedKeyArray) {
+        (*env)->DeleteLocalRef(env, nativeKeyInfoWrappedKeyArray);
+    }
+
+    return returnValue;
+}
+#endif
+
+#ifdef P11_ENABLE_CREATENATIVEKEY
+/*
+ * Class:     sun_security_pkcs11_wrapper_PKCS11
+ * Method:    createNativeKey
+ * Signature: (J[BJLsun/security/pkcs11/wrapper/CK_MECHANISM;)J
+ * Parametermapping:                          *PKCS11*
+ * @param   jlong         jSessionHandle      CK_SESSION_HANDLE hSession
+ * @param   jbyteArray    jNativeKeyInfo      -
+ * @param   jlong         jWrappingKeyHandle  CK_OBJECT_HANDLE hObject
+ * @param   jobject       jWrappingMech       CK_MECHANISM_PTR pMechanism
+ * @return  jlong         jKeyHandle          CK_OBJECT_HANDLE hObject
+ */
+JNIEXPORT jlong JNICALL
+Java_sun_security_pkcs11_wrapper_PKCS11_createNativeKey
+    (JNIEnv *env, jobject obj, jlong jSessionHandle, jbyteArray jNativeKeyInfo,
+    jlong jWrappingKeyHandle, jobject jWrappingMech)
+{
+    CK_OBJECT_HANDLE ckObjectHandle;
+    CK_RV rv;
+    CK_SESSION_HANDLE ckSessionHandle = jLongToCKULong(jSessionHandle);
+    jbyte* nativeKeyInfoArrayRaw = NULL;
+    jlong jObjectHandle = 0L;
+    unsigned long totalCkAttributesSize = 0UL;
+    unsigned long nativeKeyInfoCkAttributesCount = 0UL;
+    jbyte* nativeKeyInfoArrayRawCkAttributes = NULL;
+    jbyte* nativeKeyInfoArrayRawCkAttributesPtr = NULL;
+    jbyte* nativeKeyInfoArrayRawDataPtr = NULL;
+    unsigned long totalDataSize = 0UL;
+    unsigned long* wrappedKeySizePtr = NULL;
+    unsigned int i = 0U;
+    CK_MECHANISM ckMechanism;
+    char iv[16] = {0x0};
+    CK_ULONG ckWrappedKeyLength = 0UL;
+    CK_FUNCTION_LIST_PTR ckpFunctions = getFunctionList(env, obj);
+
+    if (ckpFunctions == NULL) { goto cleanup; }
+
+    nativeKeyInfoArrayRaw =
+            (*env)->GetByteArrayElements(env, jNativeKeyInfo, NULL);
+    if (nativeKeyInfoArrayRaw == NULL) {
+        goto cleanup;
+    }
+
+    memcpy(&totalCkAttributesSize, nativeKeyInfoArrayRaw, sizeof(unsigned long));
+    TRACE1("DEBUG: createNativeKey totalCkAttributesSize = %lu\n", totalCkAttributesSize);
+    nativeKeyInfoCkAttributesCount = totalCkAttributesSize/sizeof(CK_ATTRIBUTE);
+    TRACE1("DEBUG: createNativeKey nativeKeyInfoCkAttributesCount = %lu\n", nativeKeyInfoCkAttributesCount);
+
+    nativeKeyInfoArrayRawCkAttributes = nativeKeyInfoArrayRaw +
+            sizeof(unsigned long);
+    nativeKeyInfoArrayRawCkAttributesPtr = nativeKeyInfoArrayRawCkAttributes;
+    nativeKeyInfoArrayRawDataPtr = nativeKeyInfoArrayRaw +
+            totalCkAttributesSize + sizeof(unsigned long) * 2;
+    memcpy(&totalDataSize, (nativeKeyInfoArrayRaw + totalCkAttributesSize + sizeof(unsigned long)),
+            sizeof(unsigned long));
+    TRACE1("DEBUG: createNativeKey totalDataSize = %lu\n", totalDataSize);
+
+    wrappedKeySizePtr = (unsigned long*)(nativeKeyInfoArrayRaw +
+            sizeof(unsigned long)*2 + totalCkAttributesSize + totalDataSize);
+
+    memcpy(&ckWrappedKeyLength, wrappedKeySizePtr, sizeof(unsigned long));
+    TRACE1("DEBUG: createNativeKey wrappedKeyLength = %lu\n", ckWrappedKeyLength);
+
+    for (i = 0; i < nativeKeyInfoCkAttributesCount; i++) {
+        if ((*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).ulValueLen
+                > 0) {
+            (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).pValue =
+                    nativeKeyInfoArrayRawDataPtr;
+        }
+        nativeKeyInfoArrayRawDataPtr +=
+                (*(CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributesPtr).ulValueLen;
+        nativeKeyInfoArrayRawCkAttributesPtr += sizeof(CK_ATTRIBUTE);
+    }
+
+    if (ckWrappedKeyLength == 0) {
+        // Not a wrapped key
+        rv = (*ckpFunctions->C_CreateObject)(ckSessionHandle,
+                (CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributes,
+                jLongToCKULong(nativeKeyInfoCkAttributesCount), &ckObjectHandle);
+    } else {
+        // Wrapped key
+        jMechanismToCKMechanism(env, jWrappingMech, &ckMechanism);
+        rv = (*ckpFunctions->C_UnwrapKey)(ckSessionHandle, &ckMechanism,
+                jLongToCKULong(jWrappingKeyHandle),
+                (CK_BYTE_PTR)(wrappedKeySizePtr + 1), ckWrappedKeyLength,
+                (CK_ATTRIBUTE_PTR)nativeKeyInfoArrayRawCkAttributes,
+                jLongToCKULong(nativeKeyInfoCkAttributesCount),
+                &ckObjectHandle);
+    }
+    if (ckAssertReturnValueOK(env, rv) != CK_ASSERT_OK) {
+        goto cleanup;
+    }
+
+    jObjectHandle = ckULongToJLong(ckObjectHandle);
+
+cleanup:
+
+    if (nativeKeyInfoArrayRaw != NULL) {
+        (*env)->ReleaseByteArrayElements(env, jNativeKeyInfo,
+                nativeKeyInfoArrayRaw, JNI_ABORT);
+    }
+
+    return jObjectHandle;
+}
+#endif
+
 #ifdef P11_ENABLE_C_GENERATEKEY
 /*
  * Class:     sun_security_pkcs11_wrapper_PKCS11
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h	Tue Jan 22 09:43:38 2019 -0500
@@ -548,6 +548,7 @@
 #define CKA_ALLOWED_MECHANISMS          (CKF_ARRAY_ATTRIBUTE|0x00000600)
 
 #define CKA_VENDOR_DEFINED     0x80000000
+#define CKA_NETSCAPE_DB        0xD5A0DB00
 
 
 /* CK_ATTRIBUTE is a structure that includes the type, length
--- a/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h	Tue Jan 22 09:43:38 2019 -0500
@@ -151,6 +151,8 @@
 #undef  P11_ENABLE_C_GETFUNCTIONSTATUS
 #undef  P11_ENABLE_C_CANCELFUNCTION
 #undef  P11_ENABLE_C_WAITFORSLOTEVENT
+#define P11_ENABLE_GETNATIVEKEYINFO
+#define P11_ENABLE_CREATENATIVEKEY
 
 /* include the platform dependent part of the header */
 #include "p11_md.h"
@@ -204,6 +206,8 @@
 #define ckULongToJSize(x)       ((jsize) x)
 #define unsignedIntToCKULong(x) ((CK_ULONG) x)
 
+//#define P11_DEBUG
+
 #ifdef P11_DEBUG
 #define TRACE0(s) { printf(s); fflush(stdout); }
 #define TRACE1(s, p1) { printf(s, p1); fflush(stdout); }
--- a/src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  */
 
 /* Copyright  (c) 2002 Graz University of Technology. All rights reserved.
@@ -75,18 +75,20 @@
  * Signature: (Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL Java_sun_security_pkcs11_wrapper_PKCS11_connect
-    (JNIEnv *env, jobject obj, jstring jPkcs11ModulePath, jstring jGetFunctionList)
+    (JNIEnv *env, jobject obj, jstring jPkcs11ModulePath,
+        jstring jGetFunctionList)
 {
     HINSTANCE hModule;
     CK_C_GetFunctionList C_GetFunctionList;
-    CK_RV rv;
+    CK_RV rv = CK_ASSERT_OK;
     ModuleData *moduleData;
     jobject globalPKCS11ImplementationReference;
-    LPVOID lpMsgBuf;
-    char *exceptionMessage;
+    LPVOID lpMsgBuf = NULL;
+    char *exceptionMessage = NULL;
     const char *getFunctionListStr;
 
-    const char *libraryNameStr = (*env)->GetStringUTFChars(env, jPkcs11ModulePath, 0);
+    const char *libraryNameStr = (*env)->GetStringUTFChars(env,
+            jPkcs11ModulePath, 0);
     TRACE1("DEBUG: connect to PKCS#11 module: %s ... ", libraryNameStr);
 
 
@@ -106,21 +108,24 @@
             0,
             NULL
         );
-        exceptionMessage = (char *) malloc(sizeof(char) * (strlen((LPTSTR) lpMsgBuf) + strlen(libraryNameStr) + 1));
+        exceptionMessage = (char *) malloc(sizeof(char) *
+                (strlen((LPTSTR) lpMsgBuf) + strlen(libraryNameStr) + 1));
+        if (exceptionMessage == NULL) {
+            throwOutOfMemoryError(env, 0);
+            goto cleanup;
+        }
         strcpy(exceptionMessage, (LPTSTR) lpMsgBuf);
         strcat(exceptionMessage, libraryNameStr);
         throwIOException(env, (LPTSTR) exceptionMessage);
-        /* Free the buffer. */
-        free(exceptionMessage);
-        LocalFree(lpMsgBuf);
-        return;
+        goto cleanup;
     }
 
     /*
      * Get function pointer to C_GetFunctionList
      */
     getFunctionListStr = (*env)->GetStringUTFChars(env, jGetFunctionList, 0);
-    C_GetFunctionList = (CK_C_GetFunctionList) GetProcAddress(hModule, getFunctionListStr);
+    C_GetFunctionList = (CK_C_GetFunctionList) GetProcAddress(hModule,
+            getFunctionListStr);
     (*env)->ReleaseStringUTFChars(env, jGetFunctionList, getFunctionListStr);
     if (C_GetFunctionList == NULL) {
         FormatMessage(
@@ -135,24 +140,37 @@
             NULL
         );
         throwIOException(env, (LPTSTR) lpMsgBuf);
-        /* Free the buffer. */
-        LocalFree( lpMsgBuf );
-        return;
+        goto cleanup;
     }
 
     /*
      * Get function pointers to all PKCS #11 functions
      */
     moduleData = (ModuleData *) malloc(sizeof(ModuleData));
+    if (moduleData == NULL) {
+        throwOutOfMemoryError(env, 0);
+        goto cleanup;
+    }
     moduleData->hModule = hModule;
     moduleData->applicationMutexHandler = NULL;
     rv = (C_GetFunctionList)(&(moduleData->ckFunctionListPtr));
     globalPKCS11ImplementationReference = (*env)->NewGlobalRef(env, obj);
     putModuleEntry(env, globalPKCS11ImplementationReference, moduleData);
 
-    (*env)->ReleaseStringUTFChars(env, jPkcs11ModulePath, libraryNameStr);
     TRACE0("FINISHED\n");
 
+cleanup:
+    /* Free up allocated buffers we no longer need */
+    if (lpMsgBuf != NULL) {
+        LocalFree( lpMsgBuf );
+    }
+    if (libraryNameStr != NULL) {
+        (*env)->ReleaseStringUTFChars(env, jPkcs11ModulePath, libraryNameStr);
+    }
+    if (exceptionMessage != NULL) {
+        free(exceptionMessage);
+    }
+
     if(ckAssertReturnValueOK(env, rv) != CK_ASSERT_OK) { return; }
 }
 
--- a/src/jdk.crypto.ec/share/classes/sun/security/ec/ECDHKeyAgreement.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/ECDHKeyAgreement.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -178,7 +178,7 @@
     @Override
     protected int engineGenerateSecret(byte[] sharedSecret, int
             offset) throws IllegalStateException, ShortBufferException {
-        if (offset + secretLen > sharedSecret.length) {
+        if (secretLen > sharedSecret.length - offset) {
             throw new ShortBufferException("Need " + secretLen
                 + " bytes, only " + (sharedSecret.length - offset)
                 + " available");
--- a/src/jdk.crypto.ec/share/classes/sun/security/ec/ECDSASignature.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.ec/share/classes/sun/security/ec/ECDSASignature.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -163,7 +163,7 @@
             if (len <= 0) {
                 return;
             }
-            if (offset + len >= precomputedDigest.length) {
+            if (len >= precomputedDigest.length - offset) {
                 offset = RAW_ECDSA_MAX + 1;
                 return;
             }
--- a/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CKeyStore.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CKeyStore.java	Tue Jan 22 09:43:38 2019 -0500
@@ -754,7 +754,8 @@
                     new KeyEntry(alias, null, certChain));
         } catch (Throwable e) {
             // Ignore the exception and skip this entry
-            // TODO - throw CertificateException?
+            // If e is thrown, remember to deal with it in
+            // native code.
         }
     }
 
@@ -781,7 +782,8 @@
                     certChain));
         } catch (Throwable e) {
             // Ignore the exception and skip this entry
-            // TODO - throw CertificateException?
+            // If e is thrown, remember to deal with it in
+            // native code.
         }
     }
 
@@ -809,10 +811,14 @@
             certCollection.addAll(c);
         } catch (CertificateException e) {
             // Ignore the exception and skip this certificate
-            // TODO - throw CertificateException?
-        } catch (Throwable te) {
+            // If e is thrown, remember to deal with it in
+            // native code.
+        }
+        catch (Throwable te)
+        {
             // Ignore the exception and skip this certificate
-            // TODO - throw CertificateException?
+            // If e is thrown, remember to deal with it in
+            // native code.
         }
     }
 
--- a/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -544,6 +544,15 @@
                     // Create ArrayList to store certs in each chain
                     jobject jArrayList =
                         env->NewObject(clazzArrayList, mNewArrayList);
+                    if (jArrayList == NULL) {
+                        __leave;
+                    }
+
+                    // Cleanup the previous allocated name
+                    if (pszNameString) {
+                        delete [] pszNameString;
+                        pszNameString = NULL;
+                    }
 
                     for (unsigned int j=0; j < rgpChain->cElement; j++)
                     {
@@ -582,6 +591,9 @@
 
                         // Allocate and populate byte array
                         jbyteArray byteArray = env->NewByteArray(cbCertEncoded);
+                        if (byteArray == NULL) {
+                            __leave;
+                        }
                         env->SetByteArrayRegion(byteArray, 0, cbCertEncoded,
                             (jbyte*) pbCertEncoded);
 
@@ -590,49 +602,67 @@
                         env->CallVoidMethod(obj, mGenCert, byteArray, jArrayList);
                     }
 
-                    PP("%s: %s", pszNameString, pCertContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId);
-                    if (bHasNoPrivateKey)
-                    {
-                        // Generate certificate chain and store into cert chain
-                        // collection
-                        env->CallVoidMethod(obj, mGenCertChain,
-                            env->NewStringUTF(pszNameString),
-                            jArrayList);
-                    }
-                    else
+                    // Usually pszNameString should be non-NULL. It's either
+                    // the friendly name or an element from the subject name
+                    // or SAN.
+                    if (pszNameString)
                     {
-                        if (hUserKey) {
-                            // Only accept RSA for CAPI
-                            DWORD dwData = CALG_RSA_KEYX;
-                            DWORD dwSize = sizeof(DWORD);
-                            ::CryptGetKeyParam(hUserKey, KP_ALGID, (BYTE*)&dwData, //deprecated
-                                    &dwSize, NULL);
-                            if ((dwData & ALG_TYPE_RSA) == ALG_TYPE_RSA)
-                            {
-                                // Generate RSA certificate chain and store into cert
-                                // chain collection
-                                env->CallVoidMethod(obj, mGenKeyAndCertChain,
-                                        1,
-                                        env->NewStringUTF(pszNameString),
-                                        (jlong) hCryptProv, (jlong) hUserKey,
-                                        dwPublicKeyLength, jArrayList);
+                        PP("%s: %s", pszNameString, pCertContext->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId);
+                        if (bHasNoPrivateKey)
+                        {
+                            // Generate certificate chain and store into cert chain
+                            // collection
+                            jstring name = env->NewStringUTF(pszNameString);
+                            if (name == NULL) {
+                                __leave;
                             }
-                        } else {
-                            // Only accept EC for CNG
-                            BYTE buffer[32];
-                            DWORD len = 0;
-                            if (::NCryptGetProperty(
-                                    hCryptProv, NCRYPT_ALGORITHM_PROPERTY,
-                                    (PBYTE)buffer, 32, &len, NCRYPT_SILENT_FLAG) == ERROR_SUCCESS) {
-                                if (buffer[0] == 'E' && buffer[2] == 'C'
-                                        && (dwPublicKeyLength == 256
-                                                || dwPublicKeyLength == 384
-                                                || dwPublicKeyLength == 521)) {
+                            env->CallVoidMethod(obj, mGenCertChain,
+                                name,
+                                jArrayList);
+                        }
+                        else
+                        {
+                            if (hUserKey) {
+                                // Only accept RSA for CAPI
+                                DWORD dwData = CALG_RSA_KEYX;
+                                DWORD dwSize = sizeof(DWORD);
+                                ::CryptGetKeyParam(hUserKey, KP_ALGID, (BYTE*)&dwData, //deprecated
+                                        &dwSize, NULL);
+                                if ((dwData & ALG_TYPE_RSA) == ALG_TYPE_RSA)
+                                {
+                                    // Generate RSA certificate chain and store into cert
+                                    // chain collection
+                                    jstring name = env->NewStringUTF(pszNameString);
+                                    if (name == NULL) {
+                                        __leave;
+                                    }
                                     env->CallVoidMethod(obj, mGenKeyAndCertChain,
-                                        0,
-                                        env->NewStringUTF(pszNameString),
-                                        (jlong) hCryptProv, 0,
-                                        dwPublicKeyLength, jArrayList);
+                                            1,
+                                            name,
+                                            (jlong) hCryptProv, (jlong) hUserKey,
+                                            dwPublicKeyLength, jArrayList);
+                                }
+                            } else {
+                                // Only accept EC for CNG
+                                BYTE buffer[32];
+                                DWORD len = 0;
+                                if (::NCryptGetProperty(
+                                        hCryptProv, NCRYPT_ALGORITHM_PROPERTY,
+                                        (PBYTE)buffer, 32, &len, NCRYPT_SILENT_FLAG) == ERROR_SUCCESS) {
+                                    if (buffer[0] == 'E' && buffer[2] == 'C'
+                                            && (dwPublicKeyLength == 256
+                                                    || dwPublicKeyLength == 384
+                                                    || dwPublicKeyLength == 521)) {
+                                        jstring name = env->NewStringUTF(pszNameString);
+                                        if (name == NULL) {
+                                            __leave;
+                                        }
+                                        env->CallVoidMethod(obj, mGenKeyAndCertChain,
+                                            0,
+                                            name,
+                                            (jlong) hCryptProv, 0,
+                                            dwPublicKeyLength, jArrayList);
+                                    }
                                 }
                             }
                         }
@@ -782,6 +812,9 @@
 
         // Create new byte array
         jbyteArray temp = env->NewByteArray(dwBufLen);
+        if (temp == NULL) {
+            __leave;
+        }
 
         // Copy data from native buffer
         env->SetByteArrayRegion(temp, 0, dwBufLen, pSignedHashBuffer);
@@ -900,6 +933,9 @@
 
         // Create new byte array
         jbyteArray temp = env->NewByteArray(jSignedHashSize);
+        if (temp == NULL) {
+            __leave;
+        }
 
         // Copy data from native buffer
         env->SetByteArrayRegion(temp, 0, jSignedHashSize, pSignedHashBuffer);
@@ -1417,6 +1453,9 @@
         }
 
         jCertAliasChars = env->GetStringChars(jCertAliasName, NULL);
+        if (jCertAliasChars == NULL) {
+            __leave;
+        }
         memcpy(pszCertAliasName, jCertAliasChars, size * sizeof(WCHAR));
         pszCertAliasName[size] = 0; // append the string terminator
 
@@ -1847,7 +1886,9 @@
         }
 
         // Create new byte array
-        result = env->NewByteArray(dwBufLen);
+        if ((result = env->NewByteArray(dwBufLen)) == NULL) {
+            __leave;
+        }
 
         // Copy data from native buffer to Java buffer
         env->SetByteArrayRegion(result, 0, dwBufLen, (jbyte*) pData);
@@ -1910,7 +1951,9 @@
         }
 
         // Create new byte array
-        blob = env->NewByteArray(dwBlobLen);
+        if ((blob = env->NewByteArray(dwBlobLen)) == NULL) {
+            __leave;
+        }
 
         // Copy data from native buffer to Java buffer
         env->SetByteArrayRegion(blob, 0, dwBlobLen, (jbyte*) pbKeyBlob);
@@ -1939,6 +1982,13 @@
     __try {
 
         jsize length = env->GetArrayLength(jKeyBlob);
+        jsize headerLength = sizeof(PUBLICKEYSTRUC) + sizeof(RSAPUBKEY);
+
+        if (length < headerLength) {
+            ThrowExceptionWithMessage(env, KEY_EXCEPTION, "Invalid BLOB");
+            __leave;
+        }
+
         if ((keyBlob = env->GetByteArrayElements(jKeyBlob, 0)) == NULL) {
             __leave;
         }
@@ -1965,7 +2015,9 @@
             exponentBytes[i] = ((BYTE*) &pRsaPubKey->pubexp)[j];
         }
 
-        exponent = env->NewByteArray(len);
+        if ((exponent = env->NewByteArray(len)) == NULL) {
+            __leave;
+        }
         env->SetByteArrayRegion(exponent, 0, len, exponentBytes);
     }
     __finally
@@ -1995,6 +2047,13 @@
     __try {
 
         jsize length = env->GetArrayLength(jKeyBlob);
+        jsize headerLength = sizeof(PUBLICKEYSTRUC) + sizeof(RSAPUBKEY);
+
+        if (length < headerLength) {
+            ThrowExceptionWithMessage(env, KEY_EXCEPTION, "Invalid BLOB");
+            __leave;
+        }
+
         if ((keyBlob = env->GetByteArrayElements(jKeyBlob, 0)) == NULL) {
             __leave;
         }
@@ -2011,19 +2070,25 @@
             (RSAPUBKEY *) (keyBlob + sizeof(PUBLICKEYSTRUC));
 
         int len = pRsaPubKey->bitlen / 8;
+        if (len < 0 || len > length - headerLength) {
+            ThrowExceptionWithMessage(env, KEY_EXCEPTION, "Invalid key length");
+            __leave;
+        }
+
         modulusBytes = new (env) jbyte[len];
         if (modulusBytes == NULL) {
             __leave;
         }
-        BYTE * pbModulus =
-            (BYTE *) (keyBlob + sizeof(PUBLICKEYSTRUC) + sizeof(RSAPUBKEY));
+        BYTE * pbModulus = (BYTE *) (keyBlob + headerLength);
 
         // convert from little-endian while copying from blob
         for (int i = 0, j = len - 1; i < len; i++, j--) {
             modulusBytes[i] = pbModulus[j];
         }
 
-        modulus = env->NewByteArray(len);
+        if ((modulus = env->NewByteArray(len)) == NULL) {
+            __leave;
+        }
         env->SetByteArrayRegion(modulus, 0, len, modulusBytes);
     }
     __finally
@@ -2240,7 +2305,9 @@
             }
         }
 
-        jBlob = env->NewByteArray(jBlobLength);
+        if ((jBlob = env->NewByteArray(jBlobLength)) == NULL) {
+            __leave;
+        }
         env->SetByteArrayRegion(jBlob, 0, jBlobLength, jBlobBytes);
 
     }
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -24,6 +24,7 @@
 
 #include <jni.h>
 #include "libproc.h"
+#include "proc_service.h"
 
 #include <elf.h>
 #include <sys/types.h>
@@ -241,10 +242,10 @@
 /*
  * Class:     sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal
  * Method:    attach0
- * Signature: (IZ)V
+ * Signature: (I)V
  */
-JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_attach0__IZ
-  (JNIEnv *env, jobject this_obj, jint jpid, jboolean is_in_container) {
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_attach0__I
+  (JNIEnv *env, jobject this_obj, jint jpid) {
 
   // For bitness checking, locate binary at /proc/jpid/exe
   char buf[PATH_MAX];
@@ -254,7 +255,7 @@
 
   char err_buf[200];
   struct ps_prochandle* ph;
-  if ((ph = Pgrab(jpid, err_buf, sizeof(err_buf), is_in_container)) == NULL) {
+  if ((ph = Pgrab(jpid, err_buf, sizeof(err_buf))) == NULL) {
     char msg[230];
     snprintf(msg, sizeof(msg), "Can't attach to the process: %s", err_buf);
     THROW_NEW_DEBUGGER_EXCEPTION(msg);
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/libproc.h	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/libproc.h	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -28,41 +28,10 @@
 #include <jni.h>
 #include <unistd.h>
 #include <stdint.h>
-#include "proc_service.h"
 
+#include <sys/procfs.h>
 #include <sys/ptrace.h>
 
-/************************************************************************************
-
-0. This is very minimal subset of Solaris libproc just enough for current application.
-Please note that the bulk of the functionality is from proc_service interface. This
-adds Pgrab__ and some missing stuff. We hide the difference b/w live process and core
-file by this interface.
-
-1. pthread_id unique in both NPTL & LinuxThreads. We store this in
-OSThread::_pthread_id in JVM code.
-
-2. All threads see the same pid when they call getpid() under NPTL.
-Threads receive different pid under LinuxThreads. We used to save the result of
-::getpid() call in OSThread::_thread_id. This way uniqueness of OSThread::_thread_id
-was lost under NPTL. Now, we store the result of ::gettid() call in
-OSThread::_thread_id. Because gettid returns actual pid of thread (lwp id), this is
-unique again. We therefore use OSThread::_thread_id as unique identifier.
-
-3. There is a unique LWP id under both thread libraries. libthread_db  maps pthread_id
-to its underlying lwp_id under both the thread libraries. thread_info.lwp_id stores
-lwp_id of the thread. The lwp id is nothing but the actual pid of clone'd processes. But
-unfortunately libthread_db does not work very well for core dumps. So, we get pthread_id
-only for processes. For core dumps, we don't use libthread_db at all (like gdb).
-
-4. ptrace operates on this LWP id under both the thread libraries. When we say 'pid' for
-ptrace call, we refer to lwp_id of the thread.
-
-5. for core file, we parse ELF files and read data from them. For processes we  use
-combination of ptrace and /proc calls.
-
-*************************************************************************************/
-
 
 #if defined(sparc) || defined(sparcv9) || defined(ppc64) || defined(ppc64le)
 #include <asm/ptrace.h>
@@ -87,7 +56,7 @@
 
 // attach to a process
 JNIEXPORT struct ps_prochandle* JNICALL
-Pgrab(pid_t pid, char* err_buf, size_t err_buf_len, bool is_in_container);
+Pgrab(pid_t pid, char* err_buf, size_t err_buf_len);
 
 // attach to a core dump
 JNIEXPORT struct ps_prochandle* JNICALL
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,8 +26,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <fcntl.h>
-#include <thread_db.h>
+#include <sys/procfs.h>
 #include "libproc_impl.h"
+#include "proc_service.h"
 
 #define SA_ALTROOT "SA_ALTROOT"
 
@@ -116,13 +117,6 @@
 init_libproc(bool debug) {
    // init debug mode
    _libsaproc_debug = debug;
-
-   // initialize the thread_db library
-   if (td_init() != TD_OK) {
-     print_debug("libthread_db's td_init failed\n");
-     return false;
-   }
-
    return true;
 }
 
@@ -256,7 +250,7 @@
 }
 
 // add a thread to ps_prochandle
-thread_info* add_thread_info(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id) {
+thread_info* add_thread_info(struct ps_prochandle* ph, lwpid_t lwp_id) {
    thread_info* newthr;
    if ( (newthr = (thread_info*) calloc(1, sizeof(thread_info))) == NULL) {
       print_debug("can't allocate memory for thread_info\n");
@@ -264,7 +258,6 @@
    }
 
    // initialize thread info
-   newthr->pthread_id = pthread_id;
    newthr->lwp_id = lwp_id;
 
    // add new thread to the list
@@ -295,64 +288,6 @@
     free(current_thr);
 }
 
-// struct used for client data from thread_db callback
-struct thread_db_client_data {
-   struct ps_prochandle* ph;
-   thread_info_callback callback;
-};
-
-// callback function for libthread_db
-static int thread_db_callback(const td_thrhandle_t *th_p, void *data) {
-  struct thread_db_client_data* ptr = (struct thread_db_client_data*) data;
-  td_thrinfo_t ti;
-  td_err_e err;
-
-  memset(&ti, 0, sizeof(ti));
-  err = td_thr_get_info(th_p, &ti);
-  if (err != TD_OK) {
-    print_debug("libthread_db : td_thr_get_info failed, can't get thread info\n");
-    return err;
-  }
-
-  print_debug("thread_db : pthread %d (lwp %d)\n", ti.ti_tid, ti.ti_lid);
-
-  if (ti.ti_state == TD_THR_UNKNOWN || ti.ti_state == TD_THR_ZOMBIE) {
-    print_debug("Skipping pthread %d (lwp %d)\n", ti.ti_tid, ti.ti_lid);
-    return TD_OK;
-  }
-
-  if (ptr->callback(ptr->ph, ti.ti_tid, ti.ti_lid) != true)
-    return TD_ERR;
-
-  return TD_OK;
-}
-
-// read thread_info using libthread_db
-bool read_thread_info(struct ps_prochandle* ph, thread_info_callback cb) {
-  struct thread_db_client_data mydata;
-  td_thragent_t* thread_agent = NULL;
-  if (td_ta_new(ph, &thread_agent) != TD_OK) {
-     print_debug("can't create libthread_db agent\n");
-     return false;
-  }
-
-  mydata.ph = ph;
-  mydata.callback = cb;
-
-  // we use libthread_db iterator to iterate thru list of threads.
-  if (td_ta_thr_iter(thread_agent, thread_db_callback, &mydata,
-                 TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
-                 TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS) != TD_OK) {
-     td_ta_delete(thread_agent);
-     return false;
-  }
-
-  // delete thread agent
-  td_ta_delete(thread_agent);
-  return true;
-}
-
-
 // get number of threads
 int get_num_threads(struct ps_prochandle* ph) {
    return ph->num_threads;
@@ -484,9 +419,3 @@
   return PS_OK;
 }
 
-// new libthread_db of NPTL seem to require this symbol
-JNIEXPORT ps_err_e JNICALL
-ps_get_thread_area() {
-  print_debug("ps_get_thread_area not implemented\n");
-  return PS_OK;
-}
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.h	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.h	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -46,7 +46,6 @@
 // list of threads
 typedef struct thread_info {
    lwpid_t                  lwp_id;
-   pthread_t                pthread_id; // not used cores, always -1
    struct user_regs_struct  regs;       // not for process, core uses for caching regset
    struct thread_info*      next;
 } thread_info;
@@ -108,11 +107,6 @@
 void print_error(const char* format,...);
 bool is_debug();
 
-typedef bool (*thread_info_callback)(struct ps_prochandle* ph, pthread_t pid, lwpid_t lwpid);
-
-// reads thread info using libthread_db and calls above callback for each thread
-bool read_thread_info(struct ps_prochandle* ph, thread_info_callback cb);
-
 // deletes a thread from the thread list
 void delete_thread_info(struct ps_prochandle* ph, thread_info* thr);
 
@@ -124,7 +118,7 @@
                           uintptr_t base);
 
 // adds a new thread to threads list, returns NULL on failure
-thread_info* add_thread_info(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id);
+thread_info* add_thread_info(struct ps_prochandle* ph, lwpid_t lwp_id);
 
 // a test for ELF signature without using libelf
 bool is_elf_file(int fd);
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/proc_service.h	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/proc_service.h	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -26,12 +26,10 @@
 #define _PROC_SERVICE_H_
 
 #include <stdio.h>
-#include <thread_db.h>
+#include <sys/procfs.h>
 #include "jni.h"
+#include "libproc.h"
 
-// Linux does not have the proc service library, though it does provide the
-// thread_db library which can be used to manipulate threads without having
-// to know the details of NPTL
 
 // copied from Solaris "proc_service.h"
 typedef enum {
@@ -79,8 +77,4 @@
 JNIEXPORT ps_err_e JNICALL
 ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid, prgregset_t gregset);
 
-// new libthread_db of NPTL seem to require this symbol
-JNIEXPORT ps_err_e JNICALL
-ps_get_thread_area();
-
 #endif /* _PROC_SERVICE_H_ */
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -31,6 +31,7 @@
 #include <elf.h>
 #include <link.h>
 #include "libproc_impl.h"
+#include "proc_service.h"
 #include "salibelf.h"
 #include "cds.h"
 
@@ -510,8 +511,7 @@
    prstatus_t* prstat = (prstatus_t*) buf;
    thread_info* newthr;
    print_debug("got integer regset for lwp %d\n", prstat->pr_pid);
-   // we set pthread_t to -1 for core dump
-   if((newthr = add_thread_info(ph, (pthread_t) -1,  prstat->pr_pid)) == NULL)
+   if((newthr = add_thread_info(ph, prstat->pr_pid)) == NULL)
       return false;
 
    // copy regs
--- a/src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -339,11 +339,6 @@
    return rslt;
 }
 
-// callback for read_thread_info
-static bool add_new_thread(struct ps_prochandle* ph, pthread_t pthread_id, lwpid_t lwp_id) {
-  return add_thread_info(ph, pthread_id, lwp_id) != NULL;
-}
-
 static bool read_lib_info(struct ps_prochandle* ph) {
   char fname[32];
   char buf[PATH_MAX];
@@ -443,7 +438,7 @@
 
 // attach to the process. One and only one exposed stuff
 JNIEXPORT struct ps_prochandle* JNICALL
-Pgrab(pid_t pid, char* err_buf, size_t err_buf_len, bool is_in_container) {
+Pgrab(pid_t pid, char* err_buf, size_t err_buf_len) {
   struct ps_prochandle* ph = NULL;
   thread_info* thr = NULL;
   attach_state_t attach_status = ATTACH_SUCCESS;
@@ -464,6 +459,7 @@
 
   // initialize ps_prochandle
   ph->pid = pid;
+  add_thread_info(ph, ph->pid);
 
   // initialize vtable
   ph->ops = &process_ops;
@@ -473,33 +469,30 @@
   // the list of threads within the same process.
   read_lib_info(ph);
 
-  // read thread info
-  if (is_in_container) {
-    /*
-     * If the process is running in the container, SA scans all tasks in
-     * /proc/<PID>/task to read all threads info.
-     */
-    char taskpath[PATH_MAX];
-    DIR *dirp;
-    struct dirent *entry;
+  /*
+   * Read thread info.
+   * SA scans all tasks in /proc/<PID>/task to read all threads info.
+   */
+  char taskpath[PATH_MAX];
+  DIR *dirp;
+  struct dirent *entry;
 
-    snprintf(taskpath, PATH_MAX, "/proc/%d/task", ph->pid);
-    dirp = opendir(taskpath);
-    int lwp_id;
-    while ((entry = readdir(dirp)) != NULL) {
-      if (*entry->d_name == '.') {
-        continue;
-      }
-      lwp_id = atoi(entry->d_name);
-      if (lwp_id == ph->pid) {
-        continue;
-      }
-      add_new_thread(ph, -1, lwp_id);
+  snprintf(taskpath, PATH_MAX, "/proc/%d/task", ph->pid);
+  dirp = opendir(taskpath);
+  int lwp_id;
+  while ((entry = readdir(dirp)) != NULL) {
+    if (*entry->d_name == '.') {
+      continue;
     }
-    closedir(dirp);
-  } else {
-    read_thread_info(ph, add_new_thread);
+    lwp_id = atoi(entry->d_name);
+    if (lwp_id == ph->pid) {
+      continue;
+    }
+    if (!process_doesnt_exist(lwp_id)) {
+      add_thread_info(ph, lwp_id);
+    }
   }
+  closedir(dirp);
 
   // attach to the threads
   thr = ph->threads;
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -102,7 +102,7 @@
     private native static void init0()
                                 throws DebuggerException;
     private native void setSAAltRoot0(String altroot);
-    private native void attach0(int pid, boolean isInContainer)
+    private native void attach0(int pid)
                                 throws DebuggerException;
     private native void attach0(String execName, String coreName)
                                 throws DebuggerException;
@@ -321,9 +321,8 @@
 
         class AttachTask implements WorkerThreadTask {
            int pid;
-           boolean isInContainer;
            public void doit(LinuxDebuggerLocal debugger) {
-              debugger.attach0(pid, isInContainer);
+              debugger.attach0(pid);
               debugger.attached = true;
               debugger.isCore = false;
               findABIVersion();
@@ -332,7 +331,6 @@
 
         AttachTask task = new AttachTask();
         task.pid = processID;
-        task.isInContainer = (processID != NSpid);
         workerThread.execute(task);
     }
 
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64Assembler.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64Assembler.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -1759,6 +1759,14 @@
         emitOperandHelper(dst, src, 0);
     }
 
+    public final void cmpb(Register dst, Register src) {
+        CMP.byteRmOp.emit(this, BYTE, dst, src);
+    }
+
+    public final void cmpw(Register dst, Register src) {
+        CMP.rmOp.emit(this, WORD, dst, src);
+    }
+
     public final void cmpl(Register dst, int imm32) {
         CMP.getMIOpcode(DWORD, isByte(imm32)).emit(this, DWORD, dst, imm32);
     }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayIndexOfOp.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayIndexOfOp.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -125,6 +125,14 @@
         return kind == JavaKind.Char;
     }
 
+    private JavaKind getComparisonKind() {
+        return findTwoConsecutive ? (byteMode(kind) ? JavaKind.Char : JavaKind.Int) : kind;
+    }
+
+    private AVXKind.AVXSize getVectorSize() {
+        return AVXKind.getDataSize(vectorKind);
+    }
+
     @Override
     public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler asm) {
         Register arrayPtr = asRegister(arrayPtrValue);
@@ -159,9 +167,6 @@
         Label retNotFound = new Label();
         Label end = new Label();
 
-        AVXKind.AVXSize vectorSize = AVXKind.getDataSize(vectorKind);
-        int nVectors = nValues == 1 ? 4 : nValues == 2 ? 2 : 1;
-
         // load array length
         // important: this must be the first register manipulation, since arrayLengthValue is
         // annotated with @Use
@@ -178,10 +183,10 @@
         }
         // fill comparison vector with copies of the search value
         for (int i = 0; i < nValues; i++) {
-            emitBroadcast(asm, findTwoConsecutive ? (byteMode(kind) ? JavaKind.Char : JavaKind.Int) : kind, vecCmp[i], vecArray[0], vectorSize);
+            emitBroadcast(asm, getComparisonKind(), vecCmp[i], vecArray[0], getVectorSize());
         }
 
-        emitArrayIndexOfChars(crb, asm, kind, vectorSize, result, slotsRemaining, searchValue, vecCmp, vecArray, cmpResult, retFound, retNotFound, vmPageSize, nValues, nVectors, findTwoConsecutive);
+        emitArrayIndexOfChars(crb, asm, result, slotsRemaining, searchValue, vecCmp, vecArray, cmpResult, retFound, retNotFound);
 
         // return -1 (no match)
         asm.bind(retNotFound);
@@ -197,7 +202,7 @@
         asm.bind(end);
     }
 
-    private static void emitArrayIndexOfChars(CompilationResultBuilder crb, AMD64MacroAssembler asm, JavaKind kind, AVXKind.AVXSize vectorSize,
+    private void emitArrayIndexOfChars(CompilationResultBuilder crb, AMD64MacroAssembler asm,
                     Register arrayPtr,
                     Register slotsRemaining,
                     Register[] searchValue,
@@ -205,11 +210,10 @@
                     Register[] vecArray,
                     Register[] cmpResult,
                     Label retFound,
-                    Label retNotFound,
-                    int vmPageSize,
-                    int nValues,
-                    int nVectors,
-                    boolean findTwoCharPrefix) {
+                    Label retNotFound) {
+        int nVectors = nValues == 1 ? 4 : nValues == 2 ? 2 : 1;
+        AVXKind.AVXSize vectorSize = getVectorSize();
+
         Label bulkVectorLoop = new Label();
         Label singleVectorLoop = new Label();
         Label[] vectorFound = {
@@ -229,7 +233,7 @@
         int bulkLoopCondition = bulkSize;
         int[] vectorOffsets;
         JavaKind vectorCompareKind = kind;
-        if (findTwoCharPrefix) {
+        if (findTwoConsecutive) {
             singleVectorLoopCondition++;
             bulkLoopCondition++;
             bulkSize /= 2;
@@ -274,7 +278,7 @@
         emitAlign(crb, asm);
         asm.bind(bulkVectorLoop);
         // memory-aligned bulk comparison
-        emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, nVectors, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, vectorFound, !findTwoCharPrefix);
+        emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, nVectors, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, vectorFound, !findTwoConsecutive);
         // adjust number of array slots remaining
         asm.subl(slotsRemaining, bulkSize);
         // adjust array pointer
@@ -293,7 +297,7 @@
             asm.cmpl(slotsRemaining, singleVectorLoopCondition);
             asm.jcc(AMD64Assembler.ConditionFlag.Below, lessThanVectorSizeRemaining);
             // compare
-            emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, findTwoCharPrefix ? 2 : 1, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, vectorFound, false);
+            emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, findTwoConsecutive ? 2 : 1, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, vectorFound, false);
             // adjust number of array slots remaining
             asm.subl(slotsRemaining, arraySlotsPerVector);
             // adjust array pointer
@@ -313,16 +317,16 @@
         asm.movl(tmpArrayPtrLow, arrayPtr);
         // check if pointer + vector size would cross the page boundary
         asm.andl(tmpArrayPtrLow, (vmPageSize - 1));
-        asm.cmpl(tmpArrayPtrLow, (vmPageSize - (findTwoCharPrefix ? bytesPerVector + kind.getByteCount() : bytesPerVector)));
+        asm.cmpl(tmpArrayPtrLow, (vmPageSize - (findTwoConsecutive ? bytesPerVector + kind.getByteCount() : bytesPerVector)));
         // if the page boundary would be crossed, do byte/character-wise comparison instead.
         asm.jccb(AMD64Assembler.ConditionFlag.Above, lessThanVectorSizeRemainingLoop);
 
         Label[] overBoundsMatch = {new Label(), new Label()};
         // otherwise, do a vector compare that reads beyond array bounds
-        emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, findTwoCharPrefix ? 2 : 1, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, overBoundsMatch, false);
+        emitVectorCompare(asm, vectorCompareKind, vectorSize, nValues, findTwoConsecutive ? 2 : 1, vectorOffsets, arrayPtr, vecCmp, vecArray, cmpResult, overBoundsMatch, false);
         // no match
         asm.jmp(retNotFound);
-        if (findTwoCharPrefix) {
+        if (findTwoConsecutive) {
             Label overBoundsFinish = new Label();
             asm.bind(overBoundsMatch[1]);
             // get match offset of second result
@@ -348,14 +352,14 @@
         }
         // check if offset of matched value is greater than number of bytes remaining / out of array
         // bounds
-        if (findTwoCharPrefix) {
+        if (findTwoConsecutive) {
             asm.decrementl(slotsRemaining);
         }
         asm.cmpl(cmpResult[0], slotsRemaining);
         // match is out of bounds, return no match
         asm.jcc(AMD64Assembler.ConditionFlag.GreaterEqual, retNotFound);
         // adjust number of array slots remaining
-        if (findTwoCharPrefix) {
+        if (findTwoConsecutive) {
             asm.incrementl(slotsRemaining, 1);
         }
         asm.subl(slotsRemaining, cmpResult[0]);
@@ -365,17 +369,17 @@
         // compare remaining slots in the array one-by-one
         asm.bind(lessThanVectorSizeRemainingLoop);
         // check if enough array slots remain
-        asm.cmpl(slotsRemaining, findTwoCharPrefix ? 1 : 0);
+        asm.cmpl(slotsRemaining, findTwoConsecutive ? 1 : 0);
         asm.jcc(AMD64Assembler.ConditionFlag.LessEqual, retNotFound);
         // load char / byte
         if (byteMode(kind)) {
-            if (findTwoCharPrefix) {
+            if (findTwoConsecutive) {
                 asm.movzwl(cmpResult[0], new AMD64Address(arrayPtr));
             } else {
                 asm.movzbl(cmpResult[0], new AMD64Address(arrayPtr));
             }
         } else {
-            if (findTwoCharPrefix) {
+            if (findTwoConsecutive) {
                 asm.movl(cmpResult[0], new AMD64Address(arrayPtr));
             } else {
                 asm.movzwl(cmpResult[0], new AMD64Address(arrayPtr));
@@ -383,7 +387,7 @@
         }
         // check for match
         for (int i = 0; i < nValues; i++) {
-            asm.cmpl(cmpResult[0], searchValue[i]);
+            emitCompareInst(asm, getComparisonKind(), cmpResult[0], searchValue[i]);
             asm.jcc(AMD64Assembler.ConditionFlag.Equal, retFound);
         }
         // adjust number of array slots remaining
@@ -393,11 +397,11 @@
         // continue loop
         asm.jmpb(lessThanVectorSizeRemainingLoop);
 
-        for (int i = 1; i < nVectors; i += (findTwoCharPrefix ? 2 : 1)) {
+        for (int i = 1; i < nVectors; i += (findTwoConsecutive ? 2 : 1)) {
             emitVectorFoundWithOffset(asm, kind, vectorOffsets[i], arrayPtr, cmpResult[i], slotsRemaining, vectorFound[i], retFound);
         }
 
-        if (findTwoCharPrefix) {
+        if (findTwoConsecutive) {
             asm.bind(vectorFound[2]);
             asm.addq(arrayPtr, vectorOffsets[2]);
             // adjust number of array slots remaining
@@ -626,6 +630,23 @@
         }
     }
 
+    private static void emitCompareInst(AMD64MacroAssembler asm, JavaKind kind, Register dst, Register src) {
+        switch (kind) {
+            case Byte:
+                asm.cmpb(dst, src);
+                break;
+            case Short:
+            case Char:
+                asm.cmpw(dst, src);
+                break;
+            case Int:
+                asm.cmpl(dst, src);
+                break;
+            default:
+                asm.cmpq(dst, src);
+        }
+    }
+
     private static boolean supportsAVX2(LIRGeneratorTool tool) {
         return supports(tool, CPUFeature.AVX2);
     }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactExceptionTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactExceptionTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -86,6 +86,46 @@
         }
     }
 
+    public void testIntegerExactOverflowWithoutUse1(int input) {
+        Math.addExact(intCounter, input);
+    }
+
+    public void testIntegerExactOverflowWithoutUse2(int input, boolean cond) {
+        if (cond) {
+            Math.addExact(intCounter, input);
+        } else {
+            intCounter = Math.addExact(intCounter, input);
+        }
+    }
+
+    @Test
+    public void testIntegerExactWithoutUse1() throws InvalidInstalledCodeException {
+        ResolvedJavaMethod method = getResolvedJavaMethod("testIntegerExactOverflowWithoutUse1");
+        InstalledCode code = getCode(method);
+
+        boolean gotException = false;
+        try {
+            code.executeVarargs(this, Integer.MAX_VALUE);
+        } catch (ArithmeticException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    @Test
+    public void testIntegerExactWithoutUse2() throws InvalidInstalledCodeException {
+        ResolvedJavaMethod method = getResolvedJavaMethod("testIntegerExactOverflowWithoutUse2");
+        InstalledCode code = getCode(method);
+
+        boolean gotException = false;
+        try {
+            code.executeVarargs(this, Integer.MAX_VALUE, true);
+        } catch (ArithmeticException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
     static long longCounter = 10;
 
     public void testLongExactOverflowSnippet(long input) {
@@ -138,4 +178,44 @@
             assertTrue(code.isValid());
         }
     }
+
+    public void testLongExactOverflowWithoutUse1(long input) {
+        Math.addExact(longCounter, input);
+    }
+
+    public void testLongExactOverflowWithoutUse2(long input, boolean cond) {
+        if (cond) {
+            Math.addExact(longCounter, input);
+        } else {
+            longCounter = Math.addExact(longCounter, input);
+        }
+    }
+
+    @Test
+    public void testLongExactWithoutUse1() throws InvalidInstalledCodeException {
+        ResolvedJavaMethod method = getResolvedJavaMethod("testLongExactOverflowWithoutUse1");
+        InstalledCode code = getCode(method);
+
+        boolean gotException = false;
+        try {
+            code.executeVarargs(this, Long.MAX_VALUE);
+        } catch (ArithmeticException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
+
+    @Test
+    public void testLongExactWithoutUse2() throws InvalidInstalledCodeException {
+        ResolvedJavaMethod method = getResolvedJavaMethod("testLongExactOverflowWithoutUse2");
+        InstalledCode code = getCode(method);
+
+        boolean gotException = false;
+        try {
+            code.executeVarargs(this, Long.MAX_VALUE, true);
+        } catch (ArithmeticException e) {
+            gotException = true;
+        }
+        assertTrue(gotException);
+    }
 }
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactFoldTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactFoldTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -50,11 +50,13 @@
 import org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode;
 import org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode;
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+@Ignore
 @RunWith(Parameterized.class)
 public class IntegerExactFoldTest extends GraalCompilerTest {
     private final long lowerBoundA;
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java	Tue Jan 22 09:43:38 2019 -0500
@@ -559,26 +559,19 @@
         }
     }
 
-    private static void createIntegerExactOperation(GraphBuilderContext b, JavaKind kind, ValueNode x, ValueNode y, IntegerExactOp op) {
-        if (b.needsExplicitException()) {
+    private static boolean createIntegerExactOperation(GraphBuilderContext b, JavaKind kind, ValueNode x, ValueNode y, IntegerExactOp op) {
+        if (x.isConstant() && y.isConstant()) {
+            b.addPush(kind, createIntegerExactArithmeticNode(x, y, null, op));
+            return true;
+        } else {
             BytecodeExceptionKind exceptionKind = kind == JavaKind.Int ? BytecodeExceptionKind.INTEGER_EXACT_OVERFLOW : BytecodeExceptionKind.LONG_EXACT_OVERFLOW;
             AbstractBeginNode exceptionEdge = b.genExplicitExceptionEdge(exceptionKind);
-            IntegerExactArithmeticSplitNode split = b.addPush(kind, createIntegerExactSplit(x, y, exceptionEdge, op));
-            split.setNext(b.add(new BeginNode()));
-        } else {
-            SpeculationLog log = b.getGraph().getSpeculationLog();
-            if (log == null || (x.isConstant() && y.isConstant())) {
-                b.addPush(kind, createIntegerExactArithmeticNode(x, y, null, op));
-            } else {
-                SpeculationReason speculation = new IntegerExactOpSpeculation(b.getMethod(), op);
-                if (log.maySpeculate(speculation)) {
-                    b.addPush(kind, createIntegerExactArithmeticNode(x, y, speculation, op));
-                } else {
-                    BeginNode begin = b.add(new BeginNode());
-                    IntegerExactArithmeticNode node = (IntegerExactArithmeticNode) b.addPush(kind, createIntegerExactArithmeticNode(x, y, null, op));
-                    node.setAnchor(begin);
-                }
+            if (exceptionEdge != null) {
+                IntegerExactArithmeticSplitNode split = b.addPush(kind, createIntegerExactSplit(x, y, exceptionEdge, op));
+                split.setNext(b.add(new BeginNode()));
+                return true;
             }
+            return false;
         }
     }
 
@@ -592,8 +585,7 @@
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode x) {
                         ConstantNode y = b.add(ConstantNode.forIntegerKind(kind, 1));
-                        createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_DECREMENT_EXACT);
-                        return true;
+                        return createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_DECREMENT_EXACT);
                     }
                 });
 
@@ -601,33 +593,29 @@
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode x) {
                         ConstantNode y = b.add(ConstantNode.forIntegerKind(kind, 1));
-                        createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_INCREMENT_EXACT);
-                        return true;
+                        return createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_INCREMENT_EXACT);
                     }
                 });
 
                 r.register2("addExact", type, type, new InvocationPlugin() {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode x, ValueNode y) {
-                        createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_ADD_EXACT);
-                        return true;
+                        return createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_ADD_EXACT);
                     }
                 });
 
                 r.register2("subtractExact", type, type, new InvocationPlugin() {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode x, ValueNode y) {
-                        createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_SUBTRACT_EXACT);
-                        return true;
+                        return createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_SUBTRACT_EXACT);
                     }
                 });
 
                 r.register2("multiplyExact", type, type, new InvocationPlugin() {
                     @Override
                     public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode x, ValueNode y) {
-                        createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_MULTIPLY_EXACT);
-                        return true;
-                    }
+                        return createIntegerExactOperation(b, kind, x, y, IntegerExactOp.INTEGER_MULTIPLY_EXACT);
+                     }
                 });
             }
         }
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1030,31 +1030,31 @@
                 (hasExpiredTsaCert && !signerNotExpired)) {
 
             if (strict) {
-                result = rb.getString(isSigning
-                        ? "jar.signed.with.signer.errors."
-                        : "jar.verified.with.signer.errors.");
+                result = isSigning
+                        ? rb.getString("jar.signed.with.signer.errors.")
+                        : rb.getString("jar.verified.with.signer.errors.");
             } else {
-                result = rb.getString(isSigning
-                        ? "jar.signed."
-                        : "jar.verified.");
+                result = isSigning
+                        ? rb.getString("jar.signed.")
+                        : rb.getString("jar.verified.");
             }
 
             if (badKeyUsage) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing."
-                        : "This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.s.KeyUsage.extension.doesn.t.allow.code.signing."));
             }
 
             if (badExtendedKeyUsage) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing."
-                        : "This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.s.ExtendedKeyUsage.extension.doesn.t.allow.code.signing."));
             }
 
             if (badNetscapeCertType) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing."
-                        : "This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.s.NetscapeCertType.extension.doesn.t.allow.code.signing."));
             }
 
             // only in verifying
@@ -1063,20 +1063,20 @@
                         "This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked."));
             }
             if (hasExpiredCert) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.certificate.has.expired."
-                        : "This.jar.contains.entries.whose.signer.certificate.has.expired."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.certificate.has.expired.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.has.expired."));
             }
             if (notYetValidCert) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.certificate.is.not.yet.valid."
-                        : "This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.certificate.is.not.yet.valid.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.is.not.yet.valid."));
             }
 
             if (chainNotValidated) {
-                errors.add(String.format(rb.getString(isSigning
-                                ? "The.signer.s.certificate.chain.is.invalid.reason.1"
-                                : "This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1"),
+                errors.add(String.format(isSigning
+                                ? rb.getString("The.signer.s.certificate.chain.is.invalid.reason.1")
+                                : rb.getString("This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1"),
                         chainNotValidatedReason.getLocalizedMessage()));
             }
 
@@ -1084,9 +1084,9 @@
                 errors.add(rb.getString("The.timestamp.has.expired."));
             }
             if (tsaChainNotValidated) {
-                errors.add(String.format(rb.getString(isSigning
-                                ? "The.tsa.certificate.chain.is.invalid.reason.1"
-                                : "This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1"),
+                errors.add(String.format(isSigning
+                                ? rb.getString("The.tsa.certificate.chain.is.invalid.reason.1")
+                                : rb.getString("This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1"),
                         tsaChainNotValidatedReason.getLocalizedMessage()));
             }
 
@@ -1102,9 +1102,9 @@
             }
 
             if (signerSelfSigned) {
-                errors.add(rb.getString(isSigning
-                        ? "The.signer.s.certificate.is.self.signed."
-                        : "This.jar.contains.entries.whose.signer.certificate.is.self.signed."));
+                errors.add(isSigning
+                        ? rb.getString("The.signer.s.certificate.is.self.signed.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.is.self.signed."));
             }
 
             // weakAlg only detected in signing. The jar file is
@@ -1131,7 +1131,7 @@
                         privateKey.getAlgorithm(), KeyUtil.getKeySize(privateKey)));
             }
         } else {
-            result = rb.getString(isSigning ? "jar.signed." : "jar.verified.");
+            result = isSigning ? rb.getString("jar.signed.") : rb.getString("jar.verified.");
         }
 
         if (hasExpiredTsaCert) {
@@ -1155,9 +1155,9 @@
                 hasExpiredTsaCert = false;
             }
             if (hasExpiringCert) {
-                warnings.add(rb.getString(isSigning
-                        ? "The.signer.certificate.will.expire.within.six.months."
-                        : "This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months."));
+                warnings.add(isSigning
+                        ? rb.getString("The.signer.certificate.will.expire.within.six.months.")
+                        : rb.getString("This.jar.contains.entries.whose.signer.certificate.will.expire.within.six.months."));
             }
             if (hasExpiringTsaCert && expireDate != null) {
                 if (expireDate.after(tsaExpireDate)) {
@@ -1170,13 +1170,13 @@
             }
             if (noTimestamp && expireDate != null) {
                 if (hasTimestampBlock) {
-                    warnings.add(String.format(rb.getString(isSigning
-                            ? "invalid.timestamp.signing"
-                            : "bad.timestamp.verifying"), expireDate));
+                    warnings.add(String.format(isSigning
+                            ? rb.getString("invalid.timestamp.signing")
+                            : rb.getString("bad.timestamp.verifying"), expireDate));
                 } else {
-                    warnings.add(String.format(rb.getString(isSigning
-                            ? "no.timestamp.signing"
-                            : "no.timestamp.verifying"), expireDate));
+                    warnings.add(String.format(isSigning
+                            ? rb.getString("no.timestamp.signing")
+                            : rb.getString("no.timestamp.verifying"), expireDate));
                 }
             }
         }
@@ -1551,7 +1551,20 @@
 
         if (verbose != null) {
             builder.eventHandler((action, file) -> {
-                System.out.println(rb.getString("." + action + ".") + file);
+                switch (action) {
+                    case "signing":
+                        System.out.println(rb.getString(".signing.") + file);
+                        break;
+                    case "adding":
+                        System.out.println(rb.getString(".adding.") + file);
+                        break;
+                    case "updating":
+                        System.out.println(rb.getString(".updating.") + file);
+                        break;
+                    default:
+                        throw new IllegalArgumentException("unknown action: "
+                                + action);
+                }
             });
         }
 
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java	Tue Jan 22 09:43:38 2019 -0500
@@ -36,7 +36,6 @@
 
         // shared (from jarsigner)
         {"SPACE", " "},
-        {"2SPACE", "  "},
         {"6SPACE", "      "},
         {"COMMA", ", "},
 
@@ -196,7 +195,6 @@
                 "Certificate chain not found in the file specified."},
         {"found.non.X.509.certificate.in.signer.s.chain",
                 "found non-X.509 certificate in signer's chain"},
-        {"incomplete.certificate.chain", "incomplete certificate chain"},
         {"Enter.key.password.for.alias.", "Enter key password for {0}: "},
         {"unable.to.recover.key.from.keystore",
                 "unable to recover key from keystore"},
@@ -240,8 +238,6 @@
                 "This jar contains entries whose signer certificate is not yet valid. "},
         {"This.jar.contains.entries.whose.signer.certificate.is.self.signed.",
                 "This jar contains entries whose signer certificate is self-signed."},
-        {"Re.run.with.the.verbose.option.for.more.details.",
-                "Re-run with the -verbose option for more details."},
         {"Re.run.with.the.verbose.and.certs.options.for.more.details.",
                 "Re-run with the -verbose and -certs options for more details."},
         {"The.signer.certificate.has.expired.",
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Tue Jan 22 09:43:38 2019 -0500
@@ -25,16 +25,13 @@
 
 package jdk.javadoc.internal.doclets.formats.html;
 
-import com.sun.source.doctree.AttributeTree;
-import com.sun.source.doctree.AttributeTree.ValueKind;
 import com.sun.source.doctree.DocTree;
 import com.sun.source.doctree.EndElementTree;
 import com.sun.source.doctree.StartElementTree;
 import com.sun.source.doctree.TextTree;
 import com.sun.source.util.DocTreeFactory;
-import com.sun.source.util.SimpleDocTreeVisitor;
 import com.sun.tools.doclint.HtmlTag;
-import com.sun.tools.doclint.HtmlTag.Attr;
+import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.Navigation;
 import jdk.javadoc.internal.doclets.toolkit.Content;
@@ -184,16 +181,28 @@
         Content pkgLinkContent = docletWriter.getPackageLink(pkg, docletWriter.contents.packageLabel);
         navBar.setNavLinkPackage(pkgLinkContent);
         navBar.setUserHeader(docletWriter.getUserHeaderFooter(true));
-        htmlContent.addContent(navBar.getContent(true));
+        Content header = docletWriter.createTagIfAllowed(
+                jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag.HEADER, HtmlTree::HEADER,
+                ContentBuilder::new);
+        header.addContent(navBar.getContent(true));
+        htmlContent.addContent(header);
+
         List<? extends DocTree> fullBody = utils.getFullBody(dfElement);
         Content bodyContent = docletWriter.commentTagsToContent(null, dfElement, fullBody, false);
-
         docletWriter.addTagsInfo(dfElement, bodyContent);
-        htmlContent.addContent(bodyContent);
+        Content main = docletWriter.createTagIfAllowed(
+                jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag.MAIN, HtmlTree::MAIN,
+                ContentBuilder::new);
+        main.addContent(bodyContent);
+        htmlContent.addContent(main);
 
         navBar.setUserFooter(docletWriter.getUserHeaderFooter(false));
-        htmlContent.addContent(navBar.getContent(false));
-        docletWriter.addBottom(htmlContent);
+        Content footer = docletWriter.createTagIfAllowed(
+                jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag.FOOTER, HtmlTree::FOOTER,
+                ContentBuilder::new);
+        footer.addContent(navBar.getContent(false));
+        docletWriter.addBottom(footer);
+        htmlContent.addContent(footer);
         docletWriter.printHtmlDocument(Collections.emptyList(), false, localTagsContent, htmlContent);
     }
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -25,6 +25,8 @@
 
 package jdk.javadoc.internal.doclets.formats.html;
 
+import java.util.Collections;
+
 import jdk.javadoc.internal.doclets.formats.html.markup.Head;
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.DocType;
@@ -40,6 +42,8 @@
 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
 
+import java.util.Collections;
+
 /**
  * Writes a file that tries to redirect to an alternate page.
  * The redirect uses JavaScript, if enabled, falling back on
@@ -76,6 +80,7 @@
         Content htmlComment = contents.newPage;
         Head head = new Head(path, configuration.htmlVersion, configuration.docletVersion)
                 .setTimestamp(true)
+                .setStylesheets(configuration.getMainStylesheet(), Collections.emptyList()) // avoid reference to default stylesheet
                 .addDefaultScript(false);
 
         String title = (configuration.windowtitle.length() > 0)
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java	Tue Jan 22 09:43:38 2019 -0500
@@ -183,7 +183,7 @@
                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast);
         for (String pkgname: usingPackageToUsedClasses.keySet()) {
             PackageElement pkg = utils.elementUtils.getPackageElement(pkgname);
-            Content packageLink = links.createLink(utils.getPackageName(pkg),
+            Content packageLink = links.createLink(getPackageAnchorName(pkg),
                     new StringContent(utils.getPackageName(pkg)));
             Content summary = new ContentBuilder();
             if (pkg != null && !pkg.isUnnamed()) {
@@ -209,9 +209,7 @@
             PackageElement usingPackage = utils.elementUtils.getPackageElement(packageName);
             HtmlTree li = new HtmlTree(HtmlTag.LI);
             li.setStyle(HtmlStyle.blockList);
-            if (usingPackage != null) {
-                li.addContent(links.createAnchor(utils.getPackageName(usingPackage)));
-            }
+            li.addContent(links.createAnchor(getPackageAnchorName(usingPackage)));
             String tableSummary = resources.getText("doclet.Use_Table_Summary",
                                                         resources.getText("doclet.classes"));
             Content caption = contents.getContent(
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -45,6 +45,8 @@
 import javax.tools.Diagnostic.Kind;
 import javax.tools.DocumentationTool;
 
+import com.sun.tools.javac.code.Flags;
+import com.sun.tools.javac.code.Symbol.ModuleSymbol;
 import jdk.javadoc.doclet.Reporter;
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.Resources;
@@ -276,6 +278,12 @@
             ModuleElement moduleElement = utils.containingModule(packageElement);
             Map<String, Item> pkgMap = packageItems.get(utils.getModuleName(moduleElement));
             item = (pkgMap != null) ? pkgMap.get(utils.getPackageName(packageElement)) : null;
+            if (item == null && isAutomaticModule(moduleElement)) {
+                pkgMap = packageItems.get(utils.getModuleName(null));
+                if (pkgMap != null) {
+                    item = pkgMap.get(utils.getPackageName(packageElement));
+                }
+            }
         }
         return item;
     }
@@ -420,12 +428,25 @@
                             path), null);
                 }
             } else if (moduleName == null) {
-                throw new Fault(resources.getText("doclet.linkMismatch_ModuleLinkedtoPackage",
-                        path), null);
+                // suppress the error message in the case of automatic modules
+                if (!isAutomaticModule(me)) {
+                    throw new Fault(resources.getText("doclet.linkMismatch_ModuleLinkedtoPackage",
+                            path), null);
+                }
             }
         }
     }
 
+    // The following should be replaced by a new method such as Elements.isAutomaticModule
+    private boolean isAutomaticModule(ModuleElement me) {
+        if (me == null) {
+            return false;
+        } else {
+            ModuleSymbol msym = (ModuleSymbol) me;
+            return (msym.flags() & Flags.AUTOMATIC_MODULE) != 0;
+        }
+    }
+
     public boolean isUrl (String urlCandidate) {
         try {
             new URL(urlCandidate);
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java	Tue Jan 22 09:43:38 2019 -0500
@@ -185,7 +185,7 @@
             it.set(current);
         }
 
-        historyLoad = Instant.now();
+        historyLoad = Instant.MIN;
         loadHistory.forEach(line -> reader.getHistory().add(historyLoad, line));
 
         in = reader;
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipDirectoryStream.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipDirectoryStream.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -27,6 +27,7 @@
 
 import java.io.IOException;
 import java.nio.file.ClosedDirectoryStreamException;
+import java.nio.file.DirectoryIteratorException;
 import java.nio.file.DirectoryStream;
 import java.nio.file.NotDirectoryException;
 import java.nio.file.Path;
@@ -67,7 +68,7 @@
         try {
             itr = zipfs.iteratorOf(dir, filter);
         } catch (IOException e) {
-            throw new IllegalStateException(e);
+            throw new DirectoryIteratorException(e);
         }
 
         return new Iterator<Path>() {
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -423,16 +423,15 @@
             List<Path> list = new ArrayList<>();
             IndexNode child = inode.child;
             while (child != null) {
-                // (1) assume all path from zip file itself is "normalized"
+                // (1) Assume each path from the zip file itself is "normalized"
                 // (2) IndexNode.name is absolute. see IndexNode(byte[],int,int)
-                // (3) if parent "dir" is relative when ZipDirectoryStream
+                // (3) If parent "dir" is relative when ZipDirectoryStream
                 //     is created, the returned child path needs to be relative
                 //     as well.
                 byte[] cname = child.name;
-                if (!dir.isAbsolute()) {
-                    cname = Arrays.copyOfRange(cname, 1, cname.length);
-                }
-                ZipPath zpath = new ZipPath(this, cname, true);
+                ZipPath childPath = new ZipPath(this, cname, true);
+                ZipPath childFileName = childPath.getFileName();
+                ZipPath zpath = dir.resolve(childFileName);
                 if (filter == null || filter.accept(zpath))
                     list.add(zpath);
                 child = child.sibling;
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -92,8 +92,8 @@
             return null;
     }
 
-   @Override
-    public Path getFileName() {
+    @Override
+    public ZipPath getFileName() {
         int off = path.length;
         if (off == 0 || off == 1 && path[0] == '/')
             return null;
--- a/test/hotspot/gtest/gc/shared/test_ptrQueueBufferAllocator.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/gtest/gc/shared/test_ptrQueueBufferAllocator.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -24,14 +24,37 @@
 
 #include "precompiled.hpp"
 #include "gc/shared/ptrQueue.hpp"
-#include "runtime/mutex.hpp"
+#include "memory/allocation.hpp"
+#include "runtime/interfaceSupport.inline.hpp"
+#include "runtime/orderAccess.hpp"
+#include "runtime/semaphore.inline.hpp"
+#include "runtime/thread.hpp"
+#include "utilities/globalCounter.inline.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/ostream.hpp"
+#include "threadHelper.inline.hpp"
 #include "unittest.hpp"
 
+class BufferNode::TestSupport : AllStatic {
+public:
+  static bool try_transfer_pending(Allocator* allocator) {
+    return allocator->try_transfer_pending();
+  }
+
+  class CompletedList;
+  class AllocatorThread;
+  class ProcessorThread;
+};
+
+typedef BufferNode::TestSupport::CompletedList CompletedList;
+typedef BufferNode::TestSupport::AllocatorThread AllocatorThread;
+typedef BufferNode::TestSupport::ProcessorThread ProcessorThread;
+
 // Some basic testing of BufferNode::Allocator.
 TEST_VM(PtrQueueBufferAllocatorTest, test) {
-  Mutex m(Mutex::leaf, "PtrQueueBufferAllocatorTest",
-          false, Mutex::_safepoint_check_never);
-  BufferNode::Allocator allocator(256, &m);
+  const size_t buffer_size = 256;
+  BufferNode::Allocator allocator("Test Buffer Allocator", buffer_size);
+  ASSERT_EQ(buffer_size, allocator.buffer_size());
 
   // Allocate some new nodes for use in testing.
   BufferNode* nodes[10] = {};
@@ -44,8 +67,11 @@
 
   // Release the nodes, adding them to the allocator's free list.
   for (size_t i = 0; i < node_count; ++i) {
-    ASSERT_EQ(i, allocator.free_count());
     allocator.release(nodes[i]);
+  }
+  ASSERT_TRUE(BufferNode::TestSupport::try_transfer_pending(&allocator));
+  ASSERT_EQ(node_count, allocator.free_count());
+  for (size_t i = 0; i < node_count; ++i) {
     if (i == 0) {
       ASSERT_EQ((BufferNode*)NULL, nodes[i]->next());
     } else {
@@ -56,7 +82,6 @@
   // Allocate nodes from the free list.
   for (size_t i = 0; i < node_count; ++i) {
     size_t j = node_count - i;
-    ASSERT_EQ(j, allocator.free_count());
     ASSERT_EQ(nodes[j - 1], allocator.allocate());
   }
   ASSERT_EQ(0u, allocator.free_count());
@@ -65,11 +90,161 @@
   for (size_t i = 0; i < node_count; ++i) {
     allocator.release(nodes[i]);
   }
+  ASSERT_TRUE(BufferNode::TestSupport::try_transfer_pending(&allocator));
   ASSERT_EQ(node_count, allocator.free_count());
 
   // Destroy some nodes in the free list.
   // We don't have a way to verify destruction, but we can at
-  // leat verify we don't crash along the way.
-  allocator.reduce_free_list();
+  // least verify we don't crash along the way.
+  size_t count = allocator.free_count();
+  ASSERT_EQ(count, allocator.reduce_free_list(count));
   // destroy allocator.
 }
+
+// Stress test with lock-free allocator and completed buffer list.
+// Completed buffer list pop avoids ABA by also being in a critical
+// section that is synchronized by the allocator's release.
+
+class BufferNode::TestSupport::CompletedList {
+  BufferNode::Stack _completed_list;
+
+public:
+  CompletedList() : _completed_list() {}
+
+  ~CompletedList() {
+    assert(_completed_list.empty(), "completed list not empty");
+  }
+
+  void push(BufferNode* node) {
+    assert(node != NULL, "precondition");
+    _completed_list.push(*node);
+  }
+
+  BufferNode* pop() {
+    GlobalCounter::CriticalSection cs(Thread::current());
+    return _completed_list.pop();
+  }
+};
+
+// Simulate a mutator thread, allocating buffers and adding them to
+// the completed buffer list.
+class BufferNode::TestSupport::AllocatorThread : public JavaTestThread {
+  BufferNode::Allocator* _allocator;
+  CompletedList* _cbl;
+  volatile size_t* _total_allocations;
+  volatile bool* _continue_running;
+  size_t _allocations;
+
+public:
+  AllocatorThread(Semaphore* post,
+                  BufferNode::Allocator* allocator,
+                  CompletedList* cbl,
+                  volatile size_t* total_allocations,
+                  volatile bool* continue_running) :
+    JavaTestThread(post),
+    _allocator(allocator),
+    _cbl(cbl),
+    _total_allocations(total_allocations),
+    _continue_running(continue_running),
+    _allocations(0)
+  {}
+
+  virtual void main_run() {
+    while (OrderAccess::load_acquire(_continue_running)) {
+      BufferNode* node = _allocator->allocate();
+      _cbl->push(node);
+      ++_allocations;
+      ThreadBlockInVM tbiv(this); // Safepoint check.
+    }
+    tty->print_cr("allocations: " SIZE_FORMAT, _allocations);
+    Atomic::add(_allocations, _total_allocations);
+  }
+};
+
+// Simulate a GC thread, taking buffers from the completed buffer list
+// and returning them to the allocator.
+class BufferNode::TestSupport::ProcessorThread : public JavaTestThread {
+  BufferNode::Allocator* _allocator;
+  CompletedList* _cbl;
+  volatile bool* _continue_running;
+
+public:
+  ProcessorThread(Semaphore* post,
+                  BufferNode::Allocator* allocator,
+                  CompletedList* cbl,
+                  volatile bool* continue_running) :
+    JavaTestThread(post),
+    _allocator(allocator),
+    _cbl(cbl),
+    _continue_running(continue_running)
+  {}
+
+  virtual void main_run() {
+    while (true) {
+      BufferNode* node = _cbl->pop();
+      if (node != NULL) {
+        _allocator->release(node);
+      } else if (!OrderAccess::load_acquire(_continue_running)) {
+        return;
+      }
+      ThreadBlockInVM tbiv(this); // Safepoint check.
+    }
+  }
+};
+
+static void run_test(BufferNode::Allocator* allocator, CompletedList* cbl) {
+  const uint nthreads = 4;
+  const uint milliseconds_to_run = 1000;
+
+  Semaphore post;
+  volatile size_t total_allocations = 0;
+  volatile bool allocator_running = true;
+  volatile bool processor_running = true;
+
+  ProcessorThread* proc_threads[nthreads] = {};
+  for (uint i = 0; i < nthreads; ++i) {
+    proc_threads[i] = new ProcessorThread(&post,
+                                          allocator,
+                                          cbl,
+                                          &processor_running);
+    proc_threads[i]->doit();
+  }
+
+  AllocatorThread* alloc_threads[nthreads] = {};
+  for (uint i = 0; i < nthreads; ++i) {
+    alloc_threads[i] = new AllocatorThread(&post,
+                                           allocator,
+                                           cbl,
+                                           &total_allocations,
+                                           &allocator_running);
+    alloc_threads[i]->doit();
+  }
+
+  JavaThread* this_thread = JavaThread::current();
+  tty->print_cr("Stressing allocator for %u ms", milliseconds_to_run);
+  {
+    ThreadInVMfromNative invm(this_thread);
+    os::sleep(this_thread, milliseconds_to_run, true);
+  }
+  OrderAccess::release_store(&allocator_running, false);
+  for (uint i = 0; i < nthreads; ++i) {
+    ThreadInVMfromNative invm(this_thread);
+    post.wait_with_safepoint_check(this_thread);
+  }
+  OrderAccess::release_store(&processor_running, false);
+  for (uint i = 0; i < nthreads; ++i) {
+    ThreadInVMfromNative invm(this_thread);
+    post.wait_with_safepoint_check(this_thread);
+  }
+  ASSERT_TRUE(BufferNode::TestSupport::try_transfer_pending(allocator));
+  tty->print_cr("total allocations: " SIZE_FORMAT, total_allocations);
+  tty->print_cr("allocator free count: " SIZE_FORMAT, allocator->free_count());
+}
+
+const size_t buffer_size = 1024;
+
+TEST_VM(PtrQueueBufferAllocatorTest, stress_free_list_allocator) {
+  BufferNode::Allocator allocator("Test Allocator", buffer_size);
+  CompletedList completed;
+  run_test(&allocator, &completed);
+}
--- a/test/hotspot/gtest/threadHelper.inline.hpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/gtest/threadHelper.inline.hpp	Tue Jan 22 09:43:38 2019 -0500
@@ -26,7 +26,7 @@
 
 #include "runtime/mutex.hpp"
 #include "runtime/semaphore.hpp"
-#include "runtime/thread.hpp"
+#include "runtime/thread.inline.hpp"
 #include "runtime/vmThread.hpp"
 #include "runtime/vmOperations.hpp"
 #include "unittest.hpp"
--- a/test/hotspot/gtest/utilities/test_globalDefinitions.cpp	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/gtest/utilities/test_globalDefinitions.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -93,6 +93,61 @@
   }
 }
 
+TEST(globalDefinitions, proper_unit) {
+  EXPECT_EQ(0u,     byte_size_in_proper_unit(0u));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(0u));
+
+  EXPECT_EQ(1u,     byte_size_in_proper_unit(1u));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(1u));
+
+  EXPECT_EQ(1023u,  byte_size_in_proper_unit(K - 1));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(K - 1));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(K));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(K));
+
+  EXPECT_EQ(1025u,  byte_size_in_proper_unit(K + 1));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(K + 1));
+
+  EXPECT_EQ(51200u, byte_size_in_proper_unit(50*K));
+  EXPECT_STREQ("B", proper_unit_for_byte_size(50*K));
+
+  EXPECT_EQ(1023u,  byte_size_in_proper_unit(M - 1));
+  EXPECT_STREQ("K", proper_unit_for_byte_size(M - 1));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(M));
+  EXPECT_STREQ("K", proper_unit_for_byte_size(M));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(M + 1));
+  EXPECT_STREQ("K", proper_unit_for_byte_size(M + 1));
+
+  EXPECT_EQ(1025u,  byte_size_in_proper_unit(M + K));
+  EXPECT_STREQ("K", proper_unit_for_byte_size(M + K));
+
+  EXPECT_EQ(51200u, byte_size_in_proper_unit(50*M));
+  EXPECT_STREQ("K", proper_unit_for_byte_size(50*M));
+
+#ifdef _LP64
+  EXPECT_EQ(1023u,  byte_size_in_proper_unit(G - 1));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(G - 1));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(G));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(G));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(G + 1));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(G + 1));
+
+  EXPECT_EQ(1024u,  byte_size_in_proper_unit(G + K));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(G + K));
+
+  EXPECT_EQ(1025u,  byte_size_in_proper_unit(G + M));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(G + M));
+
+  EXPECT_EQ(51200u, byte_size_in_proper_unit(50*G));
+  EXPECT_STREQ("M", proper_unit_for_byte_size(50*G));
+#endif
+}
+
 TEST(globalDefinitions, exact_unit_for_byte_size) {
   EXPECT_STREQ("B", exact_unit_for_byte_size(0));
   EXPECT_STREQ("B", exact_unit_for_byte_size(1));
@@ -103,7 +158,7 @@
   EXPECT_STREQ("M", exact_unit_for_byte_size(M));
   EXPECT_STREQ("B", exact_unit_for_byte_size(M + 1));
   EXPECT_STREQ("K", exact_unit_for_byte_size(M + K));
-#ifdef LP64
+#ifdef _LP64
   EXPECT_STREQ("B", exact_unit_for_byte_size(G - 1));
   EXPECT_STREQ("G", exact_unit_for_byte_size(G));
   EXPECT_STREQ("B", exact_unit_for_byte_size(G + 1));
@@ -123,7 +178,7 @@
   EXPECT_EQ(1u, byte_size_in_exact_unit(M));
   EXPECT_EQ(M + 1, byte_size_in_exact_unit(M + 1));
   EXPECT_EQ(K + 1, byte_size_in_exact_unit(M + K));
-#ifdef LP64
+#ifdef _LP64
   EXPECT_EQ(G - 1, byte_size_in_exact_unit(G - 1));
   EXPECT_EQ(1u, byte_size_in_exact_unit(G));
   EXPECT_EQ(G + 1, byte_size_in_exact_unit(G + 1));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/gtest/utilities/test_lockFreeStack.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,306 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#include "precompiled.hpp"
+#include "memory/allocation.inline.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/orderAccess.hpp"
+#include "utilities/globalDefinitions.hpp"
+#include "utilities/lockFreeStack.hpp"
+#include "threadHelper.inline.hpp"
+#include "unittest.hpp"
+#include <new>
+
+class LockFreeStackTestElement {
+  typedef LockFreeStackTestElement Element;
+
+  Element* volatile _entry;
+  Element* volatile _entry1;
+  size_t _id;
+
+  static Element* volatile* entry_ptr(Element& e) { return &e._entry; }
+  static Element* volatile* entry1_ptr(Element& e) { return &e._entry1; }
+
+public:
+  LockFreeStackTestElement(size_t id = 0) : _entry(), _entry1(), _id(id) {}
+  size_t id() const { return _id; }
+  void set_id(size_t value) { _id = value; }
+
+  typedef LockFreeStack<Element, &entry_ptr> TestStack;
+  typedef LockFreeStack<Element, &entry1_ptr> TestStack1;
+};
+
+typedef LockFreeStackTestElement Element;
+typedef Element::TestStack TestStack;
+typedef Element::TestStack1 TestStack1;
+
+static void initialize_ids(Element* elements, size_t size) {
+  for (size_t i = 0; i < size; ++i) {
+    elements[i].set_id(i);
+  }
+}
+
+class LockFreeStackTestBasics : public ::testing::Test {
+public:
+  LockFreeStackTestBasics();
+
+  static const size_t nelements = 10;
+  Element elements[nelements];
+  TestStack stack;
+
+private:
+  void initialize();
+};
+
+const size_t LockFreeStackTestBasics::nelements;
+
+LockFreeStackTestBasics::LockFreeStackTestBasics() : stack() {
+  initialize_ids(elements, nelements);
+  initialize();
+}
+
+void LockFreeStackTestBasics::initialize() {
+  ASSERT_TRUE(stack.empty());
+  ASSERT_EQ(0u, stack.length());
+  ASSERT_TRUE(stack.pop() == NULL);
+  ASSERT_TRUE(stack.top() == NULL);
+
+  for (size_t id = 0; id < nelements; ++id) {
+    ASSERT_EQ(id, stack.length());
+    Element* e = &elements[id];
+    ASSERT_EQ(id, e->id());
+    stack.push(*e);
+    ASSERT_FALSE(stack.empty());
+    ASSERT_EQ(e, stack.top());
+  }
+}
+
+TEST_F(LockFreeStackTestBasics, push_pop) {
+  for (size_t i = nelements; i > 0; ) {
+    ASSERT_FALSE(stack.empty());
+    ASSERT_EQ(i, stack.length());
+    --i;
+    Element* e = stack.pop();
+    ASSERT_TRUE(e != NULL);
+    ASSERT_EQ(&elements[i], e);
+    ASSERT_EQ(i, e->id());
+  }
+  ASSERT_TRUE(stack.empty());
+  ASSERT_EQ(0u, stack.length());
+  ASSERT_TRUE(stack.pop() == NULL);
+}
+
+TEST_F(LockFreeStackTestBasics, prepend_one) {
+  TestStack other_stack;
+  ASSERT_TRUE(other_stack.empty());
+  ASSERT_TRUE(other_stack.pop() == NULL);
+  ASSERT_EQ(0u, other_stack.length());
+  ASSERT_TRUE(other_stack.top() == NULL);
+  ASSERT_TRUE(other_stack.pop() == NULL);
+
+  other_stack.prepend(*stack.pop_all());
+  ASSERT_EQ(nelements, other_stack.length());
+  ASSERT_TRUE(stack.empty());
+  ASSERT_EQ(0u, stack.length());
+  ASSERT_TRUE(stack.pop() == NULL);
+  ASSERT_TRUE(stack.top() == NULL);
+
+  for (size_t i = nelements; i > 0; ) {
+    ASSERT_EQ(i, other_stack.length());
+    --i;
+    Element* e = other_stack.pop();
+    ASSERT_TRUE(e != NULL);
+    ASSERT_EQ(&elements[i], e);
+    ASSERT_EQ(i, e->id());
+  }
+  ASSERT_EQ(0u, other_stack.length());
+  ASSERT_TRUE(other_stack.pop() == NULL);
+}
+
+TEST_F(LockFreeStackTestBasics, prepend_two) {
+  TestStack other_stack;
+  ASSERT_TRUE(other_stack.empty());
+  ASSERT_EQ(0u, other_stack.length());
+  ASSERT_TRUE(other_stack.top() == NULL);
+  ASSERT_TRUE(other_stack.pop() == NULL);
+
+  Element* top = stack.pop_all();
+  ASSERT_EQ(top, &elements[nelements - 1]);
+  other_stack.prepend(*top, elements[0]);
+
+  for (size_t i = nelements; i > 0; ) {
+    ASSERT_EQ(i, other_stack.length());
+    --i;
+    Element* e = other_stack.pop();
+    ASSERT_TRUE(e != NULL);
+    ASSERT_EQ(&elements[i], e);
+    ASSERT_EQ(i, e->id());
+  }
+  ASSERT_EQ(0u, other_stack.length());
+  ASSERT_TRUE(other_stack.pop() == NULL);
+}
+
+TEST_F(LockFreeStackTestBasics, two_stacks) {
+  TestStack1 stack1;
+  ASSERT_TRUE(stack1.pop() == NULL);
+
+  for (size_t id = 0; id < nelements; ++id) {
+    stack1.push(elements[id]);
+  }
+  ASSERT_EQ(nelements, stack1.length());
+  Element* e0 = stack.top();
+  Element* e1 = stack1.top();
+  while (true) {
+    ASSERT_EQ(e0, e1);
+    if (e0 == NULL) break;
+    e0 = stack.next(*e0);
+    e1 = stack1.next(*e1);
+  }
+
+  for (size_t i = nelements; i > 0; ) {
+    ASSERT_EQ(i, stack.length());
+    ASSERT_EQ(i, stack1.length());
+    --i;
+    Element* e = stack.pop();
+    ASSERT_TRUE(e != NULL);
+    ASSERT_EQ(&elements[i], e);
+    ASSERT_EQ(i, e->id());
+
+    Element* e1 = stack1.pop();
+    ASSERT_TRUE(e1 != NULL);
+    ASSERT_EQ(&elements[i], e1);
+    ASSERT_EQ(i, e1->id());
+
+    ASSERT_EQ(e, e1);
+  }
+  ASSERT_EQ(0u, stack.length());
+  ASSERT_EQ(0u, stack1.length());
+  ASSERT_TRUE(stack.pop() == NULL);
+  ASSERT_TRUE(stack1.pop() == NULL);
+}
+
+class LockFreeStackTestThread : public JavaTestThread {
+  uint _id;
+  TestStack* _from;
+  TestStack* _to;
+  volatile size_t* _processed;
+  size_t _process_limit;
+  size_t _local_processed;
+  volatile bool _ready;
+
+public:
+  LockFreeStackTestThread(Semaphore* post,
+                          uint id,
+                          TestStack* from,
+                          TestStack* to,
+                          volatile size_t* processed,
+                          size_t process_limit) :
+    JavaTestThread(post),
+    _id(id),
+    _from(from),
+    _to(to),
+    _processed(processed),
+    _process_limit(process_limit),
+    _local_processed(0),
+    _ready(false)
+  {}
+
+  virtual void main_run() {
+    OrderAccess::release_store_fence(&_ready, true);
+    while (true) {
+      Element* e = _from->pop();
+      if (e != NULL) {
+        _to->push(*e);
+        Atomic::inc(_processed);
+        ++_local_processed;
+      } else if (OrderAccess::load_acquire(_processed) == _process_limit) {
+        tty->print_cr("thread %u processed " SIZE_FORMAT, _id, _local_processed);
+        return;
+      }
+    }
+  }
+
+  bool ready() const { return OrderAccess::load_acquire(&_ready); }
+};
+
+TEST_VM(LockFreeStackTest, stress) {
+  Semaphore post;
+  TestStack initial_stack;
+  TestStack start_stack;
+  TestStack middle_stack;
+  TestStack final_stack;
+  volatile size_t stage1_processed = 0;
+  volatile size_t stage2_processed = 0;
+
+  const size_t nelements = 10000;
+  Element* elements = NEW_C_HEAP_ARRAY(Element, nelements, mtOther);
+  for (size_t id = 0; id < nelements; ++id) {
+    ::new (&elements[id]) Element(id);
+    initial_stack.push(elements[id]);
+  }
+  ASSERT_EQ(nelements, initial_stack.length());
+
+  // - stage1 threads pop from start_stack and push to middle_stack.
+  // - stage2 threads pop from middle_stack and push to final_stack.
+  // - all threads in a stage count the number of elements processed in
+  //   their corresponding stageN_processed counter.
+
+  const uint stage1_threads = 2;
+  const uint stage2_threads = 2;
+  const uint nthreads = stage1_threads + stage2_threads;
+  LockFreeStackTestThread* threads[nthreads] = {};
+
+  for (uint i = 0; i < ARRAY_SIZE(threads); ++i) {
+    TestStack* from = &start_stack;
+    TestStack* to = &middle_stack;
+    volatile size_t* processed = &stage1_processed;
+    if (i >= stage1_threads) {
+      from = &middle_stack;
+      to = &final_stack;
+      processed = &stage2_processed;
+    }
+    threads[i] =
+      new LockFreeStackTestThread(&post, i, from, to, processed, nelements);
+    threads[i]->doit();
+    while (!threads[i]->ready()) {} // Wait until ready to start test.
+  }
+
+  // Transfer elements to start_stack to start test.
+  start_stack.prepend(*initial_stack.pop_all());
+
+  // Wait for all threads to complete.
+  for (uint i = 0; i < nthreads; ++i) {
+    post.wait();
+  }
+
+  // Verify expected state.
+  ASSERT_EQ(nelements, stage1_processed);
+  ASSERT_EQ(nelements, stage2_processed);
+  ASSERT_EQ(0u, initial_stack.length());
+  ASSERT_EQ(0u, start_stack.length());
+  ASSERT_EQ(0u, middle_stack.length());
+  ASSERT_EQ(nelements, final_stack.length());
+  while (final_stack.pop() != NULL) {}
+
+  FREE_C_HEAP_ARRAY(Element, elements);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/gtest/utilities/test_waitBarrier.cpp	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 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.
+ */
+
+#include "precompiled.hpp"
+#include "runtime/atomic.hpp"
+#include "runtime/orderAccess.hpp"
+#include "runtime/os.hpp"
+#include "utilities/spinYield.hpp"
+#include "utilities/waitBarrier.hpp"
+#include "threadHelper.inline.hpp"
+
+static volatile int wait_tag = 0;
+static volatile int valid_value = 0;
+
+template <typename WaitBarrierImpl>
+class WBThread : public JavaTestThread {
+public:
+  static volatile bool _exit;
+  WaitBarrierType<WaitBarrierImpl>* _wait_barrier;
+  Semaphore* _wrt_start;
+  volatile int _on_barrier;
+
+  WBThread(Semaphore* post, WaitBarrierType<WaitBarrierImpl>* wb, Semaphore* wrt_start)
+    : JavaTestThread(post), _wait_barrier(wb), _wrt_start(wrt_start) {};
+  virtual ~WBThread(){}
+  void main_run() {
+    _wrt_start->signal();
+    int vv, tag;
+    // Similar to how a JavaThread would stop in a safepoint.
+    while (!_exit) {
+      // Load the published tag.
+      tag = OrderAccess::load_acquire(&wait_tag);
+      // Publish the tag this thread is going to wait for.
+      OrderAccess::release_store(&_on_barrier, tag);
+      if (_on_barrier == 0) {
+        SpinPause();
+        continue;
+      }
+      OrderAccess::storeload(); // Loads in WB must not float up.
+      // Wait until we are woken.
+      _wait_barrier->wait(tag);
+      // Verify that we do not see an invalid value.
+      vv = OrderAccess::load_acquire(&valid_value);
+      ASSERT_EQ((vv & 0x1), 0);
+      OrderAccess::release_store(&_on_barrier, 0);
+    }
+  }
+};
+
+template <typename WaitBarrierImpl>
+volatile bool WBThread<WaitBarrierImpl>::_exit = false;
+
+template <typename WaitBarrierImpl>
+class WBArmerThread : public JavaTestThread {
+public:
+  WBArmerThread(Semaphore* post) : JavaTestThread(post) {
+  };
+  virtual ~WBArmerThread(){}
+  void main_run() {
+    static const int NUMBER_OF_READERS = 4;
+    Semaphore post;
+    Semaphore wrt_start;
+    WaitBarrierType<WaitBarrierImpl> wb(this);
+
+    WBThread<WaitBarrierImpl>* reader1 = new WBThread<WaitBarrierImpl>(&post, &wb, &wrt_start);
+    WBThread<WaitBarrierImpl>* reader2 = new WBThread<WaitBarrierImpl>(&post, &wb, &wrt_start);
+    WBThread<WaitBarrierImpl>* reader3 = new WBThread<WaitBarrierImpl>(&post, &wb, &wrt_start);
+    WBThread<WaitBarrierImpl>* reader4 = new WBThread<WaitBarrierImpl>(&post, &wb, &wrt_start);
+
+    reader1->doit();
+    reader2->doit();
+    reader3->doit();
+    reader4->doit();
+
+    int nw = NUMBER_OF_READERS;
+    while (nw > 0) {
+      wrt_start.wait();
+      --nw;
+    }
+    jlong stop_ms = os::javaTimeMillis() + 1000; // 1 seconds max test time
+    int next_tag = 1;
+    // Similar to how the VM thread would use a WaitBarrier in a safepoint.
+    while (stop_ms > os::javaTimeMillis()) {
+      // Arm next tag.
+      wb.arm(next_tag);
+      // Publish tag.
+      OrderAccess::release_store_fence(&wait_tag, next_tag);
+
+      // Wait until threads picked up new tag.
+      while (reader1->_on_barrier != wait_tag ||
+             reader2->_on_barrier != wait_tag ||
+             reader3->_on_barrier != wait_tag ||
+             reader4->_on_barrier != wait_tag) {
+        SpinPause();
+      }
+
+      // Set an invalid value.
+      OrderAccess::release_store(&valid_value, valid_value + 1); // odd
+      os::naked_yield();
+      // Set a valid value.
+      OrderAccess::release_store(&valid_value, valid_value + 1); // even
+      // Publish inactive tag.
+      OrderAccess::release_store_fence(&wait_tag, 0); // Stores in WB must not float up.
+      wb.disarm();
+
+      // Wait until threads done valid_value verification.
+      while (reader1->_on_barrier != 0 ||
+             reader2->_on_barrier != 0 ||
+             reader3->_on_barrier != 0 ||
+             reader4->_on_barrier != 0) {
+        SpinPause();
+      }
+      ++next_tag;
+    }
+    WBThread<WaitBarrierImpl>::_exit = true;
+    for (int i = 0; i < NUMBER_OF_READERS; i++) {
+      post.wait();
+    }
+  }
+};
+
+TEST_VM(WaitBarrier, default_wb) {
+  WBThread<WaitBarrierDefault>::_exit = false;
+  mt_test_doer<WBArmerThread<WaitBarrierDefault> >();
+}
+
+#if defined(LINUX)
+TEST_VM(WaitBarrier, generic_wb) {
+  WBThread<GenericWaitBarrier>::_exit = false;
+  mt_test_doer<WBArmerThread<GenericWaitBarrier> >();
+}
+#endif
--- a/test/hotspot/jtreg/ProblemList-graal.txt	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Tue Jan 22 09:43:38 2019 -0500
@@ -167,5 +167,3 @@
 org.graalvm.compiler.replacements.test.StringCompressInflateTest 8213556
 
 org.graalvm.compiler.debug.test.TimerKeyTest                     8213598
-
-org.graalvm.compiler.hotspot.test.ExplicitExceptionTest          8213249
--- a/test/hotspot/jtreg/ProblemList.txt	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/ProblemList.txt	Tue Jan 22 09:43:38 2019 -0500
@@ -61,8 +61,6 @@
 
 compiler/runtime/Test8168712.java 8211769,8211771 generic-ppc64,generic-ppc64le,linux-s390x
 
-compiler/loopopts/PeelingZeroTripCount.java 8216135 generic-all
-
 #############################################################################
 
 # :hotspot_gc
@@ -85,7 +83,6 @@
 
 runtime/appcds/javaldr/GCSharedStringsDuringDump.java 8208778 macosx-x64
 runtime/appcds/javaldr/GCDuringDump.java 8208778 macosx-x64
-runtime/appcds/jigsaw/classpathtests/EmptyClassInBootClassPath.java 8213299 generic-all
 runtime/CompressedOops/UseCompressedOops.java 8079353 generic-all
 runtime/handshake/HandshakeWalkSuspendExitTest.java 8214174 generic-all
 runtime/RedefineTests/RedefineRunningMethods.java 8208778 macosx-x64
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/arguments/TestTraceICs.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8217447
+ * @summary Test running TraceICs enabled.
+ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+TraceICs
+ *                   compiler.arguments.TestTraceICs
+ */
+
+package compiler.arguments;
+
+public class TestTraceICs {
+
+    static public void main(String[] args) {
+        System.out.println("Passed");
+    }
+}
+
--- a/test/hotspot/jtreg/compiler/graalunit/README.md	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/compiler/graalunit/README.md	Tue Jan 22 09:43:38 2019 -0500
@@ -28,7 +28,7 @@
 by using "-e:TEST_IMAGE_GRAAL_DIR=..."
 
 Example:
-> jtreg -vt -jdk:<TESTED_JDK> -vmoptions:"-vmoptions:-Dgraalunit.libs=build/<platform>/images/test/hotspot/jtreg/graal"
+> jtreg -vt -jdk:<TESTED_JDK> -vmoptions:"-Dgraalunit.libs=build/<platform>/images/test/hotspot/jtreg/graal"
         compiler/graalunit/UtilTest.java
 
 To run Graal unit tests in Graal as JIT mode pass additional -vmoptions to jtreg:
--- a/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java	Tue Jan 22 09:43:38 2019 -0500
@@ -239,6 +239,8 @@
         javaFlags.add("-Djava.awt.headless=true");
         javaFlags.add("-esa");
         javaFlags.add("-ea");
+        // Make sure exception message is never null
+        javaFlags.add("-XX:-OmitStackTraceInFastThrow");
 
 
         // generate class path
--- a/test/hotspot/jtreg/compiler/interpreter/TestVerifyStackAfterDeopt.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/compiler/interpreter/TestVerifyStackAfterDeopt.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -28,6 +28,7 @@
  * @bug 8209825
  * @summary Checks VerifyStack after deoptimization of array allocation slow call
  * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:TieredStopAtLevel=1
+ *                   -XX:AllocatePrefetchLines=1 -XX:AllocateInstancePrefetchLines=1 -XX:AllocatePrefetchStepSize=16 -XX:AllocatePrefetchDistance=1
  *                   -XX:MinTLABSize=1k -XX:TLABSize=1k
  *                   -XX:+DeoptimizeALot -XX:+VerifyStack
  *                   compiler.interpreter.TestVerifyStackAfterDeopt
--- a/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -168,6 +168,26 @@
 
     }
 
+    static class ClassType {
+    }
+
+    interface InterfaceType {
+    }
+
+    @Test
+    public void testCloneAccessibility() {
+        /*
+         * The resolution machinery for clone on arrays has some hacks in that show up in odd places
+         * so make sure that resolveMethod works as expected.
+         */
+        ResolvedJavaType interfaceType = getType(InterfaceType.class);
+        ResolvedJavaType classType = getType(ClassType.class);
+        ResolvedJavaType arrayType = getType(double[].class);
+        ResolvedJavaMethod cloneMethod = getMethod(getType(Object.class), "clone");
+        assertEquals("Can't resolve clone for class", cloneMethod, arrayType.resolveMethod(cloneMethod, classType));
+        assertEquals("Can't resolve clone for interface", cloneMethod, arrayType.resolveMethod(cloneMethod, interfaceType));
+    }
+
     static ResolvedJavaMethod getMethod(ResolvedJavaType type, String methodName) {
         for (ResolvedJavaMethod method : type.getDeclaredMethods()) {
             if (method.getName().equals(methodName)) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/Test8210392.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/**
+ * @test
+ * @bug 8210392
+ * @summary C2 Assert failure: Live node limit exceeded
+ *
+ * @run main/othervm compiler.loopopts.Test8210392
+ */
+
+package compiler.loopopts;
+
+public class Test8210392 {
+    public static int ival = 17;
+
+    public static int intFn() {
+        int v = 0, k = 0;
+        for (int i = 17; i < 311; i += 3) {
+            v = Test8210392.ival;
+            int j = 1;
+            do {
+                v *= i;
+                v += j * v;
+                while (++k < 1)
+                    ;
+            } while (++j < 13);
+        }
+        return v;
+    }
+
+    public void mainTest() {
+        for (int i = 0; i < 30000; i++) {
+            Test8210392.ival = intFn();
+        }
+    }
+
+    public static void main(String[] _args) {
+        Test8210392 tc = new Test8210392();
+        for (int i = 0; i < 10; i++) {
+            tc.mainTest();
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/unsafe/MismatchedUnsafeLoadFromNewObject.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. 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.
+ */
+
+/*
+ * @test
+ * @bug 8216549
+ * @summary Mismatched unsafe access to non escaping object fails
+ *
+ * @modules java.base/jdk.internal.misc
+ * @run main/othervm -XX:-UseOnStackReplacement -XX:-BackgroundCompilation MismatchedUnsafeLoadFromNewObject
+ */
+
+import java.lang.reflect.Field;
+import jdk.internal.misc.Unsafe;
+
+public class MismatchedUnsafeLoadFromNewObject {
+    public volatile int f_int = -1;
+    public volatile int f_int2 = -1;
+
+    public static Unsafe unsafe = Unsafe.getUnsafe();
+    public static final long f_int_off;
+    public static final long f_int2_off;
+
+    static {
+        Field f_int_field = null;
+        Field f_int2_field = null;
+        try {
+            f_int_field = MismatchedUnsafeLoadFromNewObject.class.getField("f_int");
+            f_int2_field = MismatchedUnsafeLoadFromNewObject.class.getField("f_int2");
+        } catch (Exception e) {
+            System.out.println("reflection failed " + e);
+            e.printStackTrace();
+        }
+        f_int_off = unsafe.objectFieldOffset(f_int_field);
+        f_int2_off = unsafe.objectFieldOffset(f_int2_field);
+    }
+
+    static public void main(String[] args) {
+        for (int i = 0; i < 20_000; i++) {
+            byte res = test1();
+            if (res != -1) {
+                throw new RuntimeException("Incorrect result: " + res);
+            }
+            res = test2();
+            if (res != -1) {
+                throw new RuntimeException("Incorrect result: " + res);
+            }
+            int res2 = test3();
+            if (res2 != -1) {
+                throw new RuntimeException("Incorrect result: " + res2);
+            }
+        }
+    }
+
+    static byte test1() {
+        MismatchedUnsafeLoadFromNewObject t = new MismatchedUnsafeLoadFromNewObject();
+        return unsafe.getByte(t, f_int_off);
+    }
+
+    static byte test2() {
+        MismatchedUnsafeLoadFromNewObject t = new MismatchedUnsafeLoadFromNewObject();
+        return unsafe.getByte(t, f_int_off+1);
+    }
+
+    static int test3() {
+        MismatchedUnsafeLoadFromNewObject t = new MismatchedUnsafeLoadFromNewObject();
+        if (f_int_off < f_int2_off) {
+            return unsafe.getIntUnaligned(t, f_int_off+1);
+        } else {
+            return unsafe.getIntUnaligned(t, f_int2_off+1);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/cms/TestCriticalPriority.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. 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.
+ */
+
+/*
+ * @test TestCriticalPriority
+ * @key gc
+ * @bug 8217378
+ * @requires vm.gc.ConcMarkSweep & !vm.graal.enabled
+ * @summary Test critical priority is accepted
+ * @run main/othervm -XX:+UseConcMarkSweepGC -XX:+UnlockExperimentalVMOptions -XX:+UseCriticalCMSThreadPriority TestCriticalPriority
+ */
+
+public class TestCriticalPriority {
+    public static void main(String args[]) throws Exception {
+        // The failure would be detected before entering main().
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/epsilon/TestClasses.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. 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.
+ */
+
+/**
+ * @test TestClasses
+ * @key gc
+ * @requires vm.gc.Epsilon & !vm.graal.enabled
+ * @summary Epsilon is able to allocate a lot of classes
+ *
+ * @modules java.base/jdk.internal.org.objectweb.asm
+ *          java.base/jdk.internal.misc
+ *
+ * @run main/othervm -Xmx128m -XX:MetaspaceSize=1m -XX:MaxMetaspaceSize=32m -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xlog:gc -Xlog:gc+metaspace TestClasses
+ */
+
+import jdk.internal.org.objectweb.asm.ClassWriter;
+import jdk.internal.org.objectweb.asm.Opcodes;
+
+import java.util.*;
+import java.io.*;
+import java.nio.*;
+import java.nio.file.*;
+
+public class TestClasses {
+
+  static final int COUNT = 32*1024;
+
+  static volatile Object sink;
+
+  static class MyClassLoader extends ClassLoader {
+    public byte[] createClass(String name) {
+      ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
+      cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC | Opcodes.ACC_SUPER, name, null, "java/lang/Object", null);
+      return cw.toByteArray();
+    }
+
+    public Class<?> loadClass(String name) throws ClassNotFoundException {
+      if (!name.startsWith("Dummy")) {
+        return super.loadClass(name);
+      }
+      byte[] cls = createClass(name);
+      return defineClass(name, cls, 0, cls.length, null);
+    }
+  }
+
+  public static void main(String[] args) throws Exception {
+    ClassLoader cl = new MyClassLoader();
+    for (int c = 0; c < COUNT; c++) {
+      Class<?> clazz = Class.forName("Dummy" + c, true, cl);
+      if (clazz.getClassLoader() != cl) {
+        throw new IllegalStateException("Should have loaded by target loader");
+      }
+      sink = c;
+    }
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/g1/TestPeriodicLogMessages.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/**
+ * @test TestPeriodicLogMessages
+ * @bug 8216490
+ * @requires vm.gc.G1
+ * @summary Verify that log messages are printed as expected
+ * @library /test/lib /
+ * @modules java.base/jdk.internal.misc
+ * @modules java.management/sun.management
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.Platform;
+
+public class TestPeriodicLogMessages {
+
+    public static void main(String[] args) throws Exception {
+        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
+                                                                  "-XX:G1PeriodicGCInterval=0",
+                                                                  "-Xlog:gc,gc+periodic=debug",
+                                                                  "-Xmx10M",
+                                                                  GCTest.class.getName());
+
+        OutputAnalyzer output = new OutputAnalyzer(pb.start());
+        output.shouldContain("Periodic GC disabled");
+        output.shouldNotContain("Checking for periodic GC");
+        output.shouldHaveExitValue(0);
+
+        pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
+                                                   "-XX:G1PeriodicGCInterval=100",
+                                                   "-Xlog:gc,gc+periodic=debug",
+                                                   "-Xmx10M",
+                                                   GCTest.class.getName());
+
+        output = new OutputAnalyzer(pb.start());
+        output.shouldContain("Periodic GC enabled with interval 100ms");
+        output.shouldContain("Checking for periodic GC");
+        output.shouldHaveExitValue(0);
+    }
+
+    static class GCTest {
+        public static void main(String [] args) throws Exception {
+            System.out.println("Waiting for messages...");
+            Thread.sleep(1000);
+            System.out.println("Done");
+        }
+    }
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/gc/shenandoah/options/TestCriticalControlThreadPriority.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2019, Red Hat, Inc. All rights reserved.
+ *
+ * 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.
+ *
+ */
+
+/*
+ * @test TestCriticalControlThreadPriority
+ * @summary Check that ShenandoahCriticalControlThreadPriority works
+ * @bug 8217343
+ * @key gc
+ * @requires vm.gc.Shenandoah
+ *
+ * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:-ShenandoahCriticalControlThreadPriority -Xmx1g TestCriticalControlThreadPriority
+ * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+ShenandoahCriticalControlThreadPriority -Xmx1g TestCriticalControlThreadPriority
+ */
+
+public class TestCriticalControlThreadPriority {
+
+    public static void main(String[] args) throws Exception {
+        // checking the initialization before entering main()
+    }
+
+}
--- a/test/hotspot/jtreg/gtest/GTestWrapper.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/gtest/GTestWrapper.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -34,6 +34,7 @@
 import java.util.stream.Stream;
 import java.util.stream.Collectors;
 
+import java.io.File;
 import java.nio.file.Paths;
 import java.nio.file.Path;
 
@@ -69,14 +70,10 @@
         // may have set LD_LIBRARY_PATH or LIBPATH to point to the jdk libjvm. In
         // that case, prepend the path with the location of the gtest library."
 
-        String ldLibraryPath = System.getenv("LD_LIBRARY_PATH");
+        String pathVar = Platform.sharedLibraryPathVariableName();
+        String ldLibraryPath = System.getenv(pathVar);
         if (ldLibraryPath != null) {
-            env.put("LD_LIBRARY_PATH", path + ":" + ldLibraryPath);
-        }
-
-        String libPath = System.getenv("LIBPATH");
-        if (libPath != null) {
-            env.put("LIBPATH", path + ":" + libPath);
+            env.put(pathVar, path + File.pathSeparator + ldLibraryPath);
         }
 
         pb.command(new String[] {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/ClassUnload/ConstantPoolDependsTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test ConstantPoolDependsTest
+ * @bug 8210094
+ * @summary Create ClassLoader dependency from initiating loader to class loader through constant pool reference
+ * @requires vm.opt.final.ClassUnloading
+ * @modules java.base/jdk.internal.misc
+ *          java.compiler
+ * @library /runtime/testlibrary /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @compile p2/c2.java MyDiffClassLoader.java
+ * @run main ClassFileInstaller sun.hotspot.WhiteBox
+ *                              sun.hotspot.WhiteBox$WhiteBoxPermission
+ * @run main/othervm -Xbootclasspath/a:. -Xmn8m -XX:+UnlockDiagnosticVMOptions -Xlog:class+unload -XX:+WhiteBoxAPI ConstantPoolDependsTest
+ */
+
+import sun.hotspot.WhiteBox;
+
+
+public class ConstantPoolDependsTest {
+    public static WhiteBox wb = WhiteBox.getWhiteBox();
+    public static final String MY_TEST = "ConstantPoolDependsTest$c1c";
+
+    public static class c1c {
+        private void test() throws Exception {
+            // ConstantPool.klass_at_impl loads through constant pool and creates dependency
+            p2.c2 c2_obj = new p2.c2();
+            c2_obj.method2();
+        }
+
+        public c1c () throws Exception {
+            test();
+            ClassUnloadCommon.triggerUnloading();  // should not unload anything
+            test();
+            ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        }
+    }
+
+    static void test() throws Throwable {
+
+        // now use the same loader to load class MyTest
+        Class MyTest_class = new MyDiffClassLoader(MY_TEST).loadClass(MY_TEST);
+
+        try {
+            // Call MyTest to load p2.c2 twice and call p2.c2.method2
+            MyTest_class.newInstance();
+        } catch (Exception e) {
+            throw new RuntimeException("Test FAILED if NoSuchMethodException is thrown");
+        }
+        ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        ClassUnloadCommon.failIf(!wb.isClassAlive(MY_TEST), "should not be unloaded");
+        ClassUnloadCommon.failIf(!wb.isClassAlive("p2.c2"), "should not be unloaded");
+        // Unless MyTest_class is referenced here, the compiler can unload it.
+        System.out.println("Should not unload anything before here because " + MyTest_class + " is still alive.");
+    }
+
+    public static void main(String args[]) throws Throwable {
+        test();
+        ClassUnloadCommon.triggerUnloading();  // should unload
+        System.gc();
+        System.out.println("Should unload p2.c2 just now");
+        ClassUnloadCommon.failIf(wb.isClassAlive(MY_TEST), "should be unloaded");
+        ClassUnloadCommon.failIf(wb.isClassAlive("p2.c2"), "should be unloaded");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/ClassUnload/DictionaryDependsTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test DictionaryDependsTest
+ * @bug 8210094
+ * @summary Create ClassLoader dependency from initiating loader to class loader through reflection
+ * @requires vm.opt.final.ClassUnloading
+ * @modules java.base/jdk.internal.misc
+ *          java.compiler
+ * @library /runtime/testlibrary /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @compile p2/c2.java MyDiffClassLoader.java
+ * @run main ClassFileInstaller sun.hotspot.WhiteBox
+ *                              sun.hotspot.WhiteBox$WhiteBoxPermission
+ * @run main/othervm -Xbootclasspath/a:. -Xmn8m -XX:+UnlockDiagnosticVMOptions -Xlog:class+unload -XX:+WhiteBoxAPI DictionaryDependsTest
+ */
+import sun.hotspot.WhiteBox;
+import java.lang.reflect.Method;
+
+public class DictionaryDependsTest {
+    public static WhiteBox wb = WhiteBox.getWhiteBox();
+    public static final String MY_TEST = "DictionaryDependsTest$c1r";
+
+    static public class c1r {
+
+        private void test() throws Exception {
+            // forName loads through reflection and doesn't create dependency
+            Class<?> x = Class.forName("p2.c2", true, c1r.class.getClassLoader());
+            Method m = x.getMethod("method2");
+            java.lang.Object t = x.newInstance();
+            m.invoke(t);
+        }
+
+        public c1r () throws Exception {
+            test();
+            ClassUnloadCommon.triggerUnloading();  // should unload p2.c2
+            test();
+            ClassUnloadCommon.triggerUnloading();  // should unload p2.c2
+        }
+    }
+
+    public void test() throws Throwable {
+
+        // now use the same loader to load class MyTest
+        Class MyTest_class = new MyDiffClassLoader(MY_TEST).loadClass(MY_TEST);
+
+        try {
+            // Call MyTest to load p2.c2 twice and call p2.c2.method2
+            MyTest_class.newInstance();
+        } catch (Exception e) {
+            System.out.println("Not expected NSME");
+            throw new RuntimeException("Not expecting NSME");
+        }
+        ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        ClassUnloadCommon.failIf(!wb.isClassAlive(MY_TEST), "should not be unloaded");
+        ClassUnloadCommon.failIf(!wb.isClassAlive("p2.c2"), "should not be unloaded");
+        // Unless MyTest_class is referenced here, the compiler can unload it.
+        System.out.println("Should not unload anything before here because " + MyTest_class + " is still alive.");
+    }
+
+    public static void main(String args[]) throws Throwable {
+        DictionaryDependsTest d = new DictionaryDependsTest();
+        d.test();
+        ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        System.out.println("Should unload MyTest and p2.c2 just now");
+        ClassUnloadCommon.failIf(wb.isClassAlive(MY_TEST), "should be unloaded");
+        ClassUnloadCommon.failIf(wb.isClassAlive("p2.c2"), "should be unloaded");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/ClassUnload/MyDiffClassLoader.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 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.
+ */
+
+import java.io.*;
+import jdk.test.lib.compiler.InMemoryJavaCompiler;
+
+public class MyDiffClassLoader extends ClassLoader {
+
+    public String loaderName;
+    public static boolean switchClassData = false;
+
+    MyDiffClassLoader(String name) {
+        this.loaderName = name;
+    }
+
+    public Class loadClass(String name) throws ClassNotFoundException {
+        if (!name.contains("c1r") &&
+            !name.contains("c1c") &&
+            !name.contains("c1s") &&
+            !name.equals("p2.c2")) {
+                return super.loadClass(name);
+        }
+
+        // new loader loads p2.c2
+        if  (name.equals("p2.c2") && !loaderName.equals("C2Loader")) {
+            Class<?> c = new MyDiffClassLoader("C2Loader").loadClass(name);
+            switchClassData = true;
+            return c;
+        }
+
+        byte[] data = switchClassData ? getNewClassData(name) : getClassData(name);
+        System.out.println("name is " + name);
+        return defineClass(name, data, 0, data.length);
+    }
+    byte[] getClassData(String name) {
+        try {
+           String TempName = name.replaceAll("\\.", "/");
+           String currentDir = System.getProperty("test.classes");
+           String filename = currentDir + File.separator + TempName + ".class";
+           FileInputStream fis = new FileInputStream(filename);
+           byte[] b = new byte[5000];
+           int cnt = fis.read(b, 0, 5000);
+           byte[] c = new byte[cnt];
+           for (int i=0; i<cnt; i++) c[i] = b[i];
+             return c;
+        } catch (IOException e) {
+           return null;
+        }
+    }
+
+    // Return p2.c2 with everything removed
+    byte[] getNewClassData(String name) {
+        return InMemoryJavaCompiler.compile("p2.c2", "package p2; public class c2 { }");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/ClassUnload/SuperDependsTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test SuperDependsTest
+ * @bug 8210094
+ * @summary Create ClassLoader dependency from initiating loader to class loader through subclassing
+ * @requires vm.opt.final.ClassUnloading
+ * @modules java.base/jdk.internal.misc
+ *          java.compiler
+ * @library /runtime/testlibrary /test/lib
+ * @build sun.hotspot.WhiteBox
+ * @compile p2/c2.java MyDiffClassLoader.java
+ * @run main ClassFileInstaller sun.hotspot.WhiteBox
+ *                              sun.hotspot.WhiteBox$WhiteBoxPermission
+ * @run main/othervm -Xbootclasspath/a:. -Xmn8m -XX:+UnlockDiagnosticVMOptions -Xlog:class+unload -XX:+WhiteBoxAPI SuperDependsTest
+ */
+import sun.hotspot.WhiteBox;
+import p2.*;
+
+public class SuperDependsTest {
+    public static WhiteBox wb = WhiteBox.getWhiteBox();
+    public static final String MY_TEST = "SuperDependsTest$c1s";
+
+
+    // p2.c2 loads through super class and creates dependency
+    public static class c1s extends p2.c2 {
+
+        private void test() throws Exception {
+            method2();
+        }
+
+        public c1s () throws Exception {
+            test();
+            ClassUnloadCommon.triggerUnloading();  // should not unload anything
+            test();
+        }
+    }
+
+    public void test() throws Throwable {
+
+        // now use the same loader to load class MyTest
+        Class MyTest_class = new MyDiffClassLoader(MY_TEST).loadClass(MY_TEST);
+
+        // Call MyTest to load p2.c2 twice and call p2.c2.method2
+        MyTest_class.newInstance();
+        ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        ClassUnloadCommon.failIf(!wb.isClassAlive(MY_TEST), "should not be unloaded");
+        ClassUnloadCommon.failIf(!wb.isClassAlive("p2.c2"), "should not be unloaded");
+        // Unless MyTest_class is referenced here, the compiler can unload it.
+        System.out.println("Should not unload anything before here because " + MyTest_class + " is still alive.");
+    }
+
+    public static void main(String args[]) throws Throwable {
+        SuperDependsTest d = new SuperDependsTest();
+        d.test();
+        ClassUnloadCommon.triggerUnloading();  // should not unload anything
+        System.out.println("Should unload MyTest and p2.c2 just now");
+        ClassUnloadCommon.failIf(wb.isClassAlive(MY_TEST), "should be unloaded");
+        ClassUnloadCommon.failIf(wb.isClassAlive("p2.c2"), "should be unloaded");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/ClassUnload/p2/c2.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 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.
+ */
+package p2;
+
+public class c2 {
+    int i;
+    public void method2() { i = 5; System.out.println("c2 method2 called"); }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/Thread/TestThreadDumpClassInitMonitor.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug     8213397 8217337
+ * @summary Check that the thread dump shows when a thread is blocked
+ *          on a class initialization monitor
+ *
+ * @library /test/lib
+ * @run main/othervm TestThreadDumpClassInitMonitor
+ */
+
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.JDKToolFinder;
+import jdk.test.lib.Platform;
+
+import java.io.IOException;
+import java.util.List;
+
+public class TestThreadDumpClassInitMonitor {
+    // jstack tends to be closely bound to the VM that we are running
+    // so use getTestJDKTool() instead of getCompileJDKTool() or even
+    // getJDKTool() which can fall back to "compile.jdk".
+    final static String JSTACK = JDKToolFinder.getTestJDKTool("jstack");
+    final static String PID = "" + ProcessHandle.current().pid();
+
+    final static Thread current = Thread.currentThread();
+
+    /*
+     * This is the output we're looking for:
+     *
+     * "TestThread" #22 prio=5 os_prio=0 cpu=1.19ms elapsed=0.80s tid=0x00007f8f9405d800 nid=0x568b in Object.wait()  [0x00007f8fd94d0000]
+     *   java.lang.Thread.State: RUNNABLE
+     * Thread: 0x00007f8f9405d800  [0x568b] State: _at_safepoint _has_called_back 0 _at_poll_safepoint 0  // DEBUG ONLY
+     *   JavaThread state: _thread_blocked                                                                // DEBUG ONLY
+     *         at TestThreadDumpClassInitMonitor$Target$1.run(TestThreadDumpClassInitMonitor.java:69)
+     *         - waiting on the Class initialization monitor for TestThreadDumpClassInitMonitor$Target
+     *
+     */
+    final static String TEST_THREAD = "TestThread";
+    final static String TEST_THREAD_ENTRY = "\"" + TEST_THREAD;
+    final static String IN_OBJECT_WAIT = "in Object.wait()";
+    final static String THREAD_STATE = "java.lang.Thread.State: RUNNABLE";
+    final static String THREAD_INFO = "Thread:"; // the details are not important
+    final static String JAVATHREAD_STATE = "JavaThread state: _thread_blocked";
+    final static String CURRENT_METHOD = "at TestThreadDumpClassInitMonitor$Target$1.run";
+    final static String WAIT_INFO = "- waiting on the Class initialization monitor for TestThreadDumpClassInitMonitor$Target";
+
+    volatile static boolean ready = false;
+
+    static List<String> stackDump;  // jstack output as lines
+
+    static class Target {
+
+        static int field;
+
+        // The main thread will initialize this class and so
+        // execute the actual test logic here.
+        static {
+            if (Thread.currentThread() != current) {
+                throw new Error("Initialization logic error");
+            }
+            System.out.println("Initializing Target class in main thread");
+
+            Thread t  = new Thread() {
+                    public void run() {
+                        System.out.println("Test thread about to access Target");
+                        ready = true; // tell main thread we're close
+                        // This will block until the main thread completes
+                        // static initialization of target
+                        Target.field = 42;
+                        System.out.println("Test thread done");
+                    }
+                };
+            t.setName(TEST_THREAD);
+            t.start();
+
+            // We want to run jstack once the test thread is blocked but
+            // there's no programmatic way to detect that. So we check the flag
+            // that will be set just before it should block, then by the time
+            // we can exec jstack it should be ready.
+            try {
+                while (!ready) {
+                    Thread.sleep(200);
+                }
+            }
+            catch (InterruptedException ie) {
+                throw new Error("Shouldn't happen");
+            }
+
+            // Now run jstack
+            try {
+                ProcessBuilder pb = new ProcessBuilder(JSTACK, PID);
+                OutputAnalyzer output = new OutputAnalyzer(pb.start());
+                output.shouldHaveExitValue(0);
+                stackDump = output.asLines();
+            }
+            catch (IOException ioe) {
+                throw new Error("Launching jstack failed", ioe);
+            }
+        }
+    }
+
+
+    public static void main(String[] args) throws Throwable {
+        // Implicitly run the main test logic
+        Target.field = 21;
+
+        // Now check the output of jstack
+        try {
+            // product builds miss 2 lines of information in the stack
+            boolean isProduct = !Platform.isDebugBuild();
+            int foundLines = 0;
+            parseStack: for (String line : stackDump) {
+                switch(foundLines) {
+                case 0: {
+                    if (!line.startsWith(TEST_THREAD_ENTRY)) {
+                        continue;
+                    }
+                    foundLines++;
+                    if (!line.contains(IN_OBJECT_WAIT)) {
+                        throw new Error("Unexpected initial stack line: " + line);
+                    }
+                    continue;
+                }
+                case 1: {
+                    if (!line.trim().equals(THREAD_STATE)) {
+                        throw new Error("Unexpected thread state line: " + line);
+                    }
+                    if (isProduct) {
+                        foundLines += 3;
+                    } else {
+                        foundLines++;
+                    }
+                    continue;
+                }
+                case 2: { // Debug build
+                    if (!line.startsWith(THREAD_INFO)) {
+                        throw new Error("Unexpected thread info line: " + line);
+                    }
+                    foundLines++;
+                    continue;
+                }
+                case 3: { // Debug build
+                    if (!line.trim().equals(JAVATHREAD_STATE)) {
+                        throw new Error("Unexpected JavaThread state line: " + line);
+                    }
+                    foundLines++;
+                    continue;
+                }
+                case 4: {
+                    if (!line.trim().startsWith(CURRENT_METHOD)) {
+                        throw new Error("Unexpected current method line: " + line);
+                    }
+                    foundLines++;
+                    continue;
+                }
+                case 5: {
+                    if (!line.trim().equals(WAIT_INFO)) {
+                        throw new Error("Unexpected monitor information line: " + line);
+                    }
+                    break parseStack;
+                }
+                default: throw new Error("Logic error in case statement");
+                }
+            }
+
+            if (foundLines == 0) {
+                throw new Error("Unexpected stack content - did not find line starting with "
+                                + TEST_THREAD_ENTRY);
+            }
+        }
+        catch (Error e) {
+            // Dump the full stack trace on error so we can check the content
+            for (String line : stackDump) {
+                System.out.println(line);
+            }
+            throw e;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/appcds/LongClassListPath.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 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.
+ *
+ */
+
+/*
+ * @test
+ * @summary Test the handling of long path to the classlist file.
+ * @requires vm.cds
+ * @library /test/lib
+ * @modules java.base/jdk.internal.misc
+ *          java.management
+ *          jdk.jartool/sun.tools.jar
+ * @compile test-classes/Hello.java
+ * @run driver LongClassListPath
+ */
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.Arrays;
+import jdk.test.lib.cds.CDSOptions;
+import jdk.test.lib.cds.CDSTestUtils;
+import jdk.test.lib.process.OutputAnalyzer;
+
+public class LongClassListPath {
+    private static final int MAX_PATH = 260;
+    public static void main(String[] args) throws Exception {
+        String[] classes = {"hello"};
+        String classList =
+            CDSTestUtils.makeClassList(classes).getPath();
+        String archiveName = "LongClassListPath.jsa";
+
+        // Create a directory with long path and copy the classlist file to
+        // the directory.
+        Path classDir = Paths.get(System.getProperty("test.classes"));
+        Path destDir = classDir;
+        int subDirLen = MAX_PATH - classDir.toString().length() - 2;
+        if (subDirLen > 0) {
+            char[] chars = new char[subDirLen];
+            Arrays.fill(chars, 'x');
+            String subPath = new String(chars);
+            destDir = Paths.get(System.getProperty("test.classes"), subPath);
+        }
+        File longDir = destDir.toFile();
+        longDir.mkdir();
+        String destClassList = longDir.getPath() + File.separator + "LongClassListPath.classlist";
+        Files.copy(Paths.get(classList), Paths.get(destClassList), StandardCopyOption.REPLACE_EXISTING);
+
+        CDSOptions opts = (new CDSOptions())
+            .addPrefix("-XX:ExtraSharedClassListFile=" + destClassList, "-cp", JarBuilder.getOrCreateHelloJar())
+            .setArchiveName(archiveName);
+        CDSTestUtils.createArchiveAndCheck(opts);
+    }
+}
--- a/test/hotspot/jtreg/runtime/appcds/ProtectionDomain.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/appcds/ProtectionDomain.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -48,25 +48,24 @@
          TestCommon.list("ProtDomain",
                          "ProtDomainBOther",
                          "java/util/Dictionary",
-                         "sun/tools/javac/Main",
+                         "com/sun/tools/javac/Main",
                          "jdk/nio/zipfs/ZipInfo",
                          "java/net/URL",
                          "sun/rmi/rmic/Main",
                          "com/sun/jndi/dns/DnsName"));
 
-    OutputAnalyzer output;
-
     // First class is loaded from CDS, second class is loaded from JAR
-    output = TestCommon.exec(appJar, "ProtDomain");
-    TestCommon.checkExec(output, "Protection Domains match");
+    TestCommon.run("-cp", appJar, "ProtDomain")
+        .assertNormalExit("Protection Domains match");
 
     // First class is loaded from JAR, second class is loaded from CDS
-    output = TestCommon.exec(appJar, "ProtDomainB");
-    TestCommon.checkExec(output, "Protection Domains match");
+    TestCommon.run("-cp", appJar, "ProtDomainB")
+        .assertNormalExit("Protection Domains match");
 
     // Test ProtectionDomain for application and extension module classes from the
     // "modules" jimage
-    output = TestCommon.exec(appJar, "JimageClassProtDomain");
-    output.shouldNotContain("Failed: Protection Domains do not match");
+    TestCommon.run("-cp", appJar, "JimageClassProtDomain")
+        .assertNormalExit(output -> output.shouldNotContain(
+                          "Failed: Protection Domains do not match"));
   }
 }
--- a/test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/DummyClassesInBootClassPath.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/DummyClassesInBootClassPath.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -63,6 +63,8 @@
         String appJar = TestCommon.getTestJar("dummyClasses.jar");
         OutputAnalyzer dumpOutput = TestCommon.dump(
             appJar, classNames, "-Xbootclasspath/a:" + appJar);
+        TestCommon.checkDump(dumpOutput);
+
         List<String> argsList = new ArrayList<String>();
         for (int i = 0; i < classNames.length; i++) {
             argsList.add(classNames[i].replace('/', '.'));
--- a/test/hotspot/jtreg/runtime/appcds/test-classes/JimageClassProtDomain.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/appcds/test-classes/JimageClassProtDomain.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -37,7 +37,7 @@
               "java.util.Dictionary", "java.util.ServiceConfigurationError"},
 
              {"Loading shared app module class first",
-              "sun.tools.javac.Main", "sun.tools.javac.BatchParser"},
+              "com.sun.tools.javac.Main", "com.sun.tools.javac.code.Symbol"},
 
              {"Loading shared ext module class first",
               "jdk.nio.zipfs.ZipInfo", "jdk.nio.zipfs.ZipPath"},
@@ -46,7 +46,7 @@
               "java.net.HttpCookie", "java.net.URL"},
 
              {"Loading non-shared app module class first",
-              "sun.rmi.rmic.RMIGenerator", "sun.rmi.rmic.Main"},
+              "com.sun.tools.sjavac.Util", "com.sun.tools.sjavac.Main"},
 
              {"Loading non-shared ext module class first",
               "com.sun.jndi.dns.Resolver", "com.sun.jndi.dns.DnsName"}};
@@ -61,13 +61,16 @@
         Class c1 = Class.forName(shared);
         Class c2 = Class.forName(nonShared);
         if (c1.getProtectionDomain() != c2.getProtectionDomain()) {
-            System.out.println("Failed: Protection Domains do not match!");
             System.out.println(c1.getProtectionDomain());
             System.out.println(c1.getProtectionDomain().getCodeSource());
             System.out.println(c2.getProtectionDomain());
             System.out.println(c2.getProtectionDomain().getCodeSource());
-            System.exit(1);
+            throw new RuntimeException("Failed: Protection Domains do not match!");
         } else {
+            System.out.println(c1.getProtectionDomain());
+            System.out.println(c1.getProtectionDomain().getCodeSource());
+            System.out.println(c2.getProtectionDomain());
+            System.out.println(c2.getProtectionDomain().getCodeSource());
             System.out.println("Passed: Protection Domains match.");
         }
     }
--- a/test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomain.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomain.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -42,8 +42,7 @@
     if (mine == his) {
       System.out.println("Protection Domains match");
     } else {
-      System.out.println("Protection Domains do not match!");
-      System.exit(1);
+      throw new RuntimeException("Protection Domains do not match!");
     }
   }
 }
--- a/test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomainB.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomainB.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -42,8 +42,7 @@
     if (mine == his) {
       System.out.println("Protection Domains match");
     } else {
-      System.out.println("Protection Domains do not match!");
-      System.exit(1);
+      throw new RuntimeException("Protection Domains do not match!");
     }
   }
 }
--- a/test/hotspot/jtreg/runtime/signal/SigTestDriver.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/runtime/signal/SigTestDriver.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -68,8 +68,7 @@
         Path test = Paths.get(System.getProperty("test.nativepath"))
                          .resolve("sigtest")
                          .toAbsolutePath();
-        String envVar = Platform.isWindows() ? "PATH" :
-                (Platform.isOSX() ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH");
+        String envVar = Platform.sharedLibraryPathVariableName();
 
         List<String> cmd = new ArrayList<>();
         Collections.addAll(cmd,
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -34,7 +34,7 @@
  * @requires vm.hasSA
  * @requires vm.compiler1.enabled
  * @library /test/lib
- * @run main/othervm ClhsdbFindPC
+ * @run main/othervm/timeout=480 ClhsdbFindPC
  */
 
 public class ClhsdbFindPC {
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbJstack.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbJstack.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -34,7 +34,7 @@
  * @summary Test clhsdb Jstack command
  * @requires vm.hasSA
  * @library /test/lib
- * @run main/othervm ClhsdbJstack
+ * @run main/othervm/timeout=480 ClhsdbJstack
  */
 
 public class ClhsdbJstack {
--- a/test/hotspot/jtreg/serviceability/sa/ClhsdbLauncher.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/serviceability/sa/ClhsdbLauncher.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -25,12 +25,15 @@
 import java.io.OutputStream;
 import java.util.List;
 import java.util.Map;
+import java.util.Arrays;
 
 import jdk.test.lib.apps.LingeredApp;
 import jdk.test.lib.Platform;
 import jdk.test.lib.JDKToolLauncher;
 import jdk.test.lib.JDKToolFinder;
 import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.SA.SATestUtils;
+
 
 /**
  * This is a framework to run 'jhsdb clhsdb' commands.
@@ -41,9 +44,11 @@
 public class ClhsdbLauncher {
 
     private Process toolProcess;
+    private boolean needPrivileges;
 
     public ClhsdbLauncher() {
         toolProcess = null;
+        needPrivileges = false;
     }
 
     /**
@@ -53,7 +58,6 @@
      */
     private void attach(long lingeredAppPid)
         throws IOException {
-
         JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhsdb");
         launcher.addToolArg("clhsdb");
         if (lingeredAppPid != -1) {
@@ -61,9 +65,12 @@
             System.out.println("Starting clhsdb against " + lingeredAppPid);
         }
 
-        ProcessBuilder processBuilder = new ProcessBuilder(launcher.getCommand());
+        List<String> cmdStringList = Arrays.asList(launcher.getCommand());
+        if (needPrivileges) {
+            cmdStringList = SATestUtils.addPrivileges(cmdStringList);
+        }
+        ProcessBuilder processBuilder = new ProcessBuilder(cmdStringList);
         processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
-
         toolProcess = processBuilder.start();
     }
 
@@ -173,9 +180,19 @@
         throws IOException, InterruptedException {
 
         if (!Platform.shouldSAAttach()) {
-            // Silently skip the test if we don't have enough permissions to attach
-            System.out.println("SA attach not expected to work - test skipped.");
-            return null;
+            if (Platform.isOSX()) {
+                if (!SATestUtils.canAddPrivileges()) {
+                   // Skip the test if we don't have enough permissions to attach
+                   // and cannot add privileges.
+                   System.out.println("SA attach not expected to work - test skipped.");
+                   return null;
+               } else {
+                   needPrivileges = true;
+               }
+            } else {
+                System.out.println("SA attach not expected to work. Insufficient privileges.");
+                throw new Error("Cannot attach.");
+            }
         }
 
         attach(lingeredAppPid);
@@ -200,12 +217,6 @@
                             Map<String, List<String>> unExpectedStrMap)
         throws IOException, InterruptedException {
 
-        if (!Platform.shouldSAAttach()) {
-            // Silently skip the test if we don't have enough permissions to attach
-            System.out.println("SA attach not expected to work - test skipped.");
-            return null;
-        }
-
         loadCore(coreFileName);
         return runCmd(commands, expectedStrMap, unExpectedStrMap);
     }
--- a/test/hotspot/jtreg/vmTestbase/ExecDriver.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/ExecDriver.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -103,7 +103,7 @@
         if (launcher) {
             Path dir = Paths.get(Utils.TEST_JDK);
             String value;
-            String name;
+            String name = Platform.sharedLibraryPathVariableName();
             if (Platform.isWindows()) {
                 value = dir.resolve("bin")
                            .resolve(variant())
@@ -113,13 +113,11 @@
                 value += dir.resolve("bin")
                             .toAbsolutePath()
                             .toString();
-                name = "PATH";
             } else {
                 value = dir.resolve("lib")
                            .resolve(variant())
                            .toAbsolutePath()
                            .toString();
-                name = Platform.isOSX() ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH";
             }
 
             System.out.println("  with " + name + " = " +
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/TestDriver.java	Tue Jan 22 09:43:38 2019 -0500
@@ -77,17 +77,7 @@
                 nsk.jvmti.RetransformClasses.retransform003.class.getName()
         );
 
-        String envName;
-        if (Platform.isWindows()) {
-            envName = "PATH";
-        } else if (Platform.isOSX()) {
-            envName = "DYLD_LIBRARY_PATH";
-        } else if (Platform.isAix()) {
-            envName = "LIBPATH";
-        } else {
-            envName = "LD_LIBRARY_PATH";
-        }
-
+        String envName = Platform.sharedLibraryPathVariableName();
         pb.environment()
           .merge(envName, ".", (x, y) -> y + File.pathSeparator + x);
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/TestDriver.java	Tue Jan 22 09:43:38 2019 -0500
@@ -67,17 +67,7 @@
                 nsk.jvmti.SetNativeMethodPrefix.SetNativeMethodPrefix002.class.getName()
         );
 
-        String envName;
-        if (Platform.isWindows()) {
-            envName = "PATH";
-        } else if (Platform.isOSX()) {
-            envName = "DYLD_LIBRARY_PATH";
-        } else if (Platform.isAix()) {
-            envName = "LIBPATH";
-        } else {
-            envName = "LD_LIBRARY_PATH";
-        }
-
+        String envName = Platform.sharedLibraryPathVariableName();
         pb.environment()
           .merge(envName, ".", (x, y) -> y + File.pathSeparator + x);
 
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/sde/InstallSDE.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/sde/InstallSDE.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -58,12 +58,18 @@
     }
 
     public static void install(File inOutClassFile, File attrFile, boolean verbose) throws IOException {
-        File tmpFile = new File(inOutClassFile.getPath() + "tmp");
+        File tmpFile = new File(inOutClassFile.getPath() + "tmp-out");
+        File tmpInOutClassFile = new File(inOutClassFile.getPath() + "tmp-in");
 
-        new InstallSDE(inOutClassFile, attrFile, tmpFile, verbose);
+        // Workaround delayed file deletes on Windows using a tmp file name
+        if (!inOutClassFile.renameTo(tmpInOutClassFile)) {
+            throw new IOException("inOutClassFile.renameTo(tmpInOutClassFile) failed");
+        }
 
-        if (!inOutClassFile.delete()) {
-            throw new IOException("inOutClassFile.delete() failed");
+        new InstallSDE(tmpInOutClassFile, attrFile, tmpFile, verbose);
+
+        if (!tmpInOutClassFile.delete()) {
+            throw new IOException("tmpInOutClassFile.delete() failed");
         }
         if (!tmpFile.renameTo(inOutClassFile)) {
             throw new IOException("tmpFile.renameTo(inOutClassFile) failed");
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/test/StressOptions.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/test/StressOptions.java	Tue Jan 22 09:43:38 2019 -0500
@@ -79,7 +79,7 @@
      * Create StressOptions with default settings.
      */
     public StressOptions() {
-        time = 60;
+        time = 30;
         iterationsFactor = 1;
         threadsFactor = 1;
         runsFactor = 1;
--- a/test/hotspot/jtreg/vmTestbase/vm/runtime/defmeth/README	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/vm/runtime/defmeth/README	Tue Jan 22 09:43:38 2019 -0500
@@ -1,4 +1,4 @@
-Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+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
@@ -210,7 +210,7 @@
 
     StressTest has some specific options:
         -stressTime <long>
-            Stress execution time in seconds (default: 60)
+            Stress execution time in seconds (default: 30)
 
         -stressThreadsFactor <int>
               Stress threads factor (default: 1)
--- a/test/hotspot/jtreg/vmTestbase/vm/share/options/package-info.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/hotspot/jtreg/vmTestbase/vm/share/options/package-info.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -98,7 +98,7 @@
 public class StressOptions {
     // [2]
     &#064;Option(name="stressTime",
-                default_value="60",
+                default_value="30",
                 description="Stress time")
     private long stressTime;
 
@@ -227,7 +227,7 @@
     -iterations <number>
               Number of iterations (mandatory)
         -stressTime <number>
-              Stress time (default 60)
+              Stress time (default 30)
     -garbageProducer <garbage producer>
               Garbage producer (default byteArr). Supported keys:
                   byteArr    byte array producer
--- a/test/jdk/ProblemList.txt	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/ProblemList.txt	Tue Jan 22 09:43:38 2019 -0500
@@ -1,6 +1,6 @@
 ###########################################################################
 #
-# Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 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
@@ -516,6 +516,7 @@
 
 java/lang/StringCoding/CheckEncodings.sh                        7008363 generic-all
 java/lang/ProcessHandle/InfoTest.java                           8211847 aix-ppc64
+java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java        8151492 generic-all
 
 ############################################################################
 
@@ -583,7 +584,6 @@
 java/nio/file/WatchService/LotsOfCancels.java                   8188039 solaris-all Solaris 11
 java/nio/file/WatchService/LotsOfEvents.java                    7158947 solaris-all Solaris 11
 
-sun/nio/cs/OLD/TestIBMDB.java                                   8211841 aix-ppc64
 
 ############################################################################
 
@@ -838,8 +838,6 @@
 
 com/sun/jdi/RepStep.java                                        8043571 generic-all
 
-com/sun/jdi/sde/SourceDebugExtensionTest.java                   8158066 windows-all
-
 com/sun/jdi/NashornPopFrameTest.java                            8187143 generic-all
 
 ############################################################################
@@ -880,3 +878,4 @@
 # jdk_jfr
 
 jdk/jfr/event/io/TestInstrumentation.java                       8202142    generic-all
+jdk/jfr/event/runtime/TestShutdownEvent.java                    8217345    generic-all
--- a/test/jdk/com/sun/jdi/PrivateTransportTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/com/sun/jdi/PrivateTransportTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -33,10 +33,12 @@
  * @run main/othervm PrivateTransportTest
  */
 
+import jdk.test.lib.Platform;
 import jdk.test.lib.Utils;
 import jdk.test.lib.process.ProcessTools;
 
 import java.io.IOException;
+import java.io.File;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -71,17 +73,8 @@
             }
             transportLib = foundLib.get();
         }
-        if (System.getProperty("os.name").startsWith("Windows")) {
-            pathSep = ";";
-            pathEnvVar = "PATH";
-        } else {
-            pathSep = ":";
-            if (System.getProperty("os.name").equals("AIX")) {
-                pathEnvVar = "LIBPATH";
-            } else {
-                pathEnvVar = "LD_LIBRARY_PATH";
-            }
-        }
+        pathEnvVar = Platform.sharedLibraryPathVariableName();
+        pathSep    = File.pathSeparator;
     }
 
     private void test() throws Throwable {
--- a/test/jdk/com/sun/jdi/sde/InstallSDE.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/com/sun/jdi/sde/InstallSDE.java	Tue Jan 22 09:43:38 2019 -0500
@@ -31,10 +31,18 @@
     }
 
     static void install(File inOutClassFile, File attrFile) throws IOException {
-        File tmpFile = new File(inOutClassFile.getPath() + "tmp");
-        new InstallSDE(inOutClassFile, attrFile, tmpFile);
-        if (!inOutClassFile.delete()) {
-            throw new IOException("inOutClassFile.delete() failed");
+        File tmpFile = new File(inOutClassFile.getPath() + "tmp-out");
+        File tmpInOutClassFile = new File(inOutClassFile.getPath() + "tmp-in");
+
+        // Workaround delayed file deletes on Windows using a tmp file name
+        if (!inOutClassFile.renameTo(tmpInOutClassFile)) {
+            throw new IOException("tmp copy of inOutClassFile failed");
+        }
+
+        new InstallSDE(tmpInOutClassFile, attrFile, tmpFile);
+
+        if (!tmpInOutClassFile.delete()) {
+            throw new IOException("tmpInOutClassFile.delete() failed");
         }
         if (!tmpFile.renameTo(inOutClassFile)) {
             throw new IOException("tmpFile.renameTo(inOutClassFile) failed");
--- a/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -24,7 +24,7 @@
 /*
   @test
   @key headful
-  @bug 4980161 7158623 8204860 8208125
+  @bug 4980161 7158623 8204860 8208125 8215280
   @summary Setting focusable window state to false makes the maximized frame resizable
   @compile UnfocusableMaximizedFrameResizablity.java
   @run main UnfocusableMaximizedFrameResizablity
@@ -47,8 +47,15 @@
 
     private static void createAndShowFrame() throws Exception {
 
+        //MAXIMIZED_BOTH frame is resizable on Mac OS by default. Nothing to test.
+        if (System.getProperty("os.name").toLowerCase().startsWith("mac")) {
+            cleanup();
+            return;
+        }
+
         //The MAXIMIZED_BOTH state is not supported by the toolkit. Nothing to test.
         if (!Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH)) {
+            cleanup();
             return;
         }
 
@@ -93,7 +100,9 @@
     }
 
     private static void cleanup() {
-        frame.dispose();
+        if (frame != null) {
+            frame.dispose();
+        }
         isProgInterruption = true;
         mainThread.interrupt();
     }
--- a/test/jdk/java/lang/ProcessBuilder/DestroyTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/ProcessBuilder/DestroyTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -28,27 +28,17 @@
  *          destroyForcibly.
  */
 
-import java.io.*;
-import java.util.ArrayList;
-import java.util.concurrent.TimeUnit;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
 
 abstract class ProcessTest implements Runnable {
     ProcessBuilder bldr;
     Process p;
 
-    public Process killProc(boolean force) throws Exception {
-        if (force) {
-            p.destroyForcibly();
-        } else {
-            p.destroy();
-        }
-        return p;
-    }
-
-    public boolean isAlive() {
-        return p.isAlive();
-    }
-
     public void run() {
         try {
             String line;
@@ -63,7 +53,17 @@
         }
     }
 
-    public abstract void runTest() throws Exception;
+    public void runTest() throws Exception {
+        // The destroy() method is not tested because
+        // the process streams are closed by the destroy() call.
+        // After a destroy() call, the process terminates with a
+        // SIGPIPE even if it was trapping SIGTERM.
+        // So skip the trap test and go straight to destroyForcibly().
+        p.destroyForcibly();
+        p.waitFor();
+        if (p.isAlive())
+            throw new RuntimeException("Problem terminating the process.");
+    }
 }
 
 class UnixTest extends ProcessTest {
@@ -78,16 +78,10 @@
 
     void createScript(File processTrapScript) throws IOException {
         processTrapScript.deleteOnExit();
-        FileWriter fstream = new FileWriter(processTrapScript);
-        try (BufferedWriter out = new BufferedWriter(fstream)) {
+        try (FileWriter fstream = new FileWriter(processTrapScript);
+             BufferedWriter out = new BufferedWriter(fstream)) {
             out.write("#!/bin/bash\n" +
-                "echo \\\"ProcessTrap.sh started: trapping SIGTERM/SIGINT\\\"\n" +
-                "trap bashtrap SIGTERM SIGINT\n" +
-                "bashtrap()\n" +
-                "{\n" +
-                "    echo \\\"SIGTERM/SIGINT detected!\\\"\n" +
-                "}\n" +
-                "\n" +
+                "echo \\\"ProcessTrap.sh started\\\"\n" +
                 "while :\n" +
                 "do\n" +
                 "    sleep 1;\n" +
@@ -96,33 +90,6 @@
         processTrapScript.setExecutable(true, true);
     }
 
-    @Override
-    public void runTest() throws Exception {
-        killProc(false);
-        Thread.sleep(1000);
-        if (!p.isAlive())
-            throw new RuntimeException("Process terminated prematurely.");
-        killProc(true).waitFor();
-        if (p.isAlive())
-            throw new RuntimeException("Problem terminating the process.");
-    }
-}
-
-class MacTest extends UnixTest {
-    public MacTest(File script) throws IOException {
-        super(script);
-    }
-
-    @Override
-    public void runTest() throws Exception {
-        // On Mac, it appears that when we close the processes streams
-        // after a destroy() call, the process terminates with a
-        // SIGPIPE even if it was trapping the SIGTERM, so as with
-        // windows, we skip the trap test and go straight to destroyForcibly().
-        killProc(true).waitFor();
-        if (p.isAlive())
-            throw new RuntimeException("Problem terminating the process.");
-    }
 }
 
 class WindowsTest extends ProcessTest {
@@ -133,10 +100,6 @@
         p = bldr.start();
     }
 
-    @Override
-    public void runTest() throws Exception {
-        killProc(true).waitFor();
-    }
 }
 
 public class DestroyTest {
@@ -148,12 +111,11 @@
         } else {
             File userDir = new File(System.getProperty("user.dir", "."));
             File tempFile = File.createTempFile("ProcessTrap-", ".sh", userDir);
-            if (osName.startsWith("Linux") == true
+            if (osName.startsWith("Linux")
+                    || osName.startsWith("Mac OS")
                     || osName.equals("SunOS")
                     || osName.equals("AIX")) {
                 return new UnixTest(tempFile);
-            } else if (osName.startsWith("Mac OS")) {
-                return new MacTest(tempFile);
             }
         }
         return null;
--- a/test/jdk/java/lang/String/Indent.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/String/Indent.java	Tue Jan 22 09:43:38 2019 -0500
@@ -67,7 +67,7 @@
                         Stream<String> stream = input.lines();
                         if (adjust > 0) {
                             final String spaces = " ".repeat(adjust);
-                            stream = stream.map(s -> s.isBlank() ? s : spaces + s);
+                            stream = stream.map(s -> spaces + s);
                         } else if (adjust < 0) {
                             stream = stream.map(s -> s.substring(Math.min(-adjust, indexOfNonWhitespace(s))));
                         }
--- a/test/jdk/java/lang/constant/CondyDescTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/constant/CondyDescTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -67,7 +67,6 @@
 
     private void testVarHandleDesc(DynamicConstantDesc<VarHandle> r, VarHandle vh) throws ReflectiveOperationException  {
         testSymbolicDesc(r);
-        assertEquals(r.resolveConstantDesc(LOOKUP), vh);
         assertEquals(vh.describeConstable().orElseThrow(), r);
     }
 
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessBoolean.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessBoolean.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessByte.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessByte.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessChar.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessChar.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessDouble.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessFloat.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessFloat.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessInt.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessInt.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessLong.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessLong.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessShort.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessShort.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -141,8 +141,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessString.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestAccessString.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -143,8 +143,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsDouble.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsDouble.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsFloat.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsInt.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsShort.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -93,8 +93,6 @@
             for (int j = 0; j < vhs1.length; j++) {
                 if (i == j) {
                     assertEquals(vhs1[i], vhs1[i]);
-                    assertEquals(vhs1[i], vhs2[i]);
-                    assertEquals(vhs1[i].hashCode(), vhs2[i].hashCode());
                 }
                 else {
                     assertNotEquals(vhs1[i], vhs1[j]);
--- a/test/jdk/java/math/BigDecimal/AddTests.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/math/BigDecimal/AddTests.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6362557
+ * @bug 6362557 8200698
  * @summary Some tests of add(BigDecimal, mc)
  * @author Joseph D. Darcy
  */
@@ -290,12 +290,35 @@
         return failures;
     }
 
+    private static int arithmeticExceptionTest() {
+        int failures = 0;
+        BigDecimal x;
+        try {
+            //
+            // The string representation "1e2147483647", which is equivalent
+            // to 10^Integer.MAX_VALUE, is used to create an augend with an
+            // unscaled value of 1 and a scale of -Integer.MAX_VALUE. The
+            // addend "1" has an unscaled value of 1 with a scale of 0. The
+            // addition is performed exactly and is specified to have a
+            // preferred scale of max(-Integer.MAX_VALUE, 0). As the scale
+            // of the result is 0, a value with Integer.MAX_VALUE + 1 digits
+            // would need to be created. Therefore the next statement is
+            // expected to overflow with an ArithmeticException.
+            //
+            x = new BigDecimal("1e2147483647").add(new BigDecimal(1));
+            failures++;
+        } catch (ArithmeticException ae) {
+        }
+        return failures;
+    }
+
     public static void main(String argv[]) {
         int failures = 0;
 
         failures += extremaTests();
         failures += roundingGradationTests();
         failures += precisionConsistencyTest();
+        failures += arithmeticExceptionTest();
 
         if (failures > 0) {
             throw new RuntimeException("Incurred " + failures +
--- a/test/jdk/java/math/BigDecimal/Constructor.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/math/BigDecimal/Constructor.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -23,20 +23,48 @@
 
 /*
  * @test
- * @bug 4259453
- * @summary Test string constructor of BigDecimal
+ * @bug 4259453 8200698
+ * @summary Test constructors of BigDecimal
+ * @library ..
+ * @run testng Constructor
  */
+
 import java.math.BigDecimal;
+import org.testng.annotations.Test;
 
 public class Constructor {
-    public static void main(String[] args) throws Exception {
-        boolean nfe = false;
+    @Test(expectedExceptions=NumberFormatException.class)
+    public void stringConstructor() {
+        BigDecimal bd = new BigDecimal("1.2e");
+    }
+
+    @Test(expectedExceptions=NumberFormatException.class)
+    public void charArrayConstructorNegativeOffset() {
+        BigDecimal bd = new BigDecimal(new char[5], -1, 4, null);
+    }
+
+    @Test(expectedExceptions=NumberFormatException.class)
+    public void charArrayConstructorNegativeLength() {
+        BigDecimal bd = new BigDecimal(new char[5], 0, -1, null);
+    }
+
+    @Test(expectedExceptions=NumberFormatException.class)
+    public void charArrayConstructorIntegerOverflow() {
         try {
-            BigDecimal bd = new BigDecimal("1.2e");
-        } catch (NumberFormatException e) {
-            nfe = true;
+            BigDecimal bd = new BigDecimal(new char[5], Integer.MAX_VALUE - 5,
+                6, null);
+        } catch (NumberFormatException nfe) {
+            if (nfe.getCause() instanceof IndexOutOfBoundsException) {
+                throw new RuntimeException
+                    ("NumberFormatException should not have a cause");
+            } else {
+                throw nfe;
+            }
         }
-        if (!nfe)
-            throw new Exception("Didn't throw NumberFormatException");
+    }
+
+    @Test(expectedExceptions=NumberFormatException.class)
+    public void charArrayConstructorIndexOutOfBounds() {
+        BigDecimal bd = new BigDecimal(new char[5], 1, 5, null);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/math/BigInteger/LargeValueExceptions.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8200698
+ * @summary Tests that exceptions are thrown for ops which would overflow
+ * @requires os.maxMemory >= 4g
+ * @run testng/othervm -Xmx4g LargeValueExceptions
+ */
+import java.math.BigInteger;
+import static java.math.BigInteger.ONE;
+import org.testng.annotations.Test;
+
+//
+// The intent of this test is to probe the boundaries between overflow and
+// non-overflow, principally for multiplication and squaring, specifically
+// the largest values which should not overflow and the smallest values which
+// should. The transition values used are not necessarily at the exact
+// boundaries but should be "close." Quite a few different values were used
+// experimentally before settling on the ones in this test. For multiplication
+// and squaring all cases are exercised: definite overflow and non-overflow
+// which can be detected "up front," and "indefinite" overflow, i.e., overflow
+// which cannot be detected up front so further calculations are required.
+//
+// Testing negative values is unnecessary. For both multiplication and squaring
+// the paths lead to the Toom-Cook algorithm where the signum is used only to
+// determine the sign of the result and not in the intermediate calculations.
+// This is also true for exponentiation.
+//
+// @Test annotations with optional element "enabled" set to "false" should
+// succeed when "enabled" is set to "true" but they take too to run in the
+// course of the typical regression test execution scenario.
+//
+public class LargeValueExceptions {
+    // BigInteger.MAX_MAG_LENGTH
+    private static final int MAX_INTS = 1 << 26;
+
+    // Number of bits corresponding to MAX_INTS
+    private static final long MAX_BITS = (0xffffffffL & MAX_INTS) << 5L;
+
+    // Half BigInteger.MAX_MAG_LENGTH
+    private static final int MAX_INTS_HALF = MAX_INTS / 2;
+
+    // --- squaring ---
+
+    // Largest no overflow determined by examining data lengths alone.
+    @Test(enabled=false)
+    public void squareNoOverflow() {
+        BigInteger x = ONE.shiftLeft(16*MAX_INTS - 1).subtract(ONE);
+        BigInteger y = x.multiply(x);
+    }
+
+    // Smallest no overflow determined by extra calculations.
+    @Test(enabled=false)
+    public void squareIndefiniteOverflowSuccess() {
+        BigInteger x = ONE.shiftLeft(16*MAX_INTS - 1);
+        BigInteger y = x.multiply(x);
+    }
+
+    // Largest overflow detected by extra calculations.
+    @Test(expectedExceptions=ArithmeticException.class,enabled=false)
+    public void squareIndefiniteOverflowFailure() {
+        BigInteger x = ONE.shiftLeft(16*MAX_INTS).subtract(ONE);
+        BigInteger y = x.multiply(x);
+    }
+
+    // Smallest overflow detected by examining data lengths alone.
+    @Test(expectedExceptions=ArithmeticException.class)
+    public void squareDefiniteOverflow() {
+        BigInteger x = ONE.shiftLeft(16*MAX_INTS);
+        BigInteger y = x.multiply(x);
+    }
+
+    // --- multiplication ---
+
+    // Largest no overflow determined by examining data lengths alone.
+    @Test(enabled=false)
+    public void multiplyNoOverflow() {
+        final int halfMaxBits = MAX_INTS_HALF << 5;
+
+        BigInteger x = ONE.shiftLeft(halfMaxBits).subtract(ONE);
+        BigInteger y = ONE.shiftLeft(halfMaxBits - 1).subtract(ONE);
+        BigInteger z = x.multiply(y);
+    }
+
+    // Smallest no overflow determined by extra calculations.
+    @Test(enabled=false)
+    public void multiplyIndefiniteOverflowSuccess() {
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS/2) - 1);
+        long m = MAX_BITS - x.bitLength();
+
+        BigInteger y = ONE.shiftLeft((int)(MAX_BITS/2) - 1);
+        long n = MAX_BITS - y.bitLength();
+
+        if (m + n != MAX_BITS) {
+            throw new RuntimeException("Unexpected leading zero sum");
+        }
+
+        BigInteger z = x.multiply(y);
+    }
+
+    // Largest overflow detected by extra calculations.
+    @Test(expectedExceptions=ArithmeticException.class,enabled=false)
+    public void multiplyIndefiniteOverflowFailure() {
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS/2)).subtract(ONE);
+        long m = MAX_BITS - x.bitLength();
+
+        BigInteger y = ONE.shiftLeft((int)(MAX_BITS/2)).subtract(ONE);
+        long n = MAX_BITS - y.bitLength();
+
+        if (m + n != MAX_BITS) {
+            throw new RuntimeException("Unexpected leading zero sum");
+        }
+
+        BigInteger z = x.multiply(y);
+    }
+
+    // Smallest overflow detected by examining data lengths alone.
+    @Test(expectedExceptions=ArithmeticException.class)
+    public void multiplyDefiniteOverflow() {
+        // multiply by 4 as MAX_INTS_HALF refers to ints
+        byte[] xmag = new byte[4*MAX_INTS_HALF];
+        xmag[0] = (byte)0xff;
+        BigInteger x = new BigInteger(1, xmag);
+
+        byte[] ymag = new byte[4*MAX_INTS_HALF + 1];
+        ymag[0] = (byte)0xff;
+        BigInteger y = new BigInteger(1, ymag);
+
+        BigInteger z = x.multiply(y);
+    }
+
+    // --- exponentiation ---
+
+    @Test(expectedExceptions=ArithmeticException.class)
+    public void powOverflow() {
+        BigInteger.TEN.pow(Integer.MAX_VALUE);
+    }
+
+    @Test(expectedExceptions=ArithmeticException.class)
+    public void powOverflow1() {
+        int shift = 20;
+        int exponent = 1 << shift;
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS / exponent));
+        BigInteger y = x.pow(exponent);
+    }
+
+    @Test(expectedExceptions=ArithmeticException.class)
+    public void powOverflow2() {
+        int shift = 20;
+        int exponent = 1 << shift;
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS / exponent)).add(ONE);
+        BigInteger y = x.pow(exponent);
+    }
+
+    @Test(expectedExceptions=ArithmeticException.class,enabled=false)
+    public void powOverflow3() {
+        int shift = 20;
+        int exponent = 1 << shift;
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS / exponent)).subtract(ONE);
+        BigInteger y = x.pow(exponent);
+    }
+
+    @Test(enabled=false)
+    public void powOverflow4() {
+        int shift = 20;
+        int exponent = 1 << shift;
+        BigInteger x = ONE.shiftLeft((int)(MAX_BITS / exponent - 1)).add(ONE);
+        BigInteger y = x.pow(exponent);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/ALPNFailureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @summary This test will timeout if the ALPN CF is not completed
+ *          when a 'Connection reset by peer' exception is raised
+ *          during the handshake.
+ * @bug 8217094
+ * @modules java.net.http
+ *          java.logging
+ * @build ALPNFailureTest
+ * @run main/othervm -Djdk.internal.httpclient.debug=true ALPNFailureTest HTTP_1_1
+ * @run main/othervm ALPNFailureTest HTTP_2
+ */
+import javax.net.ServerSocketFactory;
+import javax.net.ssl.SSLContext;
+import java.io.Closeable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.ProxySelector;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
+import java.net.URI;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+import java.net.http.HttpTimeoutException;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
+public class ALPNFailureTest {
+
+
+    public static void main(String[] args) throws Exception{
+        if (args == null || args.length == 0) {
+            args = new String[] {HttpClient.Version.HTTP_1_1.name()};
+        }
+        ServerSocket socket = ServerSocketFactory.getDefault()
+                .createServerSocket(0, 10, InetAddress.getLoopbackAddress());
+
+        test(socket, null, null, args);
+    }
+
+    public static void test(ServerSocket socket, SSLContext context,
+                            ProxySelector ps, String... args)
+            throws Exception
+    {
+        System.out.println("Tests a race condition in SSLTube/SSLFlowDelegate");
+        System.out.println("This test will timeout if the ALPN CF is not completed" +
+                " when a 'Connection reset by peer' exception is raised" +
+                " during the handshake - see 8217094.");
+
+        URI uri = new URI("https", null,
+                socket.getInetAddress().getHostAddress(), socket.getLocalPort(),
+                "/ReadOnlyServer/https_1_1/", null, null);
+        HttpRequest request1 = HttpRequest.newBuilder(uri)
+                .GET().build();
+        HttpRequest request2 = HttpRequest.newBuilder(uri)
+                .POST(HttpRequest.BodyPublishers.ofString("foo")).build();
+
+        ReadOnlyServer server = new ReadOnlyServer(socket);
+        Thread serverThread = new Thread(server, "ServerThread");
+        serverThread.start();
+        try {
+            for (var arg : args) {
+                var version = HttpClient.Version.valueOf(arg);
+                HttpClient.Builder builder = HttpClient.newBuilder()
+                        .version(version);
+                if (ps != null) builder.proxy(ps);
+                if (context != null) builder.sslContext(context);
+
+                HttpClient client = builder.build();
+                for (var request : List.of(request1, request2)) {
+                    System.out.println("Server is " + socket.getLocalSocketAddress()
+                            + ", Version is " + version + ", Method is " + request.method()
+                            + (ps == null ? ", no proxy"
+                            : (", Proxy is " + ps.select(request.uri()))));
+                    try {
+                        HttpResponse<String> resp =
+                                client.send(request, HttpResponse.BodyHandlers.ofString());
+                        throw new AssertionError(
+                                "Client should not have received any response: " + resp);
+                    } catch (HttpTimeoutException x) {
+                        System.out.println("Unexpected " + x);
+                        x.printStackTrace();
+                        throw new AssertionError("Unexpected exception " + x, x);
+                    } catch (Exception x) {
+                        // We expect IOException("Connection reset by peer"), but
+                        // any exception would do: we just don't want to linger
+                        // forever.
+                        System.err.println("Client got expected exception: " + x);
+                        x.printStackTrace(System.out);
+                    }
+                }
+            }
+        } finally {
+            server.close();
+        }
+    }
+
+    public static class ReadOnlyServer  implements Runnable, Closeable {
+        final ServerSocket socket;
+        final AtomicReference<Throwable> errorRef = new AtomicReference<>();
+        final AtomicBoolean closing = new AtomicBoolean();
+        ReadOnlyServer(ServerSocket socket) {
+            this.socket = socket;
+        }
+
+        @Override
+        public void run() {
+            int count = 0;
+            int all = 0;
+            try {
+                System.out.println("Server starting");
+                while (!closing.get()) {
+                    all += count;
+                    count = 0;
+                    try (Socket client = socket.accept()) {
+                        client.setSoTimeout(1000);
+                        client.setOption(StandardSocketOptions.SO_LINGER, 0);
+                        InputStream is = client.getInputStream();
+                        OutputStream os = client.getOutputStream();
+                        boolean drain = true;
+                        int timeouts = 0;
+                        // now read some byte from the ClientHello
+                        // and abruptly close the socket.
+                        while (drain) {
+                            try {
+                                is.read();
+                                count++;
+                                if (count >= 50) {
+                                    drain = false;
+                                }
+                            } catch (SocketTimeoutException so) {
+                                // make sure we read something
+                                if (count > 0) timeouts++;
+                                if (timeouts == 5) {
+                                    // presumably the client is
+                                    // waiting for us to answer...
+                                    // but we should not reach here.
+                                    drain = false;
+                                }
+                            }
+                        }
+                        System.out.println("Got " + count + " bytes");
+                    }
+                }
+            } catch (Throwable t) {
+                if (!closing.get()) {
+                    errorRef.set(t);
+                    t.printStackTrace();
+                }
+            } finally {
+                System.out.println("Server existing after reading " + (all + count) + " bytes");
+                close();
+            }
+
+        }
+
+        @Override
+        public void close() {
+            if (closing.getAndSet(true))
+                return; // already closed
+            try {
+                socket.close();
+            } catch (IOException x) {
+                System.out.println("Exception while closing: " + x);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/ALPNProxyFailureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @summary This test will timeout if the ALPN CF is not completed
+ *          when a 'Connection reset by peer' exception is raised
+ *          during the handshake.
+ * @bug 8217094
+ * @library /test/lib http2/server
+ * @build jdk.test.lib.net.SimpleSSLContext HttpServerAdapters DigestEchoServer
+ *        ALPNFailureTest ALPNProxyFailureTest
+ * @modules java.net.http/jdk.internal.net.http.common
+ *          java.net.http/jdk.internal.net.http.frame
+ *          java.net.http/jdk.internal.net.http.hpack
+ *          java.logging
+ *          java.base/sun.net.www.http
+ *          java.base/sun.net.www
+ *          java.base/sun.net
+ * @build ALPNFailureTest
+ * @run main/othervm -Djdk.internal.httpclient.debug=true -Dtest.nolinger=true ALPNProxyFailureTest HTTP_1_1
+ * @run main/othervm -Dtest.nolinger=true ALPNProxyFailureTest HTTP_2
+ */
+import javax.net.ServerSocketFactory;
+import javax.net.ssl.SSLContext;
+import jdk.test.lib.net.SimpleSSLContext;
+import java.net.InetAddress;
+import java.net.ProxySelector;
+import java.net.ServerSocket;
+import java.net.http.HttpClient;
+
+public class ALPNProxyFailureTest extends ALPNFailureTest {
+
+    static final SSLContext context;
+    static {
+        try {
+            context = new SimpleSSLContext().get();
+            SSLContext.setDefault(context);
+        } catch (Exception x) {
+            throw new ExceptionInInitializerError(x);
+        }
+    }
+
+    public static void main(String[] args) throws Exception{
+        if (args == null || args.length == 0) {
+            args = new String[] {HttpClient.Version.HTTP_1_1.name()};
+        }
+        ServerSocket socket = ServerSocketFactory.getDefault()
+                .createServerSocket(0, 10, InetAddress.getLoopbackAddress());
+
+        DigestEchoServer.TunnelingProxy proxy = DigestEchoServer.createHttpsProxyTunnel(
+                DigestEchoServer.HttpAuthSchemeType.NONE);
+        ProxySelector ps = ProxySelector.of(proxy.getProxyAddress());
+
+        try {
+            test(socket, context, ps, args);
+        } finally {
+            proxy.stop();
+        }
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/net/httpclient/AuthSchemesTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/**
+ * @test
+ * @bug 8217237
+ * @modules java.net.http
+ * @run main/othervm AuthSchemesTest
+ * @summary HttpClient does not deal well with multi-valued WWW-Authenticate challenge headers
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.*;
+import java.net.Authenticator;
+import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
+import java.net.http.HttpResponse;
+
+public class AuthSchemesTest {
+    static class BasicServer extends Thread {
+
+        ServerSocket server;
+
+        Socket s;
+        InputStream is;
+        OutputStream os;
+        static final String RESPONSE = "Hello world";
+        static final String respLength = Integer.toString(RESPONSE.length());
+        static final String realm = "wally world";
+
+        String reply1 = "HTTP/1.1 401 Unauthorized\r\n"+
+                "WWW-Authenticate: BarScheme\r\n" +
+                "WWW-Authenticate: FooScheme realm=\""+realm+"\"\r\n" +
+                "WWW-Authenticate: Basic realm=\""+realm+"\"\r\n" +
+                "WWW-Authenticate: WoofScheme\r\n\r\n";
+
+        String reply2 = "HTTP/1.1 200 OK\r\n"+
+                "Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" +
+                "Server: Apache/1.3.14 (Unix)\r\n" +
+                "Connection: close\r\n" +
+                "Content-Type: text/html; charset=iso-8859-1\r\n" +
+                "Content-Length: " + respLength + "\r\n\r\n";
+
+        BasicServer(ServerSocket s) {
+            server = s;
+        }
+
+        String response() {
+            return RESPONSE;
+        }
+
+        void readAll(Socket s) throws IOException {
+            byte[] buf = new byte [128];
+            InputStream is = s.getInputStream();
+            s.setSoTimeout(1000);
+            try {
+                while (is.read(buf) > 0) ;
+            } catch (SocketTimeoutException x) { }
+        }
+
+        public void run() {
+            try {
+                System.out.println("Server 1: accept");
+                s = server.accept();
+                System.out.println("accepted");
+                os = s.getOutputStream();
+                os.write(reply1.getBytes());
+                readAll(s);
+                s.close();
+
+                System.out.println("Server 2: accept");
+                s = server.accept();
+                System.out.println("accepted");
+                os = s.getOutputStream();
+                os.write((reply2+RESPONSE).getBytes());
+                readAll(s);
+                s.close();
+
+            }
+            catch (Exception e) {
+                System.out.println(e);
+            }
+            finished();
+        }
+
+        boolean isfinished = false;
+
+        public synchronized void finished() {
+            isfinished = true;
+            notifyAll();
+        }
+
+        public synchronized void waitforfinish() {
+            while (!isfinished) {
+                try {
+                    wait();
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    static class Auth extends Authenticator {
+        protected PasswordAuthentication getPasswordAuthentication() {
+            return new PasswordAuthentication("user", new char[] {'a','b','c'});
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        ServerSocket serversocket = null;
+        BasicServer server = null;
+        Auth authenticator = new Auth();
+
+        serversocket = new ServerSocket(0, 10, InetAddress.getLoopbackAddress());
+        int port = serversocket.getLocalPort();
+        server = new BasicServer(serversocket);
+
+        HttpClient client = HttpClient.newBuilder()
+                .authenticator(authenticator)
+                .build();
+        server.start();
+        URI uri = URI.create("http://127.0.0.1:" + port + "/foo");
+        HttpRequest request = HttpRequest.newBuilder(uri)
+                .GET()
+                .build();
+        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
+        if (response.statusCode() != 200 || !response.body().equals(server.response())) {
+            System.out.println("Status code = " + response.statusCode());
+            serversocket.close();
+            throw new RuntimeException("Test failed");
+        }
+        serversocket.close();
+        server.waitforfinish();
+        System.out.println("OK");
+    }
+}
--- a/test/jdk/java/net/httpclient/DigestEchoServer.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/net/httpclient/DigestEchoServer.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -41,6 +41,7 @@
 import java.net.PasswordAuthentication;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.net.StandardSocketOptions;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -77,6 +78,8 @@
 
     public static final boolean DEBUG =
             Boolean.parseBoolean(System.getProperty("test.debug", "false"));
+    public static final boolean NO_LINGER =
+            Boolean.parseBoolean(System.getProperty("test.nolinger", "false"));
     public enum HttpAuthType {
         SERVER, PROXY, SERVER307, PROXY305
         /* add PROXY_AND_SERVER and SERVER_PROXY_NONE */
@@ -1603,6 +1606,11 @@
                     Socket toClose;
                     try {
                         toClose = clientConnection = ss.accept();
+                        if (NO_LINGER) {
+                            // can be useful to trigger "Connection reset by peer"
+                            // errors on the client side.
+                            clientConnection.setOption(StandardSocketOptions.SO_LINGER, 0);
+                        }
                     } catch (IOException io) {
                         if (DEBUG || !stopped) io.printStackTrace(System.out);
                         break;
--- a/test/jdk/java/net/httpclient/Response204.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/net/httpclient/Response204.java	Tue Jan 22 09:43:38 2019 -0500
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug 8211437
+ * @bug 8211437 8216974
  * @run main/othervm -Djdk.httpclient.HttpClient.log=headers,requests Response204
  * @summary
  */
@@ -35,6 +35,7 @@
 import java.net.http.HttpResponse;
 import java.util.*;
 import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.logging.*;
 import java.io.*;
 import java.net.*;
@@ -44,6 +45,9 @@
  */
 public class Response204 {
 
+    // check for 8216974
+    static final AtomicReference<Exception> serverError = new AtomicReference<>();
+
     public static void main (String[] args) throws Exception {
         Logger logger = Logger.getLogger ("com.sun.net.httpserver");
         ConsoleHandler c = new ConsoleHandler();
@@ -80,6 +84,10 @@
             } catch (IOException ioe) {
                 System.out.println("OK 2");
             }
+
+            // check for 8216974
+            Exception error = serverError.get();
+            if (error != null) throw error;
         } finally {
             server.stop(2);
             executor.shutdown();
@@ -90,17 +98,33 @@
 
     static class Handler implements HttpHandler {
         volatile int counter = 0;
+        volatile InetSocketAddress remote;
 
         public void handle(HttpExchange t)
                 throws IOException {
             InputStream is = t.getRequestBody();
             Headers map = t.getRequestHeaders();
             Headers rmap = t.getResponseHeaders();
+            if (counter % 2 == 0) {
+                // store the client's address
+                remote = t.getRemoteAddress();
+                System.out.println("Server received request from: " + remote);
+            }
             while (is.read() != -1) ;
             is.close();
-            if (counter++ == 1) {
+            if ((++counter) % 2 == 0) {
                 // pretend there is a body
                 rmap.set("Content-length", "10");
+                // 8216974: the client should have returned the connection
+                // to the pool and should therefore have the same
+                // remote address.
+                if (!t.getRemoteAddress().equals(remote)) {
+                    String msg = "Unexpected remote address: "
+                            + t.getRemoteAddress()
+                            + " - should have been " + remote;
+                    System.out.println(msg);
+                    serverError.set(new Exception(msg));
+                }
             }
             t.sendResponseHeaders(204, -1);
             t.close();
--- a/test/jdk/java/net/httpclient/ShortResponseBody.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/net/httpclient/ShortResponseBody.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -23,6 +23,7 @@
 
 /*
  * @test
+ * @bug 8216498
  * @summary Tests Exception detail message when too few response bytes are
  *          received before a socket exception or eof.
  * @library /test/lib
@@ -61,6 +62,7 @@
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.SSLServerSocketFactory;
 import javax.net.ssl.SSLParameters;
 import javax.net.ssl.SSLSocket;
@@ -224,8 +226,7 @@
                 fail("UNEXPECTED RESPONSE: " + response);
             } catch (IOException ioe) {
                 out.println("Caught expected exception:" + ioe);
-                String msg = ioe.getMessage();
-                assertTrue(msg.contains(expectedMsg), "exception msg:[" + msg + "]");
+                assertExpectedMessage(request, ioe, expectedMsg);
                 // synchronous API must have the send method on the stack
                 assertSendMethodOnStack(ioe);
                 assertNoConnectionExpiredException(ioe);
@@ -252,8 +253,7 @@
                 if (ee.getCause() instanceof IOException) {
                     IOException ioe = (IOException) ee.getCause();
                     out.println("Caught expected exception:" + ioe);
-                    String msg = ioe.getMessage();
-                    assertTrue(msg.contains(expectedMsg), "exception msg:[" + msg + "]");
+                    assertExpectedMessage(request, ioe, expectedMsg);
                     assertNoConnectionExpiredException(ioe);
                 } else {
                     throw ee;
@@ -335,15 +335,13 @@
                 fail("UNEXPECTED RESPONSE: " + response);
             } catch (IOException ioe) {
                 out.println("Caught expected exception:" + ioe);
-                String msg = ioe.getMessage();
 
                 List<String> expectedMessages = new ArrayList<>();
                 expectedMessages.add(expectedMsg);
                 MSGS_ORDER.stream().takeWhile(s -> !s.equals(expectedMsg))
                                    .forEach(expectedMessages::add);
 
-                assertTrue(expectedMessages.stream().anyMatch(s -> msg.indexOf(s) != -1),
-                           "exception msg:[" + msg + "], not in [" + expectedMessages);
+                assertExpectedMessage(request, ioe, expectedMessages);
                 // synchronous API must have the send method on the stack
                 assertSendMethodOnStack(ioe);
                 assertNoConnectionExpiredException(ioe);
@@ -379,8 +377,7 @@
                     MSGS_ORDER.stream().takeWhile(s -> !s.equals(expectedMsg))
                             .forEach(expectedMessages::add);
 
-                    assertTrue(expectedMessages.stream().anyMatch(s -> msg.indexOf(s) != -1),
-                               "exception msg:[" + msg + "], not in [" + expectedMessages);
+                    assertExpectedMessage(request, ioe, expectedMessages);
                     assertNoConnectionExpiredException(ioe);
                 } else {
                     throw ee;
@@ -389,6 +386,31 @@
         }
     }
 
+
+    void assertExpectedMessage(HttpRequest request, Throwable t, String expected) {
+        if (request.uri().getScheme().equalsIgnoreCase("https")
+                && (t instanceof SSLHandshakeException)) {
+            // OK
+            out.println("Skipping expected " + t);
+        } else {
+            String msg = t.getMessage();
+            assertTrue(msg.contains(expected),
+                    "exception msg:[" + msg + "]");
+        }
+    }
+
+    void assertExpectedMessage(HttpRequest request, Throwable t, List<String> expected) {
+        if (request.uri().getScheme().equalsIgnoreCase("https")
+                && (t instanceof SSLHandshakeException)) {
+            // OK
+            out.println("Skipping expected " + t);
+        } else {
+            String msg = t.getMessage();
+            assertTrue(expected.stream().anyMatch(msg::contains),
+                    "exception msg:[" + msg + "] not in " + Arrays.asList(expected));
+        }
+    }
+
     // Asserts that the "send" method appears in the stack of the given
     // exception. The synchronous API must contain the send method on the stack.
     static void assertSendMethodOnStack(IOException ioe) {
--- a/test/jdk/java/nio/channels/SocketChannel/SocketOptionTests.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/nio/channels/SocketChannel/SocketOptionTests.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -32,14 +32,15 @@
  * @run main/othervm --limit-modules=java.base SocketOptionTests
  */
 
-import java.nio.channels.*;
-import java.net.*;
 import java.io.IOException;
-import java.util.*;
+import java.net.InetSocketAddress;
+import java.net.SocketOption;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.SocketChannel;
+import java.util.Set;
+import sun.net.ext.ExtendedSocketOptions;
 import static java.net.StandardSocketOptions.*;
 import static jdk.net.ExtendedSocketOptions.*;
-import static sun.net.ext.ExtendedSocketOptions.SOCK_STREAM;
-import sun.net.ext.ExtendedSocketOptions;
 
 public class SocketOptionTests {
 
@@ -52,26 +53,26 @@
     }
 
     public static void main(String[] args) throws IOException {
-        SocketChannel sc = SocketChannel.open();
-
-        // check supported options
-        Set<SocketOption<?>> options = sc.supportedOptions();
+        try (var channel = SocketChannel.open()) {
+            test(channel);
+        }
+    }
 
-        List<? extends SocketOption> extOptions = List.of(TCP_KEEPCOUNT,
-                TCP_KEEPIDLE, TCP_KEEPINTERVAL);
-        List<? extends SocketOption> expected;
-        boolean keepAliveOptsupported;
-        if (keepAliveOptsupported=ExtendedSocketOptions.options(SOCK_STREAM)
-                .containsAll(extOptions)) {
-            expected = Arrays.asList(SO_SNDBUF, SO_RCVBUF, SO_KEEPALIVE,
+    static void test(SocketChannel sc) throws IOException {
+        Set<SocketOption<?>> extendedOptions = ExtendedSocketOptions.clientSocketOptions();
+        Set<SocketOption<?>> keepAliveOptions = Set.of(TCP_KEEPCOUNT, TCP_KEEPIDLE, TCP_KEEPINTERVAL);
+        boolean keepAliveOptionsSupported = extendedOptions.containsAll(keepAliveOptions);
+        Set<SocketOption<?>> expected;
+        if (keepAliveOptionsSupported) {
+            expected = Set.of(SO_SNDBUF, SO_RCVBUF, SO_KEEPALIVE,
                     SO_REUSEADDR, SO_LINGER, TCP_NODELAY, TCP_KEEPCOUNT,
                     TCP_KEEPIDLE, TCP_KEEPINTERVAL);
         } else {
-            expected = Arrays.asList(SO_SNDBUF, SO_RCVBUF, SO_KEEPALIVE,
+            expected = Set.of(SO_SNDBUF, SO_RCVBUF, SO_KEEPALIVE,
                     SO_REUSEADDR, SO_LINGER, TCP_NODELAY);
         }
         for (SocketOption opt: expected) {
-            if (!options.contains(opt))
+            if (!sc.supportedOptions().contains(opt))
                 throw new RuntimeException(opt.name() + " should be supported");
         }
 
@@ -133,7 +134,7 @@
             throw new RuntimeException("expected linger to be disabled");
         sc.setOption(TCP_NODELAY, true);        // can't check
         sc.setOption(TCP_NODELAY, false);       // can't check
-        if (keepAliveOptsupported) {
+        if (keepAliveOptionsSupported) {
             sc.setOption(TCP_KEEPIDLE, 1234);
             checkOption(sc, TCP_KEEPIDLE, 1234);
             sc.setOption(TCP_KEEPINTERVAL, 123);
@@ -161,4 +162,4 @@
         } catch (ClosedChannelException x) {
         }
     }
-}
+}
\ No newline at end of file
--- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -48,6 +48,7 @@
 import jdk.test.lib.JDKToolFinder;
 import jdk.test.lib.Utils;
 import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.Platform;
 
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
@@ -67,7 +68,7 @@
     private static final String ARCH = System.getProperty("os.arch");
     private static final String OS_ARCH = ARCH.equals("i386") ? "i586" : ARCH;
 
-    private static final Path LD_LIBRARY_PATH
+    private static final Path libraryPath
             = Paths.get(System.getProperty("java.library.path"));
 
     @DataProvider
@@ -98,7 +99,8 @@
 
     @Test(dataProvider = "testCases")
     public void test(String desc, List<String> opts) throws Throwable {
-        System.out.println("LD_LIBRARY_PATH=" + LD_LIBRARY_PATH);
+        String pathVar = Platform.sharedLibraryPathVariableName();
+        System.out.println(pathVar + "=" + libraryPath);
 
         List<String> args = new ArrayList<>();
         args.add(JDKToolFinder.getJDKTool("java"));
@@ -111,9 +113,8 @@
 
         Map<String, String> env = pb.environment();
         env.put("CLASSPATH", TEST_CLASSES);
-        env.put("LD_LIBRARY_PATH", LD_LIBRARY_PATH.toString());
+        env.put(pathVar, libraryPath.toString());
 
-        ProcessTools.executeCommand(pb)
-                    .shouldHaveExitValue(0);
+        ProcessTools.executeCommand(pb).shouldHaveExitValue(0);
     }
 }
--- a/test/jdk/java/nio/file/Files/Misc.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/java/nio/file/Files/Misc.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 4313887 6838333 8005566 8032220
+ * @bug 4313887 6838333 8005566 8032220 8215467
  * @summary Unit test for miscellenous methods in java.nio.file.Files
  * @library ..
  */
@@ -102,6 +102,18 @@
             } finally {
                 delete(file);
             }
+            Path dir = tmpdir.resolve("hidden");
+            createDirectory(dir);
+            try {
+                setAttribute(dir, "dos:hidden", true);
+                try {
+                    assertTrue(isHidden(dir));
+                } finally {
+                    setAttribute(dir, "dos:hidden", false);
+                }
+            } finally {
+                delete(dir);
+            }
         } else {
             assertTrue(isHidden(file));
         }
--- a/test/jdk/javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS buffer overflow and underflow status when dealing with
  *          application data.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.base/sun.security.util
--- a/test/jdk/javax/net/ssl/DTLS/DTLSDataExchangeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSDataExchangeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS application data exchange using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSEnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSEnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites with replicated packets check.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSMFLNTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSMFLNTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites with different maximum fragment length. Testing of
  *          MFLN extension.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@
  * @test
  * @bug 8043758
  * @summary Testing DTLS engines do not enable RC4 ciphers by default.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines re-handshaking using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing DTLS engines re-handshaking using each of the supported
  *          cipher suites with application data exchange before and after
  *          re-handshake and closing of the engines.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing that try to enable unsupported ciphers
  *          causes IllegalArgumentException.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS buffer overflow and underflow status when dealing with
  *          application data.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS application data exchange using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites with replicated packets check.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing DTLS engines handshake using each of the supported
  *          cipher suites with different maximum fragment length. Testing of
  *          MFLN extension.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@
  * @test
  * @bug 8043758
  * @summary Testing DTLS engines do not enable RC4 ciphers by default.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing DTLS engines re-handshaking using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing DTLS engines re-handshaking using each of the supported
  *          cipher suites with application data exchange before and after
  *          re-handshake and closing of the engines.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing DTLS records sequence number property support in application
  *          data exchange.
  * @key randomness
- * @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS
+ * @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8043758
  * @summary Testing that try to enable unsupported ciphers
  *          causes IllegalArgumentException.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLS/TLSDataExchangeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSDataExchangeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS application data exchange using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSEnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSEnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSHandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSHandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSMFLNTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSMFLNTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites with different maximum fragment length. Testing of
  *          MFLN extension.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSNotEnabledRC4Test.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSNotEnabledRC4Test.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@
  * @test
  * @bug 8085979
  * @summary Testing TLS engines do not enable RC4 ciphers by default.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLS/TLSRehandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSRehandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites with application data exchange before and after
  *          re-handshake and closing of the engines.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing that try to enable unsupported ciphers
  *          causes IllegalArgumentException.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/javax/net/ssl/TLSCommon/KeyAlgorithm.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * Key algorithms.
+ */
+public enum KeyAlgorithm {
+
+    DSA("DSA"),
+    RSA("RSA"),
+    EC("EC"),
+    RSASSAPSS("RSASSA-PSS");
+
+    public final String name;
+
+    private KeyAlgorithm(String name) {
+        this.name = name;
+    }
+}
--- a/test/jdk/javax/net/ssl/TLSv1/TLSDataExchangeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSDataExchangeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS application data exchange using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSEnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSEnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSHandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSHandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSMFLNTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSMFLNTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites with different maximum fragment length. Testing of
  *          MFLN extension.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@
  * @test
  * @bug 8085979
  * @summary Testing TLS engines do not enable RC4 ciphers by default.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites with application data exchange before and after
  *          re-handshake and closing of the engines.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing that try to enable unsupported ciphers
  *          causes IllegalArgumentException.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLSv11/TLSDataExchangeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSDataExchangeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS application data exchange using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSEnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSEnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSHandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSHandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSMFLNTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSMFLNTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines handshake using each of the supported
  *          cipher suites with different maximum fragment length. Testing of
  *          MFLN extension.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -25,7 +25,7 @@
  * @test
  * @bug 8085979
  * @summary Testing TLS engines do not enable RC4 ciphers by default.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -27,7 +27,7 @@
  * @summary Testing TLS engines re-handshaking using each of the supported
  *          cipher suites with application data exchange before and after
  *          re-handshake and closing of the engines.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,7 @@
  * @bug 8085979
  * @summary Testing that try to enable unsupported ciphers
  *          causes IllegalArgumentException.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          java.security.jgss/sun.security.jgss.krb5
  *          java.security.jgss/sun.security.krb5:+open
--- a/test/jdk/javax/net/ssl/TLSv12/TLSEnginesClosureTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/TLSv12/TLSEnginesClosureTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -26,7 +26,7 @@
  * @bug 8207009
  * @summary Testing TLS engines closing using each of the supported
  *          cipher suites.
- * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /test/lib
  * @modules java.security.jgss
  *          jdk.security.auth
  *          java.security.jgss/sun.security.jgss.krb5
--- a/test/jdk/javax/net/ssl/compatibility/Cert.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/Cert.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -31,235 +31,383 @@
 public enum Cert {
 
     // This certificate is generated by the below command:
-    // openssl req -x509 -newkey rsa:1024 -days 7300 \
-    //     -subj "/CN=RSA_SHA1_1024" -sha1 \
-    //     -keyout key.pem -out cert.pem
-    RSA_SHA1_1024(
-            SignatureAlgorithm.RSA,
+    // openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 \
+    //     -pkeyopt rsa_keygen_pubexp:65537 -out key.pem
+    // openssl req -x509 -new -key key.pem \
+    //     -subj "/CN=RSA-2048-SHA256" -sha256 -out cer.pem
+    RSA_2048_SHA256(
+            KeyAlgorithm.RSA,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIIB/jCCAWegAwIBAgIJANPuKkD7/jxkMA0GCSqGSIb3DQEBBQUAMBgxFjAUBgNV\n" +
-            "BAMMDVJTQV9TSEExXzEwMjQwHhcNMTcwOTA3MDIwNTM0WhcNMzcwOTAyMDIwNTM0\n" +
-            "WjAYMRYwFAYDVQQDDA1SU0FfU0hBMV8xMDI0MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n" +
-            "ADCBiQKBgQC3v7UeIxD5bdv4mqwcpah7sNxpI3IxUFzI2ao1g1jVzDPZt9Zawa3K\n" +
-            "H+m9al1Fg2X1dyNeRlbiXavcIZOQwZqNj08zJEwAdICP8iOnXQ2HUv5cpzArOPTu\n" +
-            "GY3flhf39xgiWsSdfb+cP0QsWNagNU8EtebbHndv8W+2K5JEdlpwQQIDAQABo1Aw\n" +
-            "TjAdBgNVHQ4EFgQU32KqdiGyzg39chNt/OwQzGOlUyAwHwYDVR0jBBgwFoAU32Kq\n" +
-            "diGyzg39chNt/OwQzGOlUyAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOB\n" +
-            "gQAWx8y45IIWWhy44cuQs0qcSDQihIvhXB3pvlpCNdfsSrVoaaH8lrOVjTC718ip\n" +
-            "fE1sF8I9niLHUg8WrAzdQRDsKyUhDUhEEJ7w1ffxwf8bcI9+NgWwEix0Dazzkub8\n" +
-            "2IRXuZ3dGwzoI54XtxvKMFH86nJEj4M/XQGrc9bnlhcn4g==\n" +
+            "MIIDFTCCAf2gAwIBAgIUcCwtPduMIU144++G82mUEVNNK9kwDQYJKoZIhvcNAQEL\n" +
+            "BQAwGjEYMBYGA1UEAwwPUlNBLTIwNDgtU0hBMjU2MB4XDTE5MDExNjA2MDgzNVoX\n" +
+            "DTE5MDIxNTA2MDgzNVowGjEYMBYGA1UEAwwPUlNBLTIwNDgtU0hBMjU2MIIBIjAN\n" +
+            "BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAycT4Kd742lTlULVh5BcsZIG/AvVl\n" +
+            "4IVnCoKoE8EyAf+YB2f+pYTDtyPzxnIUUqJ1/1dRY1EyHKQWRv1/J6H9qrKl48Sx\n" +
+            "zgctOMN6zrCjPGx85MWRW7jOTi9/FNjCfmmGDzo7jjfhEeSzU56zyOMMka2UvKYa\n" +
+            "P7YSTfC6nT79uaQNj/fqSK98FDLypDcrMiwzJZ7UX4M4Yo33EtqT0wFJfHl/LHJT\n" +
+            "lmpQdn7dDCqZGviP59tfuGPO7/la18OiN8hU8cttEkAcW3k19kYNhhtfxqs1MtAZ\n" +
+            "xGlN3eeW4IfjitMerEUd5wHrACyC4TKuj5NO6Wk1vl8pINsdkUttv5pHbQIDAQAB\n" +
+            "o1MwUTAdBgNVHQ4EFgQUT6UTyQ2i4qOkx3AAPwWS6wdmgncwHwYDVR0jBBgwFoAU\n" +
+            "T6UTyQ2i4qOkx3AAPwWS6wdmgncwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\n" +
+            "AQsFAAOCAQEAPa4ib8oo7vgOh1c/HBvynkzoZ/ci3hqQCArqHkTKQEFSpHeUz46j\n" +
+            "u+GBRV/bFvZWc+GR9BPedKZUyRzCy3lmWclsxXEnv1uz/PTGBRMtZpjaaveTHzXm\n" +
+            "VVIkMH+wTZsZ/EQiz2pHgPuAJdPTHlwIYOYo5jk/eZoTKGupBuce+gsn0ctSZQc/\n" +
+            "TyayRCvnbQQ9Q6VbcfbrWGAmnCa4VANGuk3uZFj2Hc87udJ+2R8WkyfgXtwypNtb\n" +
+            "1SrRuCqthfCFa4s+P0LlddVqp18gSvsiB+yA1RVZSlSD4GfJfrgtSsJu/ovqThr7\n" +
+            "+YTfrHCVl4gliXaVujl6tQHaFk23WbAMwg==\n" +
             "-----END CERTIFICATE-----",
-            "30820278020100300d06092a864886f70d0101010500048202623082025e0201" +
-            "0002818100b7bfb51e2310f96ddbf89aac1ca5a87bb0dc69237231505cc8d9aa" +
-            "358358d5cc33d9b7d65ac1adca1fe9bd6a5d458365f577235e4656e25dabdc21" +
-            "9390c19a8d8f4f33244c0074808ff223a75d0d8752fe5ca7302b38f4ee198ddf" +
-            "9617f7f718225ac49d7dbf9c3f442c58d6a0354f04b5e6db1e776ff16fb62b92" +
-            "44765a7041020301000102818100b2c5afdf5c5a9d72c73b7eb0c9465b3fcc79" +
-            "0549d946255bc0861555ef2eb503f1c67757f400cfa7019996123020fb906d5b" +
-            "b66b789ffba90b16270cbd1fbfcf285a821dcdc78fd8f17f399eb231ce9724db" +
-            "af60f9dd20f3e57bb4c0f9fdc9069589b82d442dd868d48c031eb782e27f9e70" +
-            "8469f9b3d5b1b23cee5bf1b41781024100dec184ea77c2126c6bc0c01ba727b4" +
-            "642587d63811240932334dc80c7976e0f715f156e52b352a25e5c52542af2b5f" +
-            "68a29a9b68858f313c4375cc78ec03d859024100d32be8375f52cbe904002321" +
-            "6977aee83fa88bf536d4052d2ed578727d7b7e5aeef91fc52b34c1b6638c00f0" +
-            "4c6985fdaaa2d6e72adbcc7d10ed8bafff69da29024100ae8210acd6f13519b7" +
-            "38a3c7862636ce1610daa3c5d9e3526e9acad3eafc54b57d7d3a44029b7dcf7e" +
-            "b7f9beca1842806892929949b8aa2bb9f5b9202a55c0d1024100887dc0c2c9a2" +
-            "429a823374818c2207b3a631d304d443867505e884c9bbc1ae9228146e2c8b18" +
-            "b67ca52b411010d3c3ff89e366f454076dcd08bc01a5e8790ac102402321988a" +
-            "2003e19c878791d402a7c0acdd1b6dd27203ed88f86a0e3a390ee57c0cd277f3" +
-            "ea5df6440dbc8bdb4c8b3c28fc77e6991bc4ed3f4dc0619a5b953e8e"),
+            "308204be020100300d06092a864886f70d0101010500048204a8308204a40201" +
+            "000282010100c9c4f829def8da54e550b561e4172c6481bf02f565e085670a82" +
+            "a813c13201ff980767fea584c3b723f3c6721452a275ff57516351321ca41646" +
+            "fd7f27a1fdaab2a5e3c4b1ce072d38c37aceb0a33c6c7ce4c5915bb8ce4e2f7f" +
+            "14d8c27e69860f3a3b8e37e111e4b3539eb3c8e30c91ad94bca61a3fb6124df0" +
+            "ba9d3efdb9a40d8ff7ea48af7c1432f2a4372b322c33259ed45f8338628df712" +
+            "da93d301497c797f2c7253966a50767edd0c2a991af88fe7db5fb863ceeff95a" +
+            "d7c3a237c854f1cb6d12401c5b7935f6460d861b5fc6ab3532d019c4694ddde7" +
+            "96e087e38ad31eac451de701eb002c82e132ae8f934ee96935be5f2920db1d91" +
+            "4b6dbf9a476d0203010001028201006dba71df8b8438707cf9647b2529391a3b" +
+            "b95e69888b0ee197c4b09575b6b58183f35b2a1067e06c23e03a26e6487e53bf" +
+            "96840b8827c18db713ca5eb176165713aac5f0bd65b75f6f8457b03a3dbbe9a0" +
+            "0e662784034027230b7091e54c0c253cf8c554b5acf02739231ba6d87429ecbb" +
+            "c2acc98472eb988ecc81206d165d33147e03279e60f7fbf73d8f199895f627a3" +
+            "3cf0c2ef2bcbd096f2e08b2684ea675956da0d95e941afe081e8c79ddb003b50" +
+            "0f3b340978bce6821438ef25ddbf4fc9dba3f421dbf576f3099dbd4463dbcd2f" +
+            "da5a987067d00c5af85faa7aea6427f12a1c03c9b5155fc5b5d4da51b4e9f5bf" +
+            "34087e582728bcaf40b39b0938163d02818100e379b3e110ca339eb1491b95ca" +
+            "0e73359a167722250f161ff78fef35e22282af28e02da454d0dca6af65b9118b" +
+            "6e3efe9cabae5d85746b0c336e3d9002c0575afe370ae7a0294c01988d6fa098" +
+            "9c4a6fc0816addcef3e891f2e56289da5b1b7a1c743664bb8b30ed6028942f72" +
+            "74f25c075b0646b47fae6c3fc31b4bfd05b02302818100e31210ff848f5a73c6" +
+            "1a508be415845bb18dcf09688ad543e8b040d9399850801a322e631dc605ec3e" +
+            "d25695b4f66cb6a728a4e11ff211122c7d0de7de356337b344fca03176c2c370" +
+            "7fbcdec2433a6c75d7a7d57b761ad6a8c1c8faaf316e0f410643f667958fcfac" +
+            "c9960d860c73cec45d118517fe72c5939730d8482bdb2f0281807e1a5ab0bb29" +
+            "0ce2bd6f44de8debe2cc65466cf6bdca963e5474336d10968711e93c15b152df" +
+            "9262c93b40144cd26a13a5f0bab1d7a8c92b335bbabf19f75cb5f1d5bbb2da23" +
+            "eaa1bbdb3475b80474736d29917fb3199de542dd0cfa54d54aef2fd4f0ce78f5" +
+            "59c34e1a50c3d8d4a20288855a7e59d3aa731209ec18fd04693702818100c384" +
+            "54da8edb9878c384f901db1ca3e1081b20bfeb224fcbaf59c41cc6b8dde7cfa6" +
+            "91c68a666dc723b89d113ec6488965995b8ef4a0cc0e27fc6db2cee48d4ff2ae" +
+            "5e0fd94777202d87efaaa6fe9819b7c63f1f54b5371aca2841d3887239602d0f" +
+            "2609cedb3aff08ba72d7a62aa6b4cce38e2859a6a0507b6add85fd6eb5c50281" +
+            "8100c07809a53e9ec6769bf2d31ed767766078ff7020199869473c26a211a4b2" +
+            "9828618b69e6e29ed0f1d8d8cac2c61490c3f20d19c1ff067c5d291080c8e15b" +
+            "2ce267cd37f8b0c1afe9c070418b310b5641640805d3a75890ccf6d2bf0bea11" +
+            "d327323db5452cadc1a3bd17c20ab92b6f09d4216a03c7a03c6ffc72e51f51eb" +
+            "dfa4"),
 
     // This certificate is generated by the below command:
-    // openssl req -x509 -newkey rsa:1024 -days 7300 \
-    //     -subj "/CN=www.example.com" -sha1 \
-    //     -keyout key.pem -out cert.pem
-    RSA_EXAMPLE_SHA1_1024(
-            SignatureAlgorithm.RSA,
+    // openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 \
+    //     -pkeyopt rsa_keygen_pubexp:65537 -out key.pem
+    // openssl req -x509 -new -key key.pem \
+    //     -subj "/CN=EXAMPLE" -sha256 -out cer.pem
+    EXAMPLE_RSA_2048_SHA256(
+            KeyAlgorithm.RSA,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIICAjCCAWugAwIBAgIJAK6TC9eDtZg4MA0GCSqGSIb3DQEBBQUAMBoxGDAWBgNV\n" +
-            "BAMMD3d3dy5leGFtcGxlLmNvbTAeFw0xNzExMDIwNTA5NDRaFw0zNzEwMjgwNTA5\n" +
-            "NDRaMBoxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbTCBnzANBgkqhkiG9w0BAQEF\n" +
-            "AAOBjQAwgYkCgYEAtt5kxFTzJuoxJR2UgeXUxCw7TfL3FeK3lCrU3vruBe3XKKvF\n" +
-            "oyCxf/B5ucm22gzMfOvJBWRg6KrNTrXGI1LtlmAYNDM5J0lK2N/neKOm3Qxe0d1W\n" +
-            "AZ1lwgrMNirsWu+r4UPNMq5UohL5nqVU9WwVa12t0GF3er3k32tMTBqSclcCAwEA\n" +
-            "AaNQME4wHQYDVR0OBBYEFNc8tKGfZdFyaY0ZslwGLt1kpRYAMB8GA1UdIwQYMBaA\n" +
-            "FNc8tKGfZdFyaY0ZslwGLt1kpRYAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF\n" +
-            "BQADgYEAc71ZO83YEw9WvhxDEng9tMYUhJnNZJss6+gfWjZ487aiEGnS+VgKsHWz\n" +
-            "DBLBrYe9Ag5L9f1HtPNheUbnhhBbQ607jOG/wfmpi4VoU3myB5uxOfeAZdXDOB5x\n" +
-            "bv3t7KcEhgmPjB/e123jrBK8qnAYmDlQVlkZScctB3I1OuA2Po4=\n" +
+            "MIIDBTCCAe2gAwIBAgIUfmLJ5eIbVUGXAzlZXtw08GQ6ppMwDQYJKoZIhvcNAQEL\n" +
+            "BQAwEjEQMA4GA1UEAwwHRVhBTVBMRTAeFw0xOTAxMTYwNjA4MzVaFw0xOTAyMTUw\n" +
+            "NjA4MzVaMBIxEDAOBgNVBAMMB0VYQU1QTEUwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" +
+            "DwAwggEKAoIBAQCp7IDXT8J9iDMVAuLMTZS9oDD83BDkL5INGdXk1esTzyqXFmV2\n" +
+            "d5zNTr4A8w+YstkR081zL4MyEvHyQF1IlWoniRMXTZNMYYtU8dI8h2Fl5etSIEsc\n" +
+            "ArsAp3QMcoqEu4F4T68KPU7z1M5kYKevGqPsO4GJwjoydSZMLZMrq09yEyXlnE9l\n" +
+            "pNhyfFbQIp86mtXkY9nP3hn7JX6KMZSwAHbp7FtFkGfMx+usMnsMan+Z7UyWJE3o\n" +
+            "2cf29Fr9lBdV24gWAymyJA3BAW60wEI2JPYzIZVNn4zxmlkWk5sr+m5rUCXMzsyp\n" +
+            "G+rPk7YSpPutmczPe1BEiFwkgk+E5gZsNESbAgMBAAGjUzBRMB0GA1UdDgQWBBRm\n" +
+            "mZ3V6rNvJyG5DdYt1yo/Eiz+AjAfBgNVHSMEGDAWgBRmmZ3V6rNvJyG5DdYt1yo/\n" +
+            "Eiz+AjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBNHOWMa7f8\n" +
+            "iXwhET/6Rpu0JILusRrJVGXl3JOHxDsibUPAeZ4KI7VEEBw6ln0bKAFaYg+Nh9Xh\n" +
+            "dMuPC6e5wrX2Z912ncexa7BXDQDS4VyuvEGpp7rWFNtKRfc75hKmcRz+blgdhw9m\n" +
+            "gF1VcW3vBIjAUjMllRuyPlyXThgOPwcBXGEIewvyLXWbkNDFIeqycwsQsw5JJcbA\n" +
+            "Fh4alzjapSvSM84VS79u/MxaNZAtKpaymMaM05A8vIp8iHDm4N4AhIwHLT1mrtFt\n" +
+            "8y+3p4W6vtA+SlFGz8fQw5ppoxvPeJyHZmSmGeorcBv9XXWHhJ0rGz8UbE76xE0B\n" +
+            "EwC7yAE/SiA7\n" +
             "-----END CERTIFICATE-----",
-            "30820277020100300d06092a864886f70d0101010500048202613082025d0201" +
-            "0002818100b6de64c454f326ea31251d9481e5d4c42c3b4df2f715e2b7942ad4" +
-            "defaee05edd728abc5a320b17ff079b9c9b6da0ccc7cebc9056460e8aacd4eb5" +
-            "c62352ed96601834333927494ad8dfe778a3a6dd0c5ed1dd56019d65c20acc36" +
-            "2aec5aefabe143cd32ae54a212f99ea554f56c156b5dadd061777abde4df6b4c" +
-            "4c1a927257020301000102818048af52bc1acbdededd13d4930fa28b9441c47c" +
-            "b222f5c6fc92df07676db3a815a61c9b51de0a03a347b10a609bd6459a0dd926" +
-            "38877261686a5c6bb1ca9e8ea2373870af7685e7d6cebd66faba65af2ef04bd9" +
-            "1244ae56900fcd6ce11207d8c4040176e4ba9fef3d563741a1027b229134cfe1" +
-            "c0a90d9c8eba9ce6349835e769024100e82494b6f777c784ffc29298d033e11d" +
-            "af46f0d464c4dbd950d46bcd697d0f0b49a77699f0111d408e8748f2b461ab8f" +
-            "210071c9c20d8ecee3ae229cb9c3954b024100c9a976f0011fcdc0ca7fb2f679" +
-            "974fa85d420c604ca7ff64fe4667a44f73088eef290d22195474039760e99325" +
-            "3ca45ee444588b150467d14451d3c45dab0ba5024019df39d3ca70c703c39d63" +
-            "c9342b1403c2ed1d1a0ec101df8e6a9e391e7099a4a068d187068261c8381a4b" +
-            "bf00eb81bb49ea4ac439a4592e25a1daa9acea67510241008c4640007497bdd4" +
-            "94473da26b33d06a29ecae9531dd4e2edf1cf42cfc42e53a1fac2b8183a3164c" +
-            "053999600c6fe15a4c682a3b1cb482ceb33a4416fc9ce52d024100e4f08cd10a" +
-            "5c8face0b20db86443d0a42e34dfdde236dae4f042a06dd3aff7ca159f8aa3b7" +
-            "854df41d510148096155204f2bf46c4a96e271747a4126a66ade6c"),
+            "308204be020100300d06092a864886f70d0101010500048204a8308204a40201" +
+            "000282010100a9ec80d74fc27d88331502e2cc4d94bda030fcdc10e42f920d19" +
+            "d5e4d5eb13cf2a97166576779ccd4ebe00f30f98b2d911d3cd732f833212f1f2" +
+            "405d48956a278913174d934c618b54f1d23c876165e5eb52204b1c02bb00a774" +
+            "0c728a84bb81784faf0a3d4ef3d4ce6460a7af1aa3ec3b8189c23a3275264c2d" +
+            "932bab4f721325e59c4f65a4d8727c56d0229f3a9ad5e463d9cfde19fb257e8a" +
+            "3194b00076e9ec5b459067ccc7ebac327b0c6a7f99ed4c96244de8d9c7f6f45a" +
+            "fd941755db88160329b2240dc1016eb4c0423624f63321954d9f8cf19a591693" +
+            "9b2bfa6e6b5025cccecca91beacf93b612a4fbad99cccf7b5044885c24824f84" +
+            "e6066c34449b0203010001028201005842e1357557678eec4198ab274590e1e2" +
+            "282fdf3ae2db96b8395831b1af962d8048d438458da1a3bea7d0a46fd077ed6a" +
+            "66228c16fcc570b3bd8a132a1579fb2927026ea7f8ff9db8b496e81bc5ca80df" +
+            "775c10c76edfa55a555bf5cedf5ce9c60d55b532dd24a7bfc0c1b7b7ab55c3e9" +
+            "b0c25661963de573a22494853a11dce95ea31417d3c87c806ef74cb6c8b7190c" +
+            "cfcdc2d21e8a756061c9e6cf40bca95d5aa43fb990b9492250ec9a752151320c" +
+            "b30a64beb0e17d83ad9ea702afcd5d8d6b7bfe11031aa27d83652e8db864bdbc" +
+            "447aee6e973018f77155aa24e05d3b7f9e232096ff93e8e2b1361b6cdbd4edf8" +
+            "dd88b46b178b38c34fe0ea5fc40f9102818100db14d91a4e8a89cc95a7cc687f" +
+            "2f2f295bc8a945826b3da840f871161ce2062f980d45b50172e744a308c0972e" +
+            "6f3f028465e6a59b75c0687bc3db4b69f5a931b73e9dedc6b05d41f4c1dd0575" +
+            "8e0460efba9bbb98f1c6ae3f018e2fb967a085dc5290ba8487703e1aee05fd90" +
+            "3c17867130c5676b7b9567a6fd61e9be6d660902818100c68f0053c621d52d65" +
+            "4ec381775e1b8fbf15ad391a0ad478d5b46374ad3f7c417a2f425f285999b4e6" +
+            "1672614ec6b4bad54400ecbc9e92f35cdab590a8cff4c029146a9b101d53950f" +
+            "7dddaa45946bfcf2a4e86bcddfc141a2cc49969519a326c7e5b001912e151d86" +
+            "b17f5789f39513c3f660c3e41f169a7668b22c17241e8302818100b86d0a7e4c" +
+            "d3ef40dc530f8e8052b63ef8d729382c9c1ea17f6025c2d9b9a43f789ee3a986" +
+            "78b61b5fabc485004002291a4fb6247f8456df1e21388079c8a61006149e5a46" +
+            "42bd9f026e18a3b9dc3def64a010ed91c926da148c38a8104a1e25d1dd679cbc" +
+            "684fa2d884bb62438372c2689307fb11ce4d6d9e73fb730c2d8811028181008d" +
+            "fda14c4739d68a9a11d3397835321c7f976ec290df01c64f7caa4abbc1d487b6" +
+            "6aa95a072edbfe4333f623a403f1265270490102799bb8b0c42e66fe7188230a" +
+            "bd70e6e685324a3c43d40a79ab83f5e5470c765b49119870650a92c69908d528" +
+            "ca162d68b6bd9ed9bd80c506ffcbb1d0c715b7c02083377e49ac705f34132502" +
+            "8180100e20febd1a5af92fdfc36aaf47d1a771cb1484d79e2389d5e6f47dc773" +
+            "512edef82676f9f9d5a77aac2f01d66fe864d85abcce47e3d22491421f959c1e" +
+            "5545c16fc5c5f5550ced81485dc237d9df8753cd6031e431bd34425e81b1e193" +
+            "c51a6d2c8a7cc01028f47b7fb7d79b481facb76c4775ff997f2e63acb3ff429c" +
+            "47b3"),
 
     // This certificate is generated by the below commands:
-    // openssl dsaparam -genkey 1024 -out key.pem
+    // openssl genpkey -genparam -algorithm dsa -pkeyopt dsa_paramgen_bits:2048 \
+    //     -pkeyopt dsa_paramgen_q_bits:256 -out param.pem
+    // openssl genpkey -paramfile param.pem -out key.pem
     // openssl req -x509 -new -key key.pem -days 7300 \
-    //     -subj "/CN=DSA_SHA1_1024" -sha1 -out cert.pem
-    DSA_SHA1_1024(
-            SignatureAlgorithm.DSA,
+    //     -subj "/CN=DSA-2048-SHA256" -sha256 -out cer.pem
+    DSA_2048_SHA256(
+            KeyAlgorithm.DSA,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIICuzCCAnugAwIBAgIJAMAMLRrhQWQFMAkGByqGSM44BAMwGDEWMBQGA1UEAwwN\n" +
-            "RFNBX1NIQTFfMTAyNDAeFw0xNzExMDIwNjA4MDRaFw0zNzEwMjgwNjA4MDRaMBgx\n" +
-            "FjAUBgNVBAMMDURTQV9TSEExXzEwMjQwggG2MIIBKwYHKoZIzjgEATCCAR4CgYEA\n" +
-            "8CspE1sE84pJ4YxzVHFEDNJvBaIxsbax03pDwNHr/ogP9PVwF9z1jT6hpC5WluHG\n" +
-            "g5n5gqpF2XpBhX2fKm1qqZWRxNvHKo0+zzAhUqMrvRJqcjlL4ijXndHldt67/VKS\n" +
-            "0eTKi9m64c+yJx80YYphCO5b93d2sTM29z8QZOlrbD8CFQCmttKnPAOk4uz8Z8cV\n" +
-            "uPGeGOMB9wKBgCItgPpAjW0srIwCaDysDNpydX6hB+1NTy1gFYl24n8edLGbR0mZ\n" +
-            "isteBd6LjMtgicRmtKZzKxW7igxoVvR3WHpTucFjms5NRNjPaj5wt3DxoXn4hyWk\n" +
-            "LzMvDeBvi+jKJiO0jnQ3+1NDOlAQy6ukeH59/gxZ3UmcNxDlAQ/IYHcpA4GEAAKB\n" +
-            "gEgvi72gL+zax7Y2hg4PL1PqZx2jFp0XlTIugiTrcsGytrAnn+/s2+3xVyVyvVMn\n" +
-            "0z5yL5eP9cdGA7qV1+7n6KJ8jNAhLCBSiC6x5ekd88aTlqnmt5lstk4w0Q0zSa58\n" +
-            "Hp6dCFg2Irk6Z9ERKaXJJBBS6reaFeATVROhN/LEEzzvo1AwTjAdBgNVHQ4EFgQU\n" +
-            "jb+HHABclGNR4lpf19nHFZpfwPQwHwYDVR0jBBgwFoAUjb+HHABclGNR4lpf19nH\n" +
-            "FZpfwPQwDAYDVR0TBAUwAwEB/zAJBgcqhkjOOAQDAy8AMCwCFDB3F/m6jsZdHaoy\n" +
-            "1xTp2U8uHBO+AhQYzeJuJd8/qRSDVLs8mesE8TQg2g==\n" +
+            "MIIEezCCBCCgAwIBAgIUYbBHFrJkO9EokOROEScK0dr3aVowCwYJYIZIAWUDBAMC\n" +
+            "MBoxGDAWBgNVBAMMD0RTQS0yMDQ4LVNIQTI1NjAeFw0xOTAxMTYwNjA4NTJaFw0z\n" +
+            "OTAxMTEwNjA4NTJaMBoxGDAWBgNVBAMMD0RTQS0yMDQ4LVNIQTI1NjCCA0cwggI5\n" +
+            "BgcqhkjOOAQBMIICLAKCAQEAnGTeaC+MitQykXl2UcGtJhkelRhBalZuzR9fh8Xf\n" +
+            "swSj2auVzhjkQfns6E14X72XLYDwHPQilh4ZSiC1cX7bpvohJ7CjbouGnT78Gwf0\n" +
+            "pfVMRBRfbNiwBQzFtzehAqlLPXyHWCPxAzW0EgzZh8asIofBEGmGh6sxlpXbEcCS\n" +
+            "Ra5Q2vdDRVksm4APHKwbS1F6L/0QDvjDAudWyLFdFMSBuoyeFwCf7Gr5lcVi538h\n" +
+            "MliXSAhJ7SXe4B9K/5/VicuzAffE+EZsZZuJKeQ4oHz8xtycdMcW86Iag1i/POzD\n" +
+            "0Z7c5p9j1zDgms1ZRSz4fd7YgNGjmmf6dYJlZmCX4w9YiwIhALnVATHxZmk7G1kf\n" +
+            "LGX7SMeflAhA/D3EPA5QWdgTc0orAoIBAGYTWMnKHBF4oMKUsx6lF6KvSrqFQ0+j\n" +
+            "mWN1RNAGiVYm/Js9sc7jolZCbVTWM7GblO2DxiKed3FtcL3xw4P6l3GU7kFthsjh\n" +
+            "bHbMG58s5JVboLX50wZo1uBOb0kRcZYjYTfUwbBYpGNnl7xfQsZ/Bxq/wzyn4gxb\n" +
+            "+C0pu/vzmko+opKfFr9a2EL+ADvQhPd6y/L0YcpiTihvfXDWu+n3bNlwhUZYevux\n" +
+            "SPVkQH3h5YEqXePF7UeY506/2sr41/xCbCkuH+Ob77Cy1IjMqr4OpXzj6wCSjlFy\n" +
+            "Re66yqsjGpuBeTtsn9lKmlFVl4QUdw7XYbRubafNFEdd5IazMflCcgMDggEGAAKC\n" +
+            "AQEAnF3/TT0nYzfwY6/+lmoqoBtGU4of7RK4U3Jdhf6dj755GwgsPGAz3Rzh/hq/\n" +
+            "B3fuyrtnE/aU0EK1dtRNqnKeFsMCURBi3sWYYe7vamw5TukFMSUOuH76v75b26c+\n" +
+            "nTfZF30iDz+66Z5gcOSwhz9aLCnF/wYwijnzagnCF4m0Nhwsjtz4qECMPfL/Rkx8\n" +
+            "s83tUF53mx5o8WCYMNr4yJGcHEkautvZN05zwoxZTPKZNngWeCUAY07XwOYHTUvx\n" +
+            "C9Sxiom9k1pZPbHZnGpUx96at2dMoeTeHR6xF/0QpiIb4wLpOg/CRxsopBmhEl0S\n" +
+            "BEXYNIcrXLwVBLvJD6H44DxRiqNTMFEwHQYDVR0OBBYEFCr6C8Bl7wjz5L3cYMG3\n" +
+            "/ZFe7Ee0MB8GA1UdIwQYMBaAFCr6C8Bl7wjz5L3cYMG3/ZFe7Ee0MA8GA1UdEwEB\n" +
+            "/wQFMAMBAf8wCwYJYIZIAWUDBAMCA0gAMEUCIArByiqjCG1ZuOVY91OPa9g8q60y\n" +
+            "/BSRWRgikEuq3AbgAiEAoZoKXW80FTMxv/9tFy0N7OrUV4rc9+AUBSTuRCuTAk4=\n" +
             "-----END CERTIFICATE-----",
-            "3082014a0201003082012b06072a8648ce3804013082011e02818100f02b2913" +
-            "5b04f38a49e18c735471440cd26f05a231b1b6b1d37a43c0d1ebfe880ff4f570" +
-            "17dcf58d3ea1a42e5696e1c68399f982aa45d97a41857d9f2a6d6aa99591c4db" +
-            "c72a8d3ecf302152a32bbd126a72394be228d79dd1e576debbfd5292d1e4ca8b" +
-            "d9bae1cfb2271f34618a6108ee5bf77776b13336f73f1064e96b6c3f021500a6" +
-            "b6d2a73c03a4e2ecfc67c715b8f19e18e301f7028180222d80fa408d6d2cac8c" +
-            "02683cac0cda72757ea107ed4d4f2d60158976e27f1e74b19b4749998acb5e05" +
-            "de8b8ccb6089c466b4a6732b15bb8a0c6856f477587a53b9c1639ace4d44d8cf" +
-            "6a3e70b770f1a179f88725a42f332f0de06f8be8ca2623b48e7437fb53433a50" +
-            "10cbaba4787e7dfe0c59dd499c3710e5010fc8607729041602146ef9db36045f" +
-            "bcd8c7fd82ba29c5c5057ed11c7f"),
+            "308202640201003082023906072a8648ce3804013082022c02820101009c64de" +
+            "682f8c8ad43291797651c1ad26191e9518416a566ecd1f5f87c5dfb304a3d9ab" +
+            "95ce18e441f9ece84d785fbd972d80f01cf422961e194a20b5717edba6fa2127" +
+            "b0a36e8b869d3efc1b07f4a5f54c44145f6cd8b0050cc5b737a102a94b3d7c87" +
+            "5823f10335b4120cd987c6ac2287c110698687ab319695db11c09245ae50daf7" +
+            "4345592c9b800f1cac1b4b517a2ffd100ef8c302e756c8b15d14c481ba8c9e17" +
+            "009fec6af995c562e77f21325897480849ed25dee01f4aff9fd589cbb301f7c4" +
+            "f8466c659b8929e438a07cfcc6dc9c74c716f3a21a8358bf3cecc3d19edce69f" +
+            "63d730e09acd59452cf87dded880d1a39a67fa758265666097e30f588b022100" +
+            "b9d50131f166693b1b591f2c65fb48c79f940840fc3dc43c0e5059d813734a2b" +
+            "02820100661358c9ca1c1178a0c294b31ea517a2af4aba85434fa399637544d0" +
+            "06895626fc9b3db1cee3a256426d54d633b19b94ed83c6229e77716d70bdf1c3" +
+            "83fa977194ee416d86c8e16c76cc1b9f2ce4955ba0b5f9d30668d6e04e6f4911" +
+            "7196236137d4c1b058a4636797bc5f42c67f071abfc33ca7e20c5bf82d29bbfb" +
+            "f39a4a3ea2929f16bf5ad842fe003bd084f77acbf2f461ca624e286f7d70d6bb" +
+            "e9f76cd9708546587afbb148f564407de1e5812a5de3c5ed4798e74ebfdacaf8" +
+            "d7fc426c292e1fe39befb0b2d488ccaabe0ea57ce3eb00928e517245eebacaab" +
+            "231a9b81793b6c9fd94a9a5155978414770ed761b46e6da7cd14475de486b331" +
+            "f942720304220220509dd213cc9769e93825063a4a60500f67c4b979f6504b2f" +
+            "ccdbefb3ab8fe6da"),
 
     // This certificate is generated by the below commands:
-    // openssl dsaparam -genkey 1024 -out key.pem
+    // openssl genpkey -genparam -algorithm dsa -pkeyopt dsa_paramgen_bits:2048 \
+    //     -pkeyopt dsa_paramgen_q_bits:256 -out param.pem
+    // openssl genpkey -paramfile param.pem -out key.pem
     // openssl req -x509 -new -key key.pem -days 7300 \
-    //     -subj "/CN=www.example.com" -sha1 -out cert.pem
-    DSA_EXAMPLE_SHA1_1024(
-            SignatureAlgorithm.DSA,
+    //     -subj "/CN=EXAMPLE" -sha256 -out cer.pem
+    EXAMPLE_DSA_2048_SHA256(
+            KeyAlgorithm.DSA,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIICwDCCAoCgAwIBAgIJAI5mKbdK5ZqyMAkGByqGSM44BAMwGjEYMBYGA1UEAwwP\n" +
-            "d3d3LmV4YW1wbGUuY29tMB4XDTE3MTEwMjA1NDczOVoXDTM3MTAyODA1NDczOVow\n" +
-            "GjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMIIBtzCCASwGByqGSM44BAEwggEf\n" +
-            "AoGBANVGWRSlxVZQKlVrTDcU/6Mr8QFlR3kGKmkvdbTHH1EhcP7YlZ7CJ30VBDbN\n" +
-            "LS2HvN3HHNooJ7hHBheL5Yz8EZIUa95TzPukZ1TmCo9fufR5i9HWj9Z8jLhyqx3l\n" +
-            "iUZOYN9H0MSn4ftK6dr5oTz2ZGYDblXDCq6R8qZfuw1URFqrAhUArx0nmGEI/1S/\n" +
-            "qyxnV4I6ItOntxMCgYEAxZKIZ/7aOGfzaQG2wRFdD/viHBZkkcxCsgmPUroQVUIw\n" +
-            "dqmUnfYk8cb02LCevhhSwcjfocQsA3y1jufIUdWaHuIB9W3EsFJQNd/Byh9j/pRD\n" +
-            "7zH/8lnBzJh2S7y10Vg840STVo5+ekZb4E+W7KK5gUaEQ6kAtUIIB0xjNz7RWs4D\n" +
-            "gYQAAoGAPVQKWqJSlMrbU4XEsx50Ur8P84CwMnS7WcQNLnih1ScaK2BijgVj5Fny\n" +
-            "9JZxITwj7XD7FWriq3kTjbydi3iAvrgVWij79x5Z7fTRCuoBVmtnAFkVGalwbGr2\n" +
-            "ghz70y6hep2Evb1pRCrHjRkMaJFE5Y2CA7VbpKoat+j47/LkXJ2jUDBOMB0GA1Ud\n" +
-            "DgQWBBSVjWy3SpaDfnFo+37mZJqX2aybzTAfBgNVHSMEGDAWgBSVjWy3SpaDfnFo\n" +
-            "+37mZJqX2aybzTAMBgNVHRMEBTADAQH/MAkGByqGSM44BAMDLwAwLAIUd5NOlcfX\n" +
-            "5rakT9H8UzlFcFQLr0MCFGrEYvlFUf/HJOH4FwXS2jEholBB\n" +
+            "MIIEaTCCBA+gAwIBAgIUckU2myqkWak+Svv0FFJX91vv1jMwCwYJYIZIAWUDBAMC\n" +
+            "MBIxEDAOBgNVBAMMB0VYQU1QTEUwHhcNMTkwMTE2MDYwODUzWhcNMzkwMTExMDYw\n" +
+            "ODUzWjASMRAwDgYDVQQDDAdFWEFNUExFMIIDRjCCAjkGByqGSM44BAEwggIsAoIB\n" +
+            "AQDGmXUxMKzLIVUQUy4lu4fbnv8fRXtWIbv1jxWATCNFiFt4cUxrr7GVC16MGrgm\n" +
+            "FtMIHXWwFlq2wTL0RhVp2WPIPQzxCwQFivQjpdewVCB1BoJ1ozlvQjU4hri5Ymdt\n" +
+            "ebe90uT8NsvrQrSKYCl+/pPNiZKT8oX1aKzRYPQLn0bVXUicWlACoLfHGM4irjEC\n" +
+            "4JezC/tdLleeNYNpy2/dKYu/atyN/u0d+dPRLWBCw6/qCRn1yRAv04GC3WYBlSXz\n" +
+            "f9OKlCH5kfm9sLyatz/RWDqOb/YWW2Rk7UTKAnoTAyB+I9yUXg6Gad2csNkxXv55\n" +
+            "9oJAhdhsOS5cdBoqlZEahIFBAiEAjiMCVBGpnAxjb2dXM/Eec7EfThflQXbl33Zn\n" +
+            "Uq3AAsUCggEAaBNP9Uttfs1eV/38aurLd3T1OiM0CF7DPxE0qpSM9dQz9cKZajIE\n" +
+            "lsVTGOLBC5/+VSat9t1VG+JoyvSspkvk97/mxx0WCz/QAYTdwCXVuMuSv+EqeOMP\n" +
+            "lCxEdbOS8pfD8shOK+pnDSHMJvURYxB+fJkHHeXfwesH3632Vq0GlJ8PgXH5NLHM\n" +
+            "MWv7oZjyZMnGWDq2taJcZZG5ETNda2fATNCF9Al430MUxie2Sp50vA1KEtyUqMu+\n" +
+            "CLpyOynPHi96TWHNfD23TmKFVN9Uh2nUNIpUk8NMKBwg2O7FvvNnKfbl44ikuCnc\n" +
+            "06U7SdF3y8NRdwyayMI3BkOsV8mkoMwUgAOCAQUAAoIBADK2c1Gl3+6zrFU8Uhro\n" +
+            "5lFnDy3UYXINpdtWR/8T0FJ6YMax70VCkyxucq3AUnmq9AQtFijjmXDnxzD5g7IS\n" +
+            "zOU/28Kg1Mmw26uzrpUZPiixNU7v/xzE37M0Ig3VCEQ9mw57/yv8gwZurHtsokGt\n" +
+            "k0lzH/krhYPCOpskg6NulGq5lGsnNVdPkSkiAWZFHTysgKgxvMUxXj0bUm4ZyNw6\n" +
+            "Lp2bFHKbmSeTy3OLo/Kvd7BIjhV+Bi5LFh7h8spf6SC7qyEm0X7Keu+61xkFHU8a\n" +
+            "aghnGQYwuzpTp+hsbAJdHwVLw9ElqEoaVp3rAmxtsdzqhZSxcMZoypbjEJpiZ1/v\n" +
+            "fQCjUzBRMB0GA1UdDgQWBBRTPXqHl7VKr5U94p9c882ge9DOXzAfBgNVHSMEGDAW\n" +
+            "gBRTPXqHl7VKr5U94p9c882ge9DOXzAPBgNVHRMBAf8EBTADAQH/MAsGCWCGSAFl\n" +
+            "AwQDAgNHADBEAiAOQxtKiMImXKWQvUKZxoUc+chXRxAj3UD3Zj7RksPF2AIgf8HG\n" +
+            "hOnr3hzIej3Da2Ty9RTittcgZ14boraO/Vlx9Jo=\n" +
             "-----END CERTIFICATE-----",
-            "3082014c0201003082012c06072a8648ce3804013082011f02818100d5465914" +
-            "a5c556502a556b4c3714ffa32bf101654779062a692f75b4c71f512170fed895" +
-            "9ec2277d150436cd2d2d87bcddc71cda2827b84706178be58cfc1192146bde53" +
-            "ccfba46754e60a8f5fb9f4798bd1d68fd67c8cb872ab1de589464e60df47d0c4" +
-            "a7e1fb4ae9daf9a13cf66466036e55c30aae91f2a65fbb0d54445aab021500af" +
-            "1d27986108ff54bfab2c6757823a22d3a7b71302818100c5928867feda3867f3" +
-            "6901b6c1115d0ffbe21c166491cc42b2098f52ba1055423076a9949df624f1c6" +
-            "f4d8b09ebe1852c1c8dfa1c42c037cb58ee7c851d59a1ee201f56dc4b0525035" +
-            "dfc1ca1f63fe9443ef31fff259c1cc98764bbcb5d1583ce34493568e7e7a465b" +
-            "e04f96eca2b981468443a900b54208074c63373ed15ace0417021500abf47692" +
-            "88c6ac41e2802e7eb7addba367339318"),
+            "308202640201003082023906072a8648ce3804013082022c0282010100c69975" +
+            "3130accb215510532e25bb87db9eff1f457b5621bbf58f15804c2345885b7871" +
+            "4c6bafb1950b5e8c1ab82616d3081d75b0165ab6c132f4461569d963c83d0cf1" +
+            "0b04058af423a5d7b0542075068275a3396f42353886b8b962676d79b7bdd2e4" +
+            "fc36cbeb42b48a60297efe93cd899293f285f568acd160f40b9f46d55d489c5a" +
+            "5002a0b7c718ce22ae3102e097b30bfb5d2e579e358369cb6fdd298bbf6adc8d" +
+            "feed1df9d3d12d6042c3afea0919f5c9102fd38182dd66019525f37fd38a9421" +
+            "f991f9bdb0bc9ab73fd1583a8e6ff6165b6464ed44ca027a1303207e23dc945e" +
+            "0e8669dd9cb0d9315efe79f6824085d86c392e5c741a2a95911a848141022100" +
+            "8e23025411a99c0c636f675733f11e73b11f4e17e54176e5df766752adc002c5" +
+            "0282010068134ff54b6d7ecd5e57fdfc6aeacb7774f53a2334085ec33f1134aa" +
+            "948cf5d433f5c2996a320496c55318e2c10b9ffe5526adf6dd551be268caf4ac" +
+            "a64be4f7bfe6c71d160b3fd00184ddc025d5b8cb92bfe12a78e30f942c4475b3" +
+            "92f297c3f2c84e2bea670d21cc26f51163107e7c99071de5dfc1eb07dfadf656" +
+            "ad06949f0f8171f934b1cc316bfba198f264c9c6583ab6b5a25c6591b911335d" +
+            "6b67c04cd085f40978df4314c627b64a9e74bc0d4a12dc94a8cbbe08ba723b29" +
+            "cf1e2f7a4d61cd7c3db74e628554df548769d4348a5493c34c281c20d8eec5be" +
+            "f36729f6e5e388a4b829dcd3a53b49d177cbc351770c9ac8c2370643ac57c9a4" +
+            "a0cc1480042202201ba738489c54dddd5ffbf0009ef9d11851182235a251a410" +
+            "4a6354181ecd0348"),
+
+    // This certificate is generated by the below commands:
+    // openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 \
+    //     -pkeyopt ec_param_enc:named_curve -out key.pem
+    // openssl req -x509 -new -key key.pem \
+    //     -subj "/CN=ECDSA-SECP256-SHA256" -sha256 -out cer.pem
+    ECDSA_PRIME256V1_SHA256(
+            KeyAlgorithm.EC,
+            "-----BEGIN CERTIFICATE-----\n" +
+            "MIIBkzCCATmgAwIBAgIUXebzNfSMvdkNrc5175FM6dE/gxwwCgYIKoZIzj0EAwIw\n" +
+            "HzEdMBsGA1UEAwwURUNEU0EtU0VDUDI1Ni1TSEEyNTYwHhcNMTkwMTE2MDYwODQx\n" +
+            "WhcNMTkwMjE1MDYwODQxWjAfMR0wGwYDVQQDDBRFQ0RTQS1TRUNQMjU2LVNIQTI1\n" +
+            "NjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOp7VcLfpVc5ghO0HlYjwH+YSAf7\n" +
+            "zTShLeoY35PwqcoUgg9DBR4g7rM3xovOKxGZ5uORD8vo5l9L0+53f2+7YH+jUzBR\n" +
+            "MB0GA1UdDgQWBBSmW8/6KP8EJKBVlfmFkBSbVWTEWzAfBgNVHSMEGDAWgBSmW8/6\n" +
+            "KP8EJKBVlfmFkBSbVWTEWzAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gA\n" +
+            "MEUCIQCtGdW3Xl5OzX7QiwtiT6pbIrm6eCUwN/vVoMfs3Yn5rgIgCbLidpdMpFrd\n" +
+            "HWB2/mVxQegLBCOIGMVPXrTat4A76As=\n" +
+            "-----END CERTIFICATE-----",
+            "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02" +
+            "01010420aa9602d20de7ebfc2787a6e5ae20166d1e8d8bd29b4e5f046414bae8" +
+            "9a8e7eb9a14403420004ea7b55c2dfa557398213b41e5623c07f984807fbcd34" +
+            "a12dea18df93f0a9ca14820f43051e20eeb337c68bce2b1199e6e3910fcbe8e6" +
+            "5f4bd3ee777f6fbb607f"),
 
     // This certificate is generated by the below commands:
-    // openssl ecparam -name prime256v1 -genkey -out key.pem
-    // openssl req -new -key key.pem -x509 -nodes -days 7300 \
-    //     -subj "/CN=ECDSA_SHA1_prime256v1" -sha1 -out cert.pem
-    ECDSA_SHA1_PRIME256V1(
-            SignatureAlgorithm.ECDSA,
+    // openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 \
+    //     -pkeyopt ec_param_enc:named_curve -out key.pem
+    // openssl req -x509 -new -key key.pem \
+    //     -subj "/CN=EXAMPLE" -sha256 -out cer.pem
+    EXAMPLE_ECDSA_PRIME256V1_SHA256(
+            KeyAlgorithm.EC,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIIBhDCCASygAwIBAgIJAKW4wuujp9JbMAkGByqGSM49BAEwIDEeMBwGA1UEAwwV\n" +
-            "RUNEU0FfU0hBMV9wcmltZTI1NnYxMB4XDTE3MDkwNzAyMTA0MVoXDTM3MDkwMjAy\n" +
-            "MTA0MVowIDEeMBwGA1UEAwwVRUNEU0FfU0hBMV9wcmltZTI1NnYxMFkwEwYHKoZI\n" +
-            "zj0CAQYIKoZIzj0DAQcDQgAEdbE+AMwsFBf73YXRVwsvsx2dMt1xgDxj/4pN+BfY\n" +
-            "LWnO94beeZcrCJ1/N8CHmDOce7KRDR6/9kpi20wFAVXZ3KNQME4wHQYDVR0OBBYE\n" +
-            "FA/hB2ODDNdz1JF08u2uhknhlsVoMB8GA1UdIwQYMBaAFA/hB2ODDNdz1JF08u2u\n" +
-            "hknhlsVoMAwGA1UdEwQFMAMBAf8wCQYHKoZIzj0EAQNHADBEAiBNxv2L2FW+6+w/\n" +
-            "QtDe+YSUNRj3F8QrpLkfGk7rVaOiHQIgVF2pWJ5ytg0pbCuO8Bh+UZ7zfZUD03s8\n" +
-            "ZuIYW7RtMe0=\n" +
+            "MIIBeTCCAR+gAwIBAgIUWZkzN4WOoj7HUYLoWtgy+ad/zjswCgYIKoZIzj0EAwIw\n" +
+            "EjEQMA4GA1UEAwwHRVhBTVBMRTAeFw0xOTAxMTYwNjA4NDFaFw0xOTAyMTUwNjA4\n" +
+            "NDFaMBIxEDAOBgNVBAMMB0VYQU1QTEUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC\n" +
+            "AAQMzWjRuN9r2/kcVYyHFpKduuYj2VFRXo81qd+EcyjnLZab5m9RqIYy6iDUvZk5\n" +
+            "w8wHeHGpMybPzNSEQ2mVY5Yvo1MwUTAdBgNVHQ4EFgQUUhVK37nQDP6OEW5w7XEb\n" +
+            "p8/sCxMwHwYDVR0jBBgwFoAUUhVK37nQDP6OEW5w7XEbp8/sCxMwDwYDVR0TAQH/\n" +
+            "BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEA9B2e4TWZKMxS8/uyVjl6D+cyqsPU\n" +
+            "7/qATL5cTK1AIUACID8BPfcPE46ARCretiGWywVuQzAVKz1fkjwEwLmAo+2x\n" +
             "-----END CERTIFICATE-----",
             "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02" +
-            "010104204d901d5efd0e3def78d5307788a4c760115effce4b9e2c31ae5860b6" +
-            "c11915aca1440342000475b13e00cc2c1417fbdd85d1570b2fb31d9d32dd7180" +
-            "3c63ff8a4df817d82d69cef786de79972b089d7f37c08798339c7bb2910d1ebf" +
-            "f64a62db4c050155d9dc"),
+            "01010420ed3600c6b62b351b48b4c61f37c46c45460ff599aa7f9c2d79635d0e" +
+            "147c23a3a144034200040ccd68d1b8df6bdbf91c558c8716929dbae623d95151" +
+            "5e8f35a9df847328e72d969be66f51a88632ea20d4bd9939c3cc077871a93326" +
+            "cfccd48443699563962f"),
 
     // This certificate is generated by the below commands:
-    // openssl ecparam -name prime256v1 -genkey -out key.pem
-    // openssl req -new -key key.pem -x509 -nodes -days 7300 \
-    //     -subj "/CN=www.example.com" -sha1 -out cert.pem
-    ECDSA_EXAMPLE_SHA1_PRIME256V1(
-            SignatureAlgorithm.ECDSA,
+    // openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 \
+    //     -pkeyopt ec_param_enc:named_curve -out key.pem
+    // openssl req -new -key key.pem \
+    //     -subj "/CN=EC-RSA-SECP256-SHA256" -sha256 -out csr.pem
+    // openssl x509 -req -CAcreateserial -in csr.pem -sha256 \
+    //     -CA CA.cer -CAkey CA.key -out cer.pem
+    // Actually the CA is RSA_2048_SHA256
+    EC_RSA_PRIME256V1_SHA256(
+            KeyAlgorithm.EC,
             "-----BEGIN CERTIFICATE-----\n" +
-            "MIIBeDCCASCgAwIBAgIJAMxOXBpiJ5mDMAkGByqGSM49BAEwGjEYMBYGA1UEAwwP\n" +
-            "d3d3LmV4YW1wbGUuY29tMB4XDTE3MTEwMjA1MTg0MVoXDTM3MTAyODA1MTg0MVow\n" +
-            "GjEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D\n" +
-            "AQcDQgAER9IyuwyrJ7X9DmIqGC3YNTlWBt4Fo/Y3RnlcxhTVxb/ZAYVNhqe4MbSM\n" +
-            "2nsVnYMjjXXDav1plNKvmgGDf9s/saNQME4wHQYDVR0OBBYEFHNUTaIIEA89uNKH\n" +
-            "OOUgJ981Qj5HMB8GA1UdIwQYMBaAFHNUTaIIEA89uNKHOOUgJ981Qj5HMAwGA1Ud\n" +
-            "EwQFMAMBAf8wCQYHKoZIzj0EAQNHADBEAiBCW59S1nE15j8euO6/q9bM6J9Ci5xJ\n" +
-            "WWAVznGGxnS/HgIgFaFKC31uxTXoBN7QN0yW/umQgJ0nsjwj7Pnxc0wNyw8=\n" +
+            "MIIB9TCB3gIUIpSnxoBfFOKeRdx52FvEKuk1uvYwDQYJKoZIhvcNAQELBQAwGjEY\n" +
+            "MBYGA1UEAwwPUlNBLTIwNDgtU0hBMjU2MB4XDTE5MDExNjA2MDg0NloXDTE5MDIx\n" +
+            "NTA2MDg0NlowIDEeMBwGA1UEAwwVRUMtUlNBLVNFQ1AyNTYtU0hBMjU2MFkwEwYH\n" +
+            "KoZIzj0CAQYIKoZIzj0DAQcDQgAETcLM10u7ehsxJQbX3ypbSRMz7ZDkFS/QsmPF\n" +
+            "04NSwiBncQPjtpaPSshVDJzigEDfACcwIdO0BH4Eh2oHcB6hDzANBgkqhkiG9w0B\n" +
+            "AQsFAAOCAQEAHg06hhIec3ctUh7pao53ZF3SVJ/Pty4rgQ3Hb5gNhZHrmYWldj6J\n" +
+            "UagMRtfX0fJwzIdY0kNTol38es+6XDTCdYsaDDw4Ix1yF/xoExu6PqJ49npMVxqB\n" +
+            "yeXwg8aDB9sbmeczZp0kWa1DiN3HgJGoA8HbPOUZbuetCVl2ME82ZPdKdLaHgjO/\n" +
+            "Af3/gjYGVR27YB5sVIXkq3wJ5wEF+EvePKQZqnHFLhjz0xIIyp7mU6NFr26TsNh0\n" +
+            "JYecs5S0ydhf41x9GS4p8KpqRcfAOX4z5DEBe+BjgSuprGZabflFCbZ/PQrtBmdp\n" +
+            "5+cg/cNcA3zEXnsAzLu2R/+73/h9v75g/Q==\n" +
             "-----END CERTIFICATE-----",
             "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02" +
-            "010104209aa3784cd0c1fe0553e59b3c7b8f08c8fdaffd94f34e2c1683243a79" +
-            "7b64b673a1440342000447d232bb0cab27b5fd0e622a182dd835395606de05a3" +
-            "f63746795cc614d5c5bfd901854d86a7b831b48cda7b159d83238d75c36afd69" +
-            "94d2af9a01837fdb3fb1");
+            "010104200ab17f2b70ba744b08564635ebfc535c60d43139e1c722cfb9c7152e" +
+            "9faad5b3a144034200044dc2ccd74bbb7a1b312506d7df2a5b491333ed90e415" +
+            "2fd0b263c5d38352c220677103e3b6968f4ac8550c9ce28040df00273021d3b4" +
+            "047e04876a07701ea10f"),
 
-    public final SignatureAlgorithm signatureAlgorithm;
+    // This certificate is generated by the below commands:
+    // openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 \
+    //     -pkeyopt ec_param_enc:named_curve -out key.pem
+    // openssl req -new -key key.pem -subj "/CN=EXAMPLE" -sha256 -out csr.pem
+    // openssl x509 -req -CAcreateserial -in csr.pem -sha256 \
+    //     -CA CA.cer -CAkey CA.key -out cer.pem
+    // Actually the CA is EXAMPLE_RSA_2048_SHA256
+    EXAMPLE_EC_RSA_PRIME256V1_SHA256(
+            KeyAlgorithm.EC,
+            "-----BEGIN CERTIFICATE-----\n" +
+            "MIIB3zCByAIUbogHun+2LFxbX9B5fImITzFQVfIwDQYJKoZIhvcNAQELBQAwEjEQ\n" +
+            "MA4GA1UEAwwHRVhBTVBMRTAeFw0xOTAxMTYwNjA4NDZaFw0xOTAyMTUwNjA4NDZa\n" +
+            "MBIxEDAOBgNVBAMMB0VYQU1QTEUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASA\n" +
+            "pPapPXO0qJO7mDm9dTuSKdsxWatAaloJZnwenBFIY8krulHd8VPSGbERmxRBY/z2\n" +
+            "+MH8dwaC1t9DAFb+1qdWMA0GCSqGSIb3DQEBCwUAA4IBAQA3SfXMUFj7xCl7nR8L\n" +
+            "/6mf0La/q4O1pGKmVpy55aP7dZmY3xzaPtDFevdnMqb7tBTiLl0Y8OehMQW/8usb\n" +
+            "qtcYPekZJV5g1ezMhyB/AHecotfsrBS7l9r+IWYf/GUoQ8izC1srNXVrqDCt0cbB\n" +
+            "o7bc0lQFhI+rcMt1AzQtrNkVhX0dcBbLyhNJzgyAXatSB5R0/R3kTddUZfrOtOoC\n" +
+            "IXUZJRQ7hZKx7qi/U4+q246IuKSSp2SjFTU1QpeO4/Q06eJ3sbtx5Nd1Rfzlo2Jq\n" +
+            "uYi8szOupFC8xKCB+odMndHvh1QO/8E4e4r0mShkrnK3M/lKiwi67yl3Jk9uY9ls\n" +
+            "X5Q6\n" +
+            "-----END CERTIFICATE-----",
+            "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02" +
+            "01010420618ff6a884185b97322aaeab5f9fdf8a14ab18d0478565317b483db0" +
+            "0f3b5bf6a1440342000480a4f6a93d73b4a893bb9839bd753b9229db3159ab40" +
+            "6a5a09667c1e9c114863c92bba51ddf153d219b1119b144163fcf6f8c1fc7706" +
+            "82d6df430056fed6a756");
+
+    public final KeyAlgorithm keyAlgorithm;
     public final String certMaterials;
     public final String privKeyMaterials;
 
     private Cert(
-            SignatureAlgorithm signatureAlgorithm,
+            KeyAlgorithm keyAlgorithm,
             String certMaterials,
             String privKeyMaterials) {
-        this.signatureAlgorithm = signatureAlgorithm;
+        this.keyAlgorithm = keyAlgorithm;
         this.certMaterials = certMaterials;
         this.privKeyMaterials = privKeyMaterials;
     }
 
     // Two certificates (mainCert and exampleCert) are selected to respect the
     // specified cipher suite. SNI-associated cases specify exampleCert as desired.
-    public static Cert[] getCerts(String cipherSuite) {
-        Cert mainCert = Cert.DSA_SHA1_1024;
-        Cert exampleCert = Cert.DSA_EXAMPLE_SHA1_1024;
-        if (cipherSuite.contains("_ECDHE_RSA_")) {
-            mainCert = Cert.RSA_SHA1_1024;
-            exampleCert = Cert.RSA_EXAMPLE_SHA1_1024;
-        } else if (cipherSuite.contains("_EC")) {
-            mainCert = Cert.ECDSA_SHA1_PRIME256V1;
-            exampleCert = Cert.ECDSA_EXAMPLE_SHA1_PRIME256V1;
-        } else if (cipherSuite.contains("_RSA")) {
-            mainCert = Cert.RSA_SHA1_1024;
-            exampleCert = Cert.RSA_EXAMPLE_SHA1_1024;
+    public static Cert[] getCerts(CipherSuite cipherSuite) {
+        Cert mainCert = Cert.ECDSA_PRIME256V1_SHA256;
+        Cert exampleCert = Cert.EXAMPLE_ECDSA_PRIME256V1_SHA256;
+        if (cipherSuite.keyExAlgorithm == KeyExAlgorithm.ECDHE_RSA
+                || cipherSuite.keyExAlgorithm == KeyExAlgorithm.DHE_RSA
+                || cipherSuite.keyExAlgorithm == KeyExAlgorithm.RSA) {
+            mainCert = Cert.RSA_2048_SHA256;
+            exampleCert = Cert.EXAMPLE_RSA_2048_SHA256;
+        } else if (cipherSuite.keyExAlgorithm == KeyExAlgorithm.ECDH_RSA) {
+            mainCert = Cert.EC_RSA_PRIME256V1_SHA256;
+            exampleCert = Cert.EXAMPLE_EC_RSA_PRIME256V1_SHA256;
+        } else if (cipherSuite.keyExAlgorithm == KeyExAlgorithm.DHE_DSS) {
+            mainCert = Cert.DSA_2048_SHA256;
+            exampleCert = Cert.EXAMPLE_DSA_2048_SHA256;
         }
         System.out.printf("mainCert=%s, exampleCert=%s%n",
                 mainCert, exampleCert);
         return new Cert[] { mainCert, exampleCert };
     }
 }
-
-enum SignatureAlgorithm {
-
-    RSA, DSA, ECDSA;
-}
--- a/test/jdk/javax/net/ssl/compatibility/Client.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/Client.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -137,7 +137,7 @@
         Status status = Status.SUCCESS;
         Client client = null;
         try {
-            client = new Client(Cert.getCerts(cipherSuite));
+            client = new Client(Cert.getCerts(CipherSuite.cipherSuite(cipherSuite)));
             client.setEnabledProtocols(protocol);
             client.setEnabledCipherSuites(cipherSuite);
 
--- a/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/Compatibility.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -28,8 +28,8 @@
  *     Note that, this is a manual test. For more details about the test and
  *     its usages, please look through README.
  *
- * @library /test/lib
- * @compile -source 1.7 -target 1.7 JdkUtils.java Parameter.java Server.java Client.java
+ * @library /test/lib ../TLSCommon
+ * @compile -source 1.7 -target 1.7 JdkUtils.java Server.java Client.java
  * @run main/manual Compatibility
  */
 
@@ -81,20 +81,16 @@
 
             for (UseCase useCase : UseCase.getAllUseCases()) {
                 for (JdkInfo serverJdk : jdkInfos) {
-                    if (useCase.ignoredByJdk(serverJdk)) {
-                        continue;
-                    }
-
                     Map<String, String> props = new LinkedHashMap<>();
                     if (debug) {
-                        props.put("javax.net.debug", "ssl");
+                        props.put("javax.net.debug", "all");
                     }
                     props.put("java.security.properties", javaSecurityFile);
 
-                    props.put(Utils.PROP_PROTOCOL, useCase.protocol.version);
+                    props.put(Utils.PROP_PROTOCOL, useCase.protocol.name);
                     props.put(Utils.PROP_CIPHER_SUITE, useCase.cipherSuite.name());
-                    props.put(Utils.PROP_CLIENT_AUTH, useCase.clientAuth.name());
-                    if (useCase.appProtocol != AppProtocol.NONE) {
+                    props.put(Utils.PROP_CLIENT_AUTH, String.valueOf(useCase.clientAuth));
+                    if (useCase.appProtocol != UseCase.AppProtocol.NONE) {
                         props.put(Utils.PROP_APP_PROTOCOLS,
                                 Utils.join(Utils.VALUE_DELIMITER,
                                         useCase.appProtocol.appProtocols));
@@ -109,14 +105,10 @@
                             serverJdk.supportsALPN + "");
 
                     for (JdkInfo clientJdk : jdkInfos) {
-                        if (useCase.ignoredByJdk(clientJdk)) {
-                            continue;
-                        }
-
                         TestCase testCase = new TestCase(serverJdk, clientJdk,
                                 useCase);
                         System.out.println(Utils.anchorName(testCase.toString(),
-                                "----- Case start -----"));
+                                "===== Case start ====="));
                         System.out.println(testCase.toString());
 
                         props.put(Utils.PROP_NEGATIVE_CASE_ON_SERVER,
@@ -138,7 +130,7 @@
                                 clientJdk.supportsSNI + "");
                         props.put(Utils.PROP_SUPPORTS_ALPN_ON_CLIENT,
                                 clientJdk.supportsALPN + "");
-                        if (useCase.serverName != ServerName.NONE) {
+                        if (useCase.serverName != UseCase.ServerName.NONE) {
                             props.put(Utils.PROP_SERVER_NAME,
                                     useCase.serverName.name);
                         }
@@ -158,7 +150,7 @@
                                 "ServerStatus=%s, ClientStatus=%s, CaseStatus=%s%n",
                                 serverStatus, clientStatus, testCase.getStatus());
 
-                        System.out.println("----- Case end -----");
+                        System.out.println("===== Case end =====");
                     }
                 }
             }
@@ -309,14 +301,14 @@
                             i + ""),
                     testCase.serverJdk.version,
                     testCase.clientJdk.version,
-                    testCase.useCase.protocol.version,
+                    testCase.useCase.protocol.name,
                     testCase.useCase.cipherSuite,
                     Utils.boolToStr(
-                            testCase.useCase.clientAuth == ClientAuth.TRUE),
+                            testCase.useCase.clientAuth),
                     Utils.boolToStr(
-                            testCase.useCase.serverName == ServerName.EXAMPLE),
+                            testCase.useCase.serverName == UseCase.ServerName.EXAMPLE),
                     Utils.boolToStr(
-                            testCase.useCase.appProtocol == AppProtocol.EXAMPLE),
+                            testCase.useCase.appProtocol == UseCase.AppProtocol.EXAMPLE),
                     testCase.getStatus()));
             failed = failed
                     || testCase.getStatus() == Status.FAIL
--- a/test/jdk/javax/net/ssl/compatibility/JdkInfo.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/JdkInfo.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -31,7 +31,8 @@
     public final String jdkPath;
 
     public final String version;
-    public final boolean supportsECKey;
+    public final String supportedProtocols;
+    public final String supportedCipherSuites;
     public final boolean supportsSNI;
     public final boolean supportsALPN;
 
@@ -46,9 +47,10 @@
 
         String[] attributes = Utils.split(output, Utils.PARAM_DELIMITER);
         version = attributes[0].replaceAll(".*=", "");
-        supportsECKey = Boolean.valueOf(attributes[1].replaceAll(".*=", ""));
-        supportsSNI = Boolean.valueOf(attributes[2].replaceAll(".*=", ""));
-        supportsALPN = Boolean.valueOf(attributes[3].replaceAll(".*=", ""));
+        supportedProtocols = attributes[1].replaceAll(".*=", "");
+        supportedCipherSuites = attributes[2].replaceAll(".*=", "");
+        supportsSNI = Boolean.valueOf(attributes[3].replaceAll(".*=", ""));
+        supportsALPN = Boolean.valueOf(attributes[4].replaceAll(".*=", ""));
     }
 
     // Determines the specific attributes for the specified JDK.
@@ -83,10 +85,11 @@
         return true;
     }
 
+    public boolean supportsProtocol(Protocol protocol) {
+        return supportedProtocols.contains(protocol.name);
+    }
+
     public boolean supportsCipherSuite(CipherSuite cipherSuite) {
-        JdkRelease jdkRelease = JdkRelease.getRelease(version);
-        return cipherSuite.startJdk.sequence <= jdkRelease.sequence
-                && (cipherSuite.endJdk == null
-                        || cipherSuite.endJdk.sequence >= jdkRelease.sequence);
+        return supportedCipherSuites.contains(cipherSuite.name());
     }
 }
--- a/test/jdk/javax/net/ssl/compatibility/JdkUtils.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/JdkUtils.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -21,10 +21,11 @@
  * questions.
  */
 
-import java.security.KeyFactory;
 import java.security.NoSuchAlgorithmException;
 
+import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLParameters;
+import javax.net.ssl.SSLSocketFactory;
 
 /*
  * This class is used for returning some specific JDK information.
@@ -32,7 +33,8 @@
 public class JdkUtils {
 
     public static final String JAVA_RUNTIME_VERSION = "javaRuntimeVersion";
-    public static final String SUPPORTS_EC_KEY = "supportsECKey";
+    public static final String SUPPORTED_PROTOCOLS = "supportedProtocols";
+    public static final String SUPPORTED_CIPHER_SUITES = "supportedCipherSuites";
     public static final String SUPPORTS_SNI = "supportsSNI";
     public static final String SUPPORTS_ALPN = "supportsALPN";
 
@@ -41,15 +43,39 @@
         return System.getProperty("java.runtime.version");
     }
 
-    // Checks if EC key algorithm is supported by the JDK build.
-    private static boolean supportsECKey() {
-        boolean isSupported = true;
+    private static String supportedProtocols() {
+        StringBuilder protocols = new StringBuilder();
+        for (String protocol : new String[] {
+                "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" }) {
+            if (supportsProtocol(protocol)) {
+                protocols.append(protocol).append(Utils.VALUE_DELIMITER);
+            }
+        }
+        return protocols.toString().substring(
+                0, protocols.toString().length() - 1);
+    }
+
+    private static boolean supportsProtocol(String protocol) {
+        boolean supported = true;
         try {
-            KeyFactory.getInstance("EC");
+            SSLContext.getInstance(protocol);
         } catch (NoSuchAlgorithmException e) {
-            isSupported = false;
+            supported = false;
         }
-        return isSupported;
+        return supported;
+    }
+
+    private static String supportedCipherSuites() {
+        StringBuilder cipherSuites = new StringBuilder();
+        String[] supportedCipherSuites = ((SSLSocketFactory) SSLSocketFactory
+                .getDefault()).getSupportedCipherSuites();
+        for (int i = 0; i < supportedCipherSuites.length - 1; i++) {
+            cipherSuites.append(supportedCipherSuites[i])
+                    .append(Utils.VALUE_DELIMITER);
+        }
+        cipherSuites.append(
+                supportedCipherSuites[supportedCipherSuites.length - 1]);
+        return cipherSuites.toString();
     }
 
     // Checks if SNI is supported by the JDK build.
@@ -74,10 +100,11 @@
         return isSupported;
     }
 
-    public static void main(String[] args) {
+    public static void main(String[] args) throws NoSuchAlgorithmException {
         System.out.print(Utils.join(Utils.PARAM_DELIMITER,
                 attr(JAVA_RUNTIME_VERSION, javaRuntimeVersion()),
-                attr(SUPPORTS_EC_KEY, supportsECKey()),
+                attr(SUPPORTED_PROTOCOLS, supportedProtocols()),
+                attr(SUPPORTED_CIPHER_SUITES, supportedCipherSuites()),
                 attr(SUPPORTS_SNI, supportsSNI()),
                 attr(SUPPORTS_ALPN, supportsALPN())));
     }
--- a/test/jdk/javax/net/ssl/compatibility/Parameter.java	Tue Jan 22 09:24:58 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-/*
- * Copyright (c) 2017, 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.
- */
-
-/*
- * A tagging interface that all TLS communication parameters must implement.
- */
-public interface Parameter { }
-
-/* The followings are TLS communication parameters. */
-
-enum Protocol implements Parameter {
-
-    SSLV3_0(3, "SSLv3"),
-    TLSV1_0(4, "TLSv1"),
-    TLSV1_1(5, "TLSv1.1"),
-    TLSV1_2(6, "TLSv1.2");
-
-    public final int sequence;
-    public final String version;
-
-    private Protocol(int sequence, String version) {
-        this.sequence = sequence;
-        this.version = version;
-    }
-
-    static Protocol getProtocol(String version) {
-        for (Protocol protocol : values()) {
-            if (protocol.version.equals(version)) {
-                return protocol;
-            }
-        }
-
-        return null;
-    }
-
-    static Protocol[] getMandatoryValues() {
-        return new Protocol[] { TLSV1_0, TLSV1_1, TLSV1_2 };
-    }
-}
-
-enum CipherSuite implements Parameter {
-
-    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_RSA_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(),
-    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(),
-    TLS_RSA_WITH_AES_256_CBC_SHA(),
-    TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(),
-    TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(),
-    TLS_DHE_RSA_WITH_AES_256_CBC_SHA(),
-    TLS_DHE_DSS_WITH_AES_256_CBC_SHA(),
-    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK7),
-    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(),
-    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(),
-    TLS_RSA_WITH_AES_128_CBC_SHA(),
-    TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(),
-    TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(
-            Protocol.SSLV3_0, JdkRelease.JDK7),
-    TLS_DHE_RSA_WITH_AES_128_CBC_SHA(),
-    TLS_DHE_DSS_WITH_AES_128_CBC_SHA(),
-    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_RSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_RSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(
-            Protocol.TLSV1_2, JdkRelease.JDK8),
-    TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA(),
-    TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(),
-    TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA(),
-    TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA(),
-    TLS_ECDHE_ECDSA_WITH_RC4_128_SHA(),
-    TLS_ECDHE_RSA_WITH_RC4_128_SHA(),
-    TLS_ECDH_ECDSA_WITH_RC4_128_SHA(),
-    TLS_ECDH_RSA_WITH_RC4_128_SHA(),
-    SSL_RSA_WITH_RC4_128_SHA(),
-    SSL_RSA_WITH_3DES_EDE_CBC_SHA(),
-    SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA(
-            Protocol.SSLV3_0, JdkRelease.JDK7),
-    SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA(
-            Protocol.SSLV3_0, JdkRelease.JDK7),
-    SSL_RSA_WITH_RC4_128_MD5(
-            Protocol.SSLV3_0, JdkRelease.JDK7);
-
-    private static final boolean FULL_CIPHER_SUITES
-            = Utils.getBoolProperty("fullCipherSuites");
-
-    final Protocol startProtocol;
-    final Protocol endProtocol;
-
-    final JdkRelease startJdk;
-    final JdkRelease endJdk;
-
-    private CipherSuite(
-            Protocol startProtocol, Protocol endProtocol,
-            JdkRelease startJdk, JdkRelease endJdk) {
-        this.startProtocol = startProtocol;
-        this.endProtocol = endProtocol;
-
-        this.startJdk = startJdk;
-        this.endJdk = endJdk;
-    }
-
-    private CipherSuite(Protocol startProtocol, JdkRelease startJdk) {
-        this(startProtocol, null, startJdk, null);
-    }
-
-    private CipherSuite() {
-        this(Protocol.TLSV1_0, null, JdkRelease.JDK7, null);
-    }
-
-    boolean supportedByProtocol(Protocol protocol) {
-        return startProtocol.sequence <= protocol.sequence
-                && (endProtocol == null || endProtocol.sequence >= protocol.sequence);
-    }
-
-    static CipherSuite[] getMandatoryValues() {
-        return FULL_CIPHER_SUITES
-               ? values()
-               : new CipherSuite[] {
-                       TLS_RSA_WITH_AES_128_CBC_SHA,
-                       TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
-                       TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
-                       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
-                       TLS_RSA_WITH_AES_256_CBC_SHA256,
-                       TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
-                       TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
-                       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 };
-    }
-
-    static CipherSuite getCipherSuite(String name) {
-        for (CipherSuite cipherSuite : values()) {
-            if (cipherSuite.name().equals(name)) {
-                return cipherSuite;
-            }
-        }
-
-        return null;
-    }
-}
-
-enum ClientAuth implements Parameter {
-
-    FALSE,
-    TRUE;
-
-    static ClientAuth[] getMandatoryValues() {
-        return new ClientAuth[] { TRUE };
-    }
-}
-
-enum ServerName implements Parameter {
-
-    NONE(null),
-    EXAMPLE("www.example.com");
-
-    final String name;
-
-    private ServerName(String name) {
-        this.name = name;
-    }
-
-    static ServerName[] getMandatoryValues() {
-        return new ServerName[] { EXAMPLE };
-    }
-}
-
-enum AppProtocol implements Parameter {
-
-    NONE(null, null),
-    EXAMPLE(new String[] { Utils.HTTP_2, Utils.HTTP_1_1 }, Utils.HTTP_2);
-
-    final String[] appProtocols;
-
-    // Expected negotiated application protocol
-    final String negoAppProtocol;
-
-    private AppProtocol(String[] appProtocols, String negoAppProtocol) {
-        this.appProtocols = appProtocols;
-        this.negoAppProtocol = negoAppProtocol;
-    }
-
-    static AppProtocol[] getMandatoryValues() {
-        return new AppProtocol[] { EXAMPLE };
-    }
-}
--- a/test/jdk/javax/net/ssl/compatibility/README	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/README	Tue Jan 22 09:43:38 2019 -0500
@@ -1,4 +1,4 @@
-# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 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
@@ -21,10 +21,10 @@
 
 ##### Summary #####
 This test is used to check the interop compatibility on JSSE among different
-JDK releases. The oldest version supported by the test is JDK 6. Some of Java
-source files, JdkUtils.java, Parameter.java, Server.java, and Client.java, use
-only JDK 6-compliant language features and APIs, in order to allowing different
-JDK releases can load and run associated classes.
+JDK releases. The oldest version supported by the test is JDK 7. Some of Java
+source files, JdkUtils.java, Server.java, and Client.java, use only JDK 7-compliant
+language features and APIs, in order to allowing different JDK releases can load
+and run associated classes.
 
 ##### Output #####
 The test can generate a report at $JTREG_WORKDIR/scratch/report.html to display
@@ -78,7 +78,7 @@
 Besides the common jtreg options, like -jdk, this test introduces some more
 properties:
 debug
-    It indicates if the test enable -Djavax.net.ssl=debug. This is a boolean
+    It indicates if the test enable -Djavax.net.debug=all. This is a boolean
     property, and the default value is false.
     It is not mandatory.
 
--- a/test/jdk/javax/net/ssl/compatibility/Server.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/Server.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -120,7 +120,7 @@
         Status status = Status.SUCCESS;
         Server server = null;
         try {
-            server = new Server(Cert.getCerts(cipherSuite));
+            server = new Server(Cert.getCerts(CipherSuite.cipherSuite(cipherSuite)));
             System.out.println("port=" + server.getPort());
             server.setNeedClientAuth(clientAuth);
             server.setEnabledProtocols(protocol);
@@ -146,16 +146,20 @@
                 server.close();
             }
 
-            // Cleanups port log.
-            if (!new File(Utils.PORT_LOG).delete()) {
-                throw new RuntimeException("Cannot delete port log");
-            }
+            deletePortFile();
         }
 
         System.out.println("STATUS: " + status);
         System.out.println("----- Server end -----");
     }
 
+    private static void deletePortFile() {
+        File portFile = new File(Utils.PORT_LOG);
+        if (portFile.exists() && !portFile.delete()) {
+            throw new RuntimeException("Cannot delete port log");
+        }
+    }
+
     private static void savePort(int port) throws IOException {
         FileWriter writer = null;
         try {
--- a/test/jdk/javax/net/ssl/compatibility/UseCase.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/UseCase.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -32,16 +32,119 @@
     private static final boolean FULL_CASES
             = Utils.getBoolProperty("fullCases");
 
-    private static final Parameter[][] PARAMS = new Parameter[][] {
-            FULL_CASES ? Protocol.values() : Protocol.getMandatoryValues(),
-            FULL_CASES ? CipherSuite.values() : CipherSuite.getMandatoryValues(),
-            FULL_CASES ? ClientAuth.values() : ClientAuth.getMandatoryValues(),
-            FULL_CASES ? ServerName.values() : ServerName.getMandatoryValues(),
-            FULL_CASES ? AppProtocol.values() : AppProtocol.getMandatoryValues() };
+    public static final boolean FULL_CIPHER_SUITES
+            = Utils.getBoolProperty("fullCipherSuites");
+
+    public static final Protocol[] PROTOCOLS = new Protocol[] {
+            Protocol.TLSV1,
+            Protocol.TLSV1_1,
+            Protocol.TLSV1_2,
+            Protocol.TLSV1_3 };
+
+    public static final CipherSuite[] CIPHER_SUITES = new CipherSuite[] {
+            CipherSuite.TLS_AES_128_GCM_SHA256,
+            CipherSuite.TLS_AES_256_GCM_SHA384,
+            CipherSuite.TLS_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
+            CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA256,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
+            CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
+            CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_RSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
+            CipherSuite.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 };
+
+    public static final CipherSuite[] MANDATORY_CIPHER_SUITES = new CipherSuite[] {
+            CipherSuite.TLS_AES_128_GCM_SHA256,
+            CipherSuite.TLS_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
+            CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+            CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA256,
+            CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
+            CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
+            CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 };
+
+    enum ServerName {
+
+        NONE(null),
+        EXAMPLE("EXAMPLE");
+
+        final String name;
+
+        private ServerName(String name) {
+            this.name = name;
+        }
+    }
+
+    enum AppProtocol {
+
+        NONE(null, null),
+        EXAMPLE(new String[] { Utils.HTTP_2, Utils.HTTP_1_1 }, Utils.HTTP_2);
+
+        final String[] appProtocols;
+
+        // Expected negotiated application protocol
+        final String negoAppProtocol;
+
+        private AppProtocol(String[] appProtocols, String negoAppProtocol) {
+            this.appProtocols = appProtocols;
+            this.negoAppProtocol = negoAppProtocol;
+        }
+    }
+
+    private static final Object[][] PARAMS = new Object[][] {
+            FULL_CASES ? PROTOCOLS : PROTOCOLS,
+            FULL_CASES ? CIPHER_SUITES : MANDATORY_CIPHER_SUITES,
+            FULL_CASES ? new Boolean[] { false, true } : new Boolean[] { true },
+            FULL_CASES
+                    ? new ServerName[] { ServerName.NONE, ServerName.EXAMPLE }
+                    : new ServerName[] { ServerName.EXAMPLE },
+            FULL_CASES
+                    ? new AppProtocol[] {
+                            AppProtocol.NONE,
+                            AppProtocol.EXAMPLE }
+                    : new AppProtocol[] {
+                            AppProtocol.EXAMPLE } };
 
     public final Protocol protocol;
     public final CipherSuite cipherSuite;
-    public final ClientAuth clientAuth;
+    public final Boolean clientAuth;
     public final ServerName serverName;
     public final AppProtocol appProtocol;
 
@@ -50,7 +153,7 @@
     public UseCase(
             Protocol protocol,
             CipherSuite cipherSuite,
-            ClientAuth clientAuth,
+            boolean clientAuth,
             ServerName serverName,
             AppProtocol appProtocol) {
         this.protocol = protocol;
@@ -62,15 +165,10 @@
         negativeCase = !cipherSuite.supportedByProtocol(protocol);
     }
 
-    // JDK 6 doesn't support EC key algorithm.
-    public boolean ignoredByJdk(JdkInfo jdkInfo) {
-        return cipherSuite.name().contains("_EC") && !jdkInfo.supportsECKey;
-    }
-
     @Override
     public String toString() {
         return Utils.join(Utils.PARAM_DELIMITER,
-                "Protocol=" + protocol.version,
+                "Protocol=" + protocol.name,
                 "CipherSuite=" + cipherSuite,
                 "ClientAuth=" + clientAuth,
                 "ServerName=" + serverName,
@@ -79,12 +177,12 @@
 
     public static List<UseCase> getAllUseCases() {
         List<UseCase> useCases = new ArrayList<>();
-        getUseCases(PARAMS, 0, new Parameter[PARAMS.length], useCases);
+        getUseCases(PARAMS, 0, new Object[PARAMS.length], useCases);
         return useCases;
     }
 
-    private static void getUseCases(Parameter[][] params, int index,
-            Parameter[] currentValues, List<UseCase> useCases) {
+    private static void getUseCases(Object[][] params, int index,
+            Object[] currentValues, List<UseCase> useCases) {
         if (index == params.length) {
             Protocol protocol = (Protocol) currentValues[0];
             CipherSuite cipherSuite = (CipherSuite) currentValues[1];
@@ -92,12 +190,12 @@
             UseCase useCase = new UseCase(
                     protocol,
                     cipherSuite,
-                    (ClientAuth) currentValues[2],
+                    (Boolean) currentValues[2],
                     (ServerName) currentValues[3],
                     (AppProtocol) currentValues[4]);
             useCases.add(useCase);
         } else {
-            Parameter[] values = params[index];
+            Object[] values = params[index];
             for (int i = 0; i < values.length; i++) {
                 currentValues[index] = values[i];
                 getUseCases(params, index + 1, currentValues, useCases);
--- a/test/jdk/javax/net/ssl/compatibility/Utils.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/javax/net/ssl/compatibility/Utils.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -124,19 +124,11 @@
         PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(
                 hexToBytes(cert.privKeyMaterials));
         KeyFactory keyFactory = KeyFactory.getInstance(
-                getKeyAlgorithm(cert.signatureAlgorithm));
+                cert.keyAlgorithm.name);
         PrivateKey privKey = keyFactory.generatePrivate(privKeySpec);
         return privKey;
     }
 
-    private static String getKeyAlgorithm(
-            SignatureAlgorithm signatureAlgorithm) {
-        String signatureAlogrithmName = signatureAlgorithm.name();
-        return signatureAlogrithmName.equals(SignatureAlgorithm.ECDSA.name())
-               ? "EC"
-               : signatureAlogrithmName;
-    }
-
     public static byte[] hexToBytes(String hex) {
         if (hex == null) {
             return null;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/jdk/internal/loader/URLClassPath/JarClassPathFileEntry.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 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.
+ */
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+import jdk.test.lib.util.JarUtils;
+import jdk.test.lib.compiler.InMemoryJavaCompiler;
+
+/*
+ * @test
+ * @bug 8216401
+ * @summary Test loading of JAR Class-Path entry with file: scheme
+ * @library /test/lib
+ *
+ * @run main/othervm JarClassPathFileEntry
+ * @run main/othervm -Djdk.net.URLClassPath.disableClassPathURLCheck=true JarClassPathFileEntry
+ * @run main/othervm -Djdk.net.URLClassPath.disableClassPathURLCheck=false JarClassPathFileEntry
+ */
+
+public class JarClassPathFileEntry {
+    private final static boolean IS_WINDOWS = System.getProperty("os.name").startsWith("Windows");
+
+    private final static String TEST_CLASSES = System.getProperty("test.classes");
+    private final static String OTHER_DIR = TEST_CLASSES + "/OTHER/";
+
+    private final static Path OTHER_JAR_PATH = Paths.get(OTHER_DIR, "Other.jar");
+    private final static Path CONTEXT_JAR_PATH = Paths.get(TEST_CLASSES, "Context.jar");
+
+    public static void main(String[] args) throws Throwable {
+        // Create Other.class in OTHER_DIR, off the default classpath
+        byte klassbuf[] = InMemoryJavaCompiler.compile("Other",
+                                                       "public class Other {}");
+        ClassFileInstaller.writeClassToDisk("Other", klassbuf, OTHER_DIR);
+
+        // Create Other.jar in OTHER_DIR
+        JarUtils.createJarFile(OTHER_JAR_PATH,
+                               Paths.get(OTHER_DIR),
+                               Paths.get(OTHER_DIR, "Other.class"));
+
+        // Create Context.class
+        klassbuf = InMemoryJavaCompiler.compile("Context",
+                                                "public class Context {}");
+        ClassFileInstaller.writeClassToDisk("Context", klassbuf, TEST_CLASSES);
+
+        // Create Context.jar w/ "file:" entry for Other.jar
+        Manifest mf = new Manifest();
+        Attributes attrs = mf.getMainAttributes();
+        attrs.put(Attributes.Name.MANIFEST_VERSION, "1.0");
+
+        String classPathEntry = "file:" + (IS_WINDOWS ? toUnixPath(OTHER_JAR_PATH.toString())
+                                                      :            OTHER_JAR_PATH.toString());
+        attrs.put(Attributes.Name.CLASS_PATH, classPathEntry);
+
+        System.out.println("Creating Context.jar with Class-Path: " + classPathEntry);
+        JarUtils.createJarFile(CONTEXT_JAR_PATH, mf,
+                               Paths.get(TEST_CLASSES),
+                               Paths.get(TEST_CLASSES, "Context.class"));
+
+        // Use URLClassLoader w/ Context.jar to load Other.class, which will
+        // load via the Class-Path entry
+        URL url = CONTEXT_JAR_PATH.toUri().toURL();
+        URLClassLoader ucl = new URLClassLoader("TestURLClassLoader",
+                                                new URL[]{ url },
+                                                null); // don't delegate to App CL
+        Class<?> otherClass = Class.forName("Other", true, ucl); // ClassNotFoundException -> fail
+        System.out.println("Loaded: " + otherClass);
+    }
+
+    /* Convert a Windows path to a unix-style path, and remove any drive letter */
+    private static String toUnixPath(String orig) {
+        String retVal = new File(orig).toURI().getPath();
+        int colonAt = retVal.indexOf(':');
+
+        if (colonAt != -1 && colonAt < 3) {
+            retVal = retVal.substring(colonAt + 1); // Start after the drive letter
+        }
+        return retVal;
+    }
+}
--- a/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithG1.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/jdk/jfr/event/gc/detailed/TestPromotionEventWithG1.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -35,7 +35,8 @@
  *           & vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /test/lib /test/jdk
  * @run main/othervm -Xmx32m -Xms32m -Xmn12m -XX:+UseG1GC -XX:-UseStringDeduplication -XX:MaxTenuringThreshold=5 -XX:InitialTenuringThreshold=5 jdk.jfr.event.gc.detailed.TestPromotionEventWithG1
- * @run main/othervm -Xmx32m -Xms32m -Xmn12m -XX:+UseG1GC -XX:-UseStringDeduplication -XX:MaxTenuringThreshold=5 -XX:InitialTenuringThreshold=5 -XX:MinTLABSize=576 -XX:TLABSize=576 jdk.jfr.event.gc.detailed.TestPromotionEventWithG1
+ * @run main/othervm -Xmx32m -Xms32m -Xmn12m -XX:AllocatePrefetchLines=1 -XX:AllocateInstancePrefetchLines=1 -XX:AllocatePrefetchStepSize=16 -XX:AllocatePrefetchDistance=1 -XX:+UseG1GC
+  *                  -XX:-UseStringDeduplication -Xlog:os+cpu=info -XX:MaxTenuringThreshold=5 -XX:InitialTenuringThreshold=5 -XX:MinTLABSize=768 -XX:TLABSize=768 jdk.jfr.event.gc.detailed.TestPromotionEventWithG1
  */
 public class TestPromotionEventWithG1 {
 
--- a/test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java	Tue Jan 22 09:43:38 2019 -0500
@@ -77,8 +77,8 @@
     // NOTE: if the event is not covered, a bug should be open, and bug number
     // noted in the comments for this set.
     private static final Set<String> knownNotCoveredEvents = new HashSet<>(
-        // DumpReason: JDK-8213918, Shutdown: JDK-8213917
-        Arrays.asList("DumpReason", "Shutdown")
+        // DumpReason: JDK-8213918
+        Arrays.asList("DumpReason")
     );
 
 
--- a/test/jdk/jdk/jfr/event/runtime/TestNativeLibrariesEvent.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/jdk/jfr/event/runtime/TestNativeLibrariesEvent.java	Tue Jan 22 09:43:38 2019 -0500
@@ -39,6 +39,7 @@
 
 /**
  * @test
+ * @bug 8216559
  * @key jfr
  * @requires vm.hasJFR
  * @library /test/lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/jdk/jfr/event/runtime/TestShutdownEvent.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 2018, 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.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * 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.
+ */
+package jdk.jfr.event.runtime;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.nio.file.Paths;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import jdk.jfr.consumer.RecordedEvent;
+import jdk.jfr.consumer.RecordedFrame;
+import jdk.jfr.consumer.RecordedStackTrace;
+import jdk.jfr.consumer.RecordingFile;
+import jdk.test.lib.Asserts;
+import jdk.test.lib.Platform;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
+import jdk.test.lib.jfr.EventNames;
+import jdk.test.lib.jfr.Events;
+import sun.misc.Unsafe;
+
+/**
+ * @test
+ * @summary Test Shutdown event
+ * @key jfr
+ * @requires vm.hasJFR
+ * @library /test/lib
+ * @modules jdk.jfr
+ * @run main jdk.jfr.event.runtime.TestShutdownEvent
+ */
+public class TestShutdownEvent {
+    private static ShutdownEventSubTest subTests[] = {
+             new TestLastNonDaemon(),
+             new TestSystemExit(),
+             new TestVMCrash(),
+             new TestUnhandledException(),
+             new TestRuntimeHalt(),
+             new TestSig("TERM"),
+             new TestSig("HUP"),
+             new TestSig("INT")};
+
+    public static void main(String[] args) throws Throwable {
+        for (int i = 0; i < subTests.length; ++i) {
+            if (subTests[i].isApplicable()) {
+                runSubtest(i);
+            } else {
+                System.out.println("Skipping non-applicable test: " + i);
+            }
+        }
+    }
+
+    private static void runSubtest(int subTestIndex) throws Exception {
+        ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true,
+                                "-Xlog:jfr=debug",
+                                "-XX:-CreateCoredumpOnCrash",
+                                "-XX:StartFlightRecording=filename=./dumped.jfr,dumponexit=true,settings=default",
+                                "jdk.jfr.event.runtime.TestShutdownEvent$TestMain",
+                                String.valueOf(subTestIndex));
+        OutputAnalyzer output = ProcessTools.executeProcess(pb);
+        System.out.println(output.getOutput());
+        System.out.println("Exit code: " + output.getExitValue());
+
+        String recordingName = output.firstMatch("emergency jfr file: (.*.jfr)", 1);
+        if (recordingName == null) {
+            recordingName = "./dumped.jfr";
+        }
+
+        List<RecordedEvent> events = RecordingFile.readAllEvents(Paths.get(recordingName));
+        List<RecordedEvent> filteredEvents = events.stream()
+            .filter(e -> e.getEventType().getName().equals(EventNames.Shutdown))
+            .sorted(Comparator.comparing(RecordedEvent::getStartTime))
+            .collect(Collectors.toList());
+
+        Asserts.assertEquals(filteredEvents.size(), 1);
+        RecordedEvent event = filteredEvents.get(0);
+        subTests[subTestIndex].verifyEvents(event);
+    }
+
+    @SuppressWarnings("unused")
+    private static class TestMain {
+        public static void main(String[] args) throws Exception {
+            ShutdownEventSubTest subTest = subTests[Integer.parseInt(args[0])];
+            System.out.println("Running subtest " + args[0] + " (" + subTest.getClass().getName() + ")");
+            subTest.runTest();
+        }
+    }
+
+    private interface ShutdownEventSubTest {
+        default boolean isApplicable() {
+            return true;
+        }
+        void runTest();
+        void verifyEvents(RecordedEvent event);
+    }
+
+    public static Unsafe getUnsafe() {
+        try {
+            Field f = Unsafe.class.getDeclaredField("theUnsafe");
+            f.setAccessible(true);
+            return (Unsafe)f.get(null);
+        } catch (Exception e) {
+            Asserts.fail("Could not access Unsafe");
+        }
+        return null;
+    }
+
+    // Basic stack trace validation, checking that the runTest method is part of the stack
+    static void validateStackTrace(RecordedStackTrace stackTrace) {
+        List<RecordedFrame> frames = stackTrace.getFrames();
+        Asserts.assertFalse(frames.isEmpty());
+        Asserts.assertTrue(frames.stream()
+                           .anyMatch(t -> t.getMethod().getName().equals("runTest")));
+    }
+
+
+    // =========================================================================
+    private static class TestLastNonDaemon implements ShutdownEventSubTest {
+        @Override
+        public void runTest() {
+            // Do nothing - this is the default exit reason
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("No remaining non-daemon Java threads");
+        }
+    }
+
+    private static class TestSystemExit implements ShutdownEventSubTest {
+        @Override
+        public void runTest() {
+            System.out.println("Running System.exit");
+            System.exit(42);
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("Shutdown requested from Java");
+            validateStackTrace(event.getStackTrace());
+        }
+    }
+
+    private static class TestVMCrash implements ShutdownEventSubTest {
+
+        @Override
+        public void runTest() {
+            System.out.println("Attempting to crash");
+            getUnsafe().putInt(0L, 0);
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("VM Error");
+            validateStackTrace(event.getStackTrace());
+        }
+    }
+
+    private static class TestUnhandledException implements ShutdownEventSubTest {
+        @Override
+        public void runTest() {
+            throw new RuntimeException("Unhandled");
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("No remaining non-daemon Java threads");
+        }
+    }
+
+    private static class TestRuntimeHalt implements ShutdownEventSubTest {
+        @Override
+        public void runTest() {
+            System.out.println("Running Runtime.getRuntime.halt");
+            Runtime.getRuntime().halt(17);
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("Shutdown requested from Java");
+            validateStackTrace(event.getStackTrace());
+        }
+    }
+
+    private static class TestSig implements ShutdownEventSubTest {
+
+        private final String signalName;
+
+        @Override
+        public boolean isApplicable() {
+            if (Platform.isWindows()) {
+                return false;
+            }
+            if (signalName.equals("HUP") && Platform.isSolaris()) {
+                return false;
+            }
+            return true;
+        }
+
+        public TestSig(String signalName) {
+            this.signalName = signalName;
+        }
+
+        @Override
+        public void runTest() {
+            System.out.println("Sending SIG" + signalName + " to process " + ProcessHandle.current().pid());
+            try {
+                Runtime.getRuntime().exec("kill -" + signalName + " " + ProcessHandle.current().pid()).waitFor();
+                Thread.sleep(60_1000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            Asserts.fail("Process survived the SIG" + signalName + " signal!");
+        }
+
+        @Override
+        public void verifyEvents(RecordedEvent event) {
+            Events.assertField(event, "reason").equal("Shutdown requested from Java");
+            Events.assertEventThread(event);
+            Asserts.assertEquals(event.getThread().getJavaName(), "SIG" + signalName + " handler");
+        }
+    }
+}
--- a/test/jdk/jdk/nio/zipfs/Basic.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/jdk/nio/zipfs/Basic.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -23,7 +23,6 @@
 
 import java.nio.file.AccessMode;
 import java.nio.file.ClosedFileSystemException;
-import java.nio.file.DirectoryStream;
 import java.nio.file.FileStore;
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystems;
@@ -43,7 +42,7 @@
 import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
 /**
  * @test
- * @bug 8038500 8040059 8150366 8150496 8147539 8211385
+ * @bug 8038500 8040059 8150366 8150496 8147539
  * @summary Basic test for zip provider
  *
  * @modules jdk.zipfs
@@ -87,32 +86,6 @@
         // Test: exercise directory iterator and retrieval of basic attributes
         Files.walkFileTree(fs.getPath("/"), new FileTreePrinter());
 
-        // Test: DirectoryStream
-        found = false;
-
-        try (DirectoryStream<Path> stream = Files.newDirectoryStream(fs.getPath("/"))) {
-            for (Path entry: stream) {
-                found = entry.toString().equals("/META-INF");
-                if (found) break;
-            }
-        }
-        if (!found)
-            throw new RuntimeException("Expected file not found");
-
-        try (DirectoryStream<Path> stream = Files.newDirectoryStream(fs.getPath("META-INF"))) {
-            for (Path entry: stream) {
-                if (entry.toString().equals("/META-INF/services"))
-                    throw new RuntimeException("child path should be relative");
-            }
-        }
-
-        try (DirectoryStream<Path> stream = Files.newDirectoryStream(fs.getPath("/META-INF"))) {
-            for (Path entry: stream) {
-                if (entry.toString().equals("META-INF/services"))
-                    throw new RuntimeException("child path should be absolute");
-            }
-        }
-
         // Test: copy file from zip file to current (scratch) directory
         Path source = fs.getPath("/META-INF/services/java.nio.file.spi.FileSystemProvider");
         if (Files.exists(source)) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/jdk/nio/zipfs/DirectoryStreamTests.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,357 @@
+/*
+ * Copyright (c) 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.
+ */
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+import java.nio.file.*;
+import java.nio.file.spi.FileSystemProvider;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.regex.PatternSyntaxException;
+import java.util.zip.ZipException;
+
+import static org.testng.Assert.*;
+
+/**
+ * @test
+ * @bug 8211385 8211919
+ * @summary ZIP File System tests that leverage DirectoryStream
+ * @modules jdk.zipfs
+ * @compile DirectoryStreamTests.java
+ * @run testng DirectoryStreamTests
+ * @run testng/othervm/java.security.policy=test.policy  DirectoryStreamTests
+ */
+public class DirectoryStreamTests {
+
+    // Map to used for creating a ZIP archive
+    private static final Map<String, String> ZIPFS_MAP = Map.of("create", "true");
+
+    // Map to used for extracting a ZIP archive
+    private static final Map<String, String> UNZIPFS_MAP = Map.of();
+
+    // The ZIP file system provider
+    private static final FileSystemProvider ZIPFS_PROVIDER = getZipFSProvider();
+
+    // Primary jar file used for testing
+    private static Path jarFile;
+
+    // Jar file used to validate the behavior of the navigation of an empty directory
+    private static Path emptyJarFile;
+
+    /**
+     * Create the JAR files used by the tests
+     */
+    @BeforeClass
+    public void setUp()  throws Exception {
+        emptyJarFile = Paths.get("emptyDir.jar");
+        try (FileSystem zipfs = ZIPFS_PROVIDER.newFileSystem(emptyJarFile, ZIPFS_MAP)) {
+
+            jarFile = Utils.createJarFile("basic.jar",
+                    "META-INF/services/java.nio.file.spi.FileSystemProvider");
+
+            Files.createDirectory(zipfs.getPath("emptyDir"));
+        }
+    }
+
+    /**
+     * Remove JAR files used by test as part of clean-up
+     */
+    @AfterClass
+    public void tearDown() throws Exception {
+            Files.deleteIfExists(jarFile);
+            Files.deleteIfExists(emptyJarFile);
+    }
+
+    /**
+     * Validate that you can specify a DirectoryStream filter using the ZIP File
+     * System and that the returned Iterator correctly indicates whether the
+     * filter has been matched
+     */
+    @Test(dataProvider = "filterTestValues")
+    public void test0000(String glob, boolean expectedResult, String errMsg)
+            throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds = Files.newDirectoryStream(zipfs.getPath("/"),
+                     new DirectoryStream.Filter<Path>() {
+                         private PathMatcher matcher =
+                                 zipfs.getPathMatcher("glob:" + glob);
+                         public boolean accept(Path file) {
+                             return matcher.matches(file.getFileName());
+                         }
+             }))
+        {
+            assertEquals(ds.iterator().hasNext(), expectedResult, errMsg);
+        }
+    }
+
+    /**
+     * Validate that you can specify a glob using the ZIP File System and that the
+     * returned Iterator correctly indicates whether the glob pattern has been matched
+     */
+    @Test(dataProvider = "filterTestValues")
+    public void test0001(String glob, boolean expectedResult, String errMsg)
+            throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"), glob)) {
+            assertEquals(ds.iterator().hasNext(), expectedResult, errMsg);
+        }
+    }
+
+    /**
+     * Validate a PatternSyntaxException is thrown when specifying an invalid
+     * glob pattern with the ZIP File system
+     */
+    @Test
+    public void test0002() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP)) {
+            assertThrows(PatternSyntaxException.class, () ->
+                    Files.newDirectoryStream(zipfs.getPath("/"), "*[a-z"));
+        }
+    }
+
+    /**
+     * Validate that the correct type of paths are returned when creating a
+     * DirectoryStream
+     */
+    @Test(dataProvider = "startPaths")
+    public void test0003(String startPath, String expectedPath)
+            throws IOException {
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> stream =
+                     Files.newDirectoryStream(zipfs.getPath(startPath))) {
+
+            for (Path entry : stream) {
+                assertTrue(entry.toString().equals(expectedPath),
+                        String.format("Error: Expected path %s not found when"
+                                + " starting at %s%n", expectedPath, entry));
+            }
+        }
+    }
+
+    /**
+     * Validate a NotDirectoryException is thrown when specifying a file for the
+     * starting path for creating a DirectoryStream with the ZIP File System
+     */
+    @Test
+    public void test0004() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP)) {
+            assertThrows(NotDirectoryException.class,
+                    () -> Files.newDirectoryStream(
+                            zipfs.getPath("META-INF/services/java.nio.file.spi."
+                                    + "FileSystemProvider")));
+        }
+    }
+
+    /**
+     * Validate an IllegalStateException is thrown when accessing the Iterator
+     * more than once with the ZIP File System
+     */
+    @Test
+    public void test0005() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"))) {
+            ds.iterator();
+            assertThrows(IllegalStateException.class, () -> ds.iterator());
+
+        }
+    }
+
+    /**
+     * Validate an IllegalStateException is thrown when accessing the Iterator
+     * after the DirectoryStream has been closed with the ZIP File System
+     */
+    @Test
+    public void test0006() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"))) {
+            ds.close();
+            assertThrows(IllegalStateException.class, () -> ds.iterator());
+
+            // ZipDirectoryStream.iterator() throws ClosedDirectoryStream when
+            // obtaining an Iterator when the DirectoryStream is closed
+            assertThrows(ClosedDirectoryStreamException.class, () -> ds.iterator());
+
+        }
+    }
+
+    /**
+     * Validate an UnsupportedOperationException is thrown when invoking an
+     * Iterator operation that is not supported with the ZIP File System
+     */
+    @Test
+    public void test0007() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"))) {
+            Iterator<Path> i = ds.iterator();
+
+            assertThrows(UnsupportedOperationException.class, () -> i.remove());
+        }
+    }
+
+    /**
+     * Validate an NoSuchElementException is thrown when invoking an
+     * Iterator.next() on a closed DirectoryStream with the ZIP File System
+     */
+    @Test
+    public void test0008() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"))) {
+            Iterator<Path> i = ds.iterator();
+            ds.close();
+            assertThrows(NoSuchElementException.class, () -> i.next());
+        }
+    }
+
+    /**
+     * Validate Iterator.hasNext() returns false when the directory is empty with
+     * the ZIP File System
+     */
+    @Test
+    public void test0009() throws Exception {
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(emptyJarFile, UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("emptyDir"))) {
+            assertFalse(ds.iterator().hasNext(), "Error: directory was not empty!");
+
+        }
+    }
+
+    /**
+     * Validate Iterator.hasNext() returns false when the DirectoryStream is closed
+     * with the ZIP File System
+     */
+    @Test
+    public void test0010() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds =
+                     Files.newDirectoryStream(zipfs.getPath("/"))) {
+            Iterator<Path> i = ds.iterator();
+            ds.close();
+            assertFalse(i.hasNext(),
+                    "Error: false should be returned as DirectoryStream is closed!");
+        }
+    }
+
+    /**
+     * Validate that an IOException thrown by a filter is returned as the cause
+     * via a DirectoryIteratorException
+     */
+    @Test
+    public void test0011() throws Exception {
+
+        try (FileSystem zipfs =
+                ZIPFS_PROVIDER.newFileSystem(Paths.get("basic.jar"), UNZIPFS_MAP);
+             DirectoryStream<Path> ds = Files.newDirectoryStream(zipfs.getPath("/"),
+                     new DirectoryStream.Filter<Path>() {
+                         public boolean accept(Path file) throws IOException {
+                             throw new java.util.zip.ZipException();
+                         }
+                     }))
+        {
+            ds.iterator().hasNext();
+            throw new RuntimeException("Expected DirectoryIteratorException not thrown");
+
+        } catch (DirectoryIteratorException x) {
+            IOException cause = x.getCause();
+            if (!(cause instanceof ZipException))
+                throw new RuntimeException("Expected IOException not propagated");
+        }
+    }
+
+    /**
+     * Glob values to use to validate filtering
+     */
+    @DataProvider(name = "filterTestValues")
+    public static Object[][] filterValues() {
+
+        String expectedMsg = "Error: Matching entries were expected but not found!!!";
+        String notExpectedMsg = "Error: No matching entries expected but were found!!!";
+        return new Object[][]{
+
+                {"M*", true, expectedMsg},
+                {"I*", false, notExpectedMsg}
+        };
+    }
+
+    /**
+     * Starting Path for the DirectoryStream and the expected path to be returned
+     * when traversing the stream
+     */
+    @DataProvider(name = "startPaths")
+    public static Object[][] Name() {
+        return new Object[][]{
+
+                {"META-INF", "META-INF/services"},
+                {"/META-INF", "/META-INF/services"},
+                {"/META-INF/../META-INF","/META-INF/../META-INF/services" },
+                {"./META-INF", "./META-INF/services"},
+                {"", "META-INF"},
+                {"/", "/META-INF"},
+                {".", "./META-INF"},
+                {"./", "./META-INF"}
+        };
+    }
+
+    /**
+     * Returns the Zip FileSystem Provider
+     */
+    private static FileSystemProvider getZipFSProvider() {
+        for (FileSystemProvider fsProvider : FileSystemProvider.installedProviders()) {
+            if ("jar".equals(fsProvider.getScheme())) {
+                return fsProvider;
+            }
+        }
+        return null;
+    }
+
+}
--- a/test/jdk/sun/nio/cs/OLD/IBM1383_OLD.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/nio/cs/OLD/IBM1383_OLD.java	Tue Jan 22 09:43:38 2019 -0500
@@ -31,7 +31,7 @@
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CharacterCodingException;
-import sun.nio.cs.HistoricallyNamedCharset;
+import sun.nio.cs.*;
 import sun.nio.cs.ext.*;
 
 
--- a/test/jdk/sun/nio/cs/OLD/IBM942_OLD.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/nio/cs/OLD/IBM942_OLD.java	Tue Jan 22 09:43:38 2019 -0500
@@ -31,7 +31,7 @@
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CharacterCodingException;
-import sun.nio.cs.HistoricallyNamedCharset;
+import sun.nio.cs.*;
 import sun.nio.cs.ext.*;
 
 
--- a/test/jdk/sun/nio/cs/OLD/IBM943_OLD.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/nio/cs/OLD/IBM943_OLD.java	Tue Jan 22 09:43:38 2019 -0500
@@ -30,7 +30,7 @@
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CharacterCodingException;
-import sun.nio.cs.HistoricallyNamedCharset;
+import sun.nio.cs.*;
 import sun.nio.cs.ext.*;
 
 
--- a/test/jdk/sun/nio/cs/OLD/IBM950_OLD.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/nio/cs/OLD/IBM950_OLD.java	Tue Jan 22 09:43:38 2019 -0500
@@ -30,7 +30,7 @@
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CharacterCodingException;
-import sun.nio.cs.HistoricallyNamedCharset;
+import sun.nio.cs.*;
 import sun.nio.cs.ext.*;
 
 
--- a/test/jdk/sun/nio/cs/OLD/IBM970_OLD.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/nio/cs/OLD/IBM970_OLD.java	Tue Jan 22 09:43:38 2019 -0500
@@ -33,8 +33,7 @@
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CoderResult;
-import sun.nio.cs.HistoricallyNamedCharset;
-import sun.nio.cs.Surrogate;
+import sun.nio.cs.*;
 import sun.nio.cs.ext.*;
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/nio/cs/TestUnicodeReversedBOM.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8216140
+ * @summary Test reversed BOM (U+FFFE) in the middle of a byte buffer
+ *      passes through during decoding with UnicodeDecoder.
+ * @run testng TestUnicodeReversedBOM
+ */
+import java.nio.charset.*;
+import java.nio.*;
+import java.util.*;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+@Test
+public class TestUnicodeReversedBOM {
+    private static byte[] A_REVERSED_BE =
+        {(byte)0x0, (byte)'A', (byte)0xff, (byte)0xfe};
+    private static byte[] A_REVERSED_LE =
+        {(byte)'A', (byte)0x0, (byte)0xfe, (byte)0xff};
+    private static byte[] BOM_REVERSED_BE =
+        {(byte)0xfe, (byte)0xff, (byte)0xff, (byte)0xfe};
+    private static byte[] BOM_REVERSED_LE =
+        {(byte)0xff, (byte)0xfe, (byte)0xfe, (byte)0xff};
+
+    @DataProvider
+    // [(byte[])byte array, (Charset)cs]
+    public static Object[][] ReversedBOM() {
+        return new Object[][] {
+            {A_REVERSED_BE, StandardCharsets.UTF_16},
+            {A_REVERSED_LE, StandardCharsets.UTF_16},
+            {A_REVERSED_BE, StandardCharsets.UTF_16BE},
+            {A_REVERSED_LE, StandardCharsets.UTF_16BE},
+            {A_REVERSED_BE, StandardCharsets.UTF_16LE},
+            {A_REVERSED_LE, StandardCharsets.UTF_16LE},
+            {BOM_REVERSED_BE, StandardCharsets.UTF_16},
+            {BOM_REVERSED_LE, StandardCharsets.UTF_16},
+            {BOM_REVERSED_BE, StandardCharsets.UTF_16BE},
+            {BOM_REVERSED_LE, StandardCharsets.UTF_16BE},
+            {BOM_REVERSED_BE, StandardCharsets.UTF_16LE},
+            {BOM_REVERSED_LE, StandardCharsets.UTF_16LE},
+        };
+    }
+
+    @Test(dataProvider = "ReversedBOM")
+    public void testReversedBOM(byte[] ba, Charset cs) throws CharacterCodingException {
+        cs.newDecoder()
+            .onMalformedInput(CodingErrorAction.REPORT)
+            .onUnmappableCharacter(CodingErrorAction.REPORT)
+            .decode(ByteBuffer.wrap(ba));
+    }
+}
--- a/test/jdk/sun/security/krb5/auto/BasicProc.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/security/krb5/auto/BasicProc.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -307,8 +307,7 @@
                     .prop("sun.security.nativegss.debug", "true");
             int pos = lib.lastIndexOf('/');
             if (pos > 0) {
-                p.env("LD_LIBRARY_PATH", lib.substring(0, pos));
-                p.env("DYLD_LIBRARY_PATH", lib.substring(0, pos));
+                p.env(Platform.sharedLibraryPathVariableName(), lib.substring(0, pos));
             }
         } else {
             p.perm(new java.util.PropertyPermission(
--- a/test/jdk/sun/security/krb5/auto/KDC.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/security/krb5/auto/KDC.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import jdk.test.lib.Platform;
+
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
@@ -1722,8 +1724,7 @@
             this.env = Map.of(
                     "KRB5_CONFIG", base + "/krb5.conf",
                     "KRB5_TRACE", "/dev/stderr",
-                    "DYLD_LIBRARY_PATH", nativePath + "/lib",
-                    "LD_LIBRARY_PATH", nativePath + "/lib");
+                    Platform.sharedLibraryPathVariableName(), nativePath + "/lib");
         }
 
         @Override
@@ -1815,8 +1816,7 @@
                     "KRB5_KDC_PROFILE", base + "/kdc.conf",
                     "KRB5_CONFIG", base + "/krb5.conf",
                     "KRB5_TRACE", "/dev/stderr",
-                    "DYLD_LIBRARY_PATH", nativePath + "/lib",
-                    "LD_LIBRARY_PATH", nativePath + "/lib");
+                    Platform.sharedLibraryPathVariableName(), nativePath + "/lib");
         }
 
         @Override
--- a/test/jdk/sun/security/krb5/auto/NoAddresses.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/security/krb5/auto/NoAddresses.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 7032354
+ * @library /test/lib
  * @run main/othervm NoAddresses setup
  * @run main/othervm -Djdk.net.hosts.file=TestHosts NoAddresses 1
  * @run main/othervm -Djdk.net.hosts.file=TestHosts NoAddresses 2
--- a/test/jdk/sun/security/krb5/auto/ReplayCacheTestProc.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/security/krb5/auto/ReplayCacheTestProc.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -399,8 +399,7 @@
             if (lib != null) {
                 String libDir = lib.substring(0, lib.lastIndexOf('/'));
                 p.prop("sun.security.jgss.lib", lib)
-                        .env("DYLD_LIBRARY_PATH", libDir)
-                        .env("LD_LIBRARY_PATH", libDir);
+                        .env(Platform.sharedLibraryPathVariableName(), libDir);
             }
         }
         Proc.d(label+suffix+" started");
--- a/test/jdk/sun/security/krb5/auto/principalProperty/PrincipalSystemPropTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/sun/security/krb5/auto/principalProperty/PrincipalSystemPropTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -21,10 +21,10 @@
  * questions.
  */
 
-/*
+/**
  * @test
  * @bug 8075301
- * @library /sun/security/krb5/auto
+ * @library /sun/security/krb5/auto /test/lib
  * @summary New test for sun.security.krb5.principal system property.
  * The principal can set using the system property sun.security.krb5.principal.
  * This property is checked during login. If this property is not set,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/pkcs12/SameDN.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 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.
+ */
+
+import static jdk.test.lib.SecurityTools.keytool;
+
+import java.io.File;
+import java.security.KeyStore;
+
+/*
+ * @test
+ * @bug 8215776
+ * @library /test/lib
+ * @summary Keytool importkeystore may mix up certificate chain entries when DNs conflict
+ */
+public class SameDN {
+
+    private static final String COMMON = "-keystore ks -storepass changeit ";
+
+    public static final void main(String[] args) throws Exception {
+        genkeypair("ca1", "CN=CA");
+        genkeypair("ca2", "CN=CA");
+        genkeypair("user1", "CN=user");
+        genkeypair("user2", "CN=user");
+        gencert("ca1", "user1");
+        gencert("ca2", "user2");
+
+        KeyStore ks = KeyStore.getInstance(
+                new File("ks"), "changeit".toCharArray());
+        if (!ks.getCertificate("ca1").equals(ks.getCertificateChain("user1")[1])) {
+            throw new Exception("user1 not signed by ca1");
+        }
+        if (!ks.getCertificate("ca2").equals(ks.getCertificateChain("user2")[1])) {
+            throw new Exception("user2 not signed by ca2");
+        }
+    }
+
+    static void genkeypair(String alias, String dn) throws Exception {
+        keytool(COMMON + "-genkeypair -alias " + alias + " -dname " + dn)
+                .shouldHaveExitValue(0);
+    }
+
+    static void gencert(String issuer, String subject) throws Exception {
+        keytool(COMMON + "-certreq -alias " + subject + " -file req")
+                .shouldHaveExitValue(0);
+        keytool(COMMON + "-gencert -alias " + issuer + " -infile req -outfile cert")
+                .shouldHaveExitValue(0);
+        keytool(COMMON + "-importcert -alias " + subject + " -file cert")
+                .shouldHaveExitValue(0);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/tools/jarsigner/SignedAgain.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8215922
+ * @summary jar spec is not precise when describing jar file re-signing
+ * @library /test/lib
+ */
+
+import jdk.test.lib.Asserts;
+import jdk.test.lib.util.JarUtils;
+
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.util.Base64;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+
+import static jdk.test.lib.SecurityTools.*;
+
+public class SignedAgain {
+    public static void main(String[] args) throws Exception {
+
+        String opt = "-storepass changeit -keystore ks";
+
+        keytool(opt + " -genkeypair -alias a -dname CN=A -keyalg RSA");
+        keytool(opt + " -genkeypair -alias b -dname CN=B -keyalg RSA");
+
+        JarUtils.createJar("a.jar", "f1");
+
+        // as.jar: signed by a
+        jarsigner(opt + " -signedjar as.jar a.jar a");
+
+        JarUtils.updateJar("as.jar", "b.jar", "f2");
+
+        // bs.jar: signed again by b
+        jarsigner(opt + " -signedjar bs.jar b.jar b");
+
+        // verified
+        jarsigner(opt + " -verify -strict -verbose -certs bs.jar")
+                .shouldHaveExitValue(0);
+
+        try (JarFile ja = new JarFile("as.jar");
+             JarFile jb = new JarFile("bs.jar");
+             InputStream ma = ja.getInputStream(
+                     new JarEntry("META-INF/MANIFEST.MF"));
+             InputStream sa = jb.getInputStream(new JarEntry("META-INF/A.SF"));
+             InputStream mb = jb.getInputStream(
+                     new JarEntry("META-INF/MANIFEST.MF"));
+             InputStream sb = jb.getInputStream(new JarEntry("META-INF/B.SF"))) {
+
+            // Hash of manifest for 2 signed JAR files
+            String da = Base64.getEncoder().encodeToString(MessageDigest
+                    .getInstance("SHA-256").digest(ma.readAllBytes()));
+            String db = Base64.getEncoder().encodeToString(MessageDigest
+                    .getInstance("SHA-256").digest(mb.readAllBytes()));
+
+            // They are not the same
+            Asserts.assertNotEquals(da, db);
+
+            // Digest-Manifest in A.SF matches da
+            Asserts.assertEQ(new Manifest(sa).getMainAttributes()
+                    .getValue("SHA-256-Digest-Manifest"), da);
+
+            // Digest-Manifest in B.SF matches db
+            Asserts.assertEQ(new Manifest(sb).getMainAttributes()
+                    .getValue("SHA-256-Digest-Manifest"), db);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/tools/keytool/PSS.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8215694
+ * @summary keytool cannot generate RSASSA-PSS certificates
+ * @library /test/lib
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.x509
+ * @run main PSS
+ */
+
+import jdk.test.lib.Asserts;
+import jdk.test.lib.SecurityTools;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.security.DerUtils;
+import sun.security.util.ObjectIdentifier;
+import sun.security.x509.AlgorithmId;
+
+import java.io.File;
+import java.security.KeyStore;
+import java.security.cert.X509Certificate;
+
+public class PSS {
+
+    public static void main(String[] args) throws Exception {
+
+        genkeypair("p", "-keyalg RSASSA-PSS -sigalg RSASSA-PSS")
+                .shouldHaveExitValue(0);
+
+        genkeypair("a", "-keyalg RSA -sigalg RSASSA-PSS -keysize 2048")
+                .shouldHaveExitValue(0);
+
+        genkeypair("b", "-keyalg RSA -sigalg RSASSA-PSS -keysize 4096")
+                .shouldHaveExitValue(0);
+
+        genkeypair("c", "-keyalg RSA -sigalg RSASSA-PSS -keysize 8192")
+                .shouldHaveExitValue(0);
+
+        KeyStore ks = KeyStore.getInstance(
+                new File("ks"), "changeit".toCharArray());
+
+        check((X509Certificate)ks.getCertificate("p"), "RSASSA-PSS",
+                AlgorithmId.SHA256_oid);
+
+        check((X509Certificate)ks.getCertificate("a"), "RSA",
+                AlgorithmId.SHA256_oid);
+
+        check((X509Certificate)ks.getCertificate("b"), "RSA",
+                AlgorithmId.SHA384_oid);
+
+        check((X509Certificate)ks.getCertificate("c"), "RSA",
+                AlgorithmId.SHA512_oid);
+
+        // More commands
+        kt("-certreq -alias p -sigalg RSASSA-PSS -file p.req")
+                .shouldHaveExitValue(0);
+
+        kt("-gencert -alias a -sigalg RSASSA-PSS -infile p.req -outfile p.cert")
+                .shouldHaveExitValue(0);
+
+        kt("-importcert -alias p -file p.cert")
+                .shouldHaveExitValue(0);
+
+        kt("-selfcert -alias p -sigalg RSASSA-PSS")
+                .shouldHaveExitValue(0);
+    }
+
+    static OutputAnalyzer genkeypair(String alias, String options)
+            throws Exception {
+        return kt("-genkeypair -alias " + alias
+                + " -dname CN=" + alias + " " + options);
+    }
+
+    static OutputAnalyzer kt(String cmd)
+            throws Exception {
+        return SecurityTools.keytool("-storepass changeit -keypass changeit "
+                + "-keystore ks " + cmd);
+    }
+
+    static void check(X509Certificate cert, String expectedKeyAlg,
+            ObjectIdentifier expectedMdAlg) throws Exception {
+        Asserts.assertEQ(cert.getPublicKey().getAlgorithm(), expectedKeyAlg);
+        Asserts.assertEQ(cert.getSigAlgName(), "RSASSA-PSS");
+        DerUtils.checkAlg(cert.getSigAlgParams(), "000", expectedMdAlg);
+    }
+}
--- a/test/jdk/sun/security/util/Resources/NewNamesFormat.java	Tue Jan 22 09:24:58 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, 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.
- */
-
-/*
- * @test
- * @bug 6987827
- * @modules java.base/sun.security.util
- *          java.base/sun.security.tools.keytool
- *          jdk.jartool/sun.security.tools.jarsigner
- * @summary security/util/Resources.java needs improvement
- */
-
-
-import java.lang.reflect.Method;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * This test makes sure that the keys in resources files are using the new
- * format and there is no duplication.
- */
-public class NewNamesFormat {
-    public static void main(String[] args) throws Exception {
-        checkRes("sun.security.util.Resources");
-        checkRes("sun.security.util.AuthResources");
-        checkRes("sun.security.tools.jarsigner.Resources");
-        checkRes("sun.security.tools.keytool.Resources");
-    }
-
-    private static void checkRes(String resName) throws Exception {
-        System.out.println("Checking " + resName + "...");
-        Class clazz = Class.forName(resName);
-        Method m = clazz.getMethod("getContents");
-        Object[][] contents = (Object[][])m.invoke(clazz.newInstance());
-        Set<String> keys = new HashSet<String>();
-        for (Object[] pair: contents) {
-            String key = (String)pair[0];
-            if (keys.contains(key)) {
-                System.out.println("Found dup: " + key);
-                throw new Exception();
-            }
-            checkKey(key);
-            keys.add(key);
-        }
-    }
-
-    private static void checkKey(String key) throws Exception {
-        for (char c: key.toCharArray()) {
-            if (Character.isLetter(c) || Character.isDigit(c) ||
-                    c == '{' || c == '}' || c == '.') {
-                // OK
-            } else {
-                System.out.println("Illegal char [" + c + "] in key: " + key);
-                throw new Exception();
-            }
-        }
-    }
-}
--- a/test/jdk/sun/security/util/Resources/NewResourcesNames.java	Tue Jan 22 09:24:58 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, 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.
- */
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.ListResourceBundle;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Prepares new key names for Resources.java.
- * 6987827: security/util/Resources.java needs improvement
- *
- * Run inside jdk/src/share/classes:
- *
- *      java NewResourcesNames $(
- *          for a in $(find com/sun/security sun/security javax/security -type f); do
- *              egrep -q '(ResourcesMgr.getString|rb.getString)' $a && echo $a
- *          done)
- *
- * Before running this tool, run the following two commands to make sure there
- * are only these 2 types of calls into the resources:
- *      for a in `find com/sun/security sun/security javax/security -type f`; do
- *          cat $a | perl -ne 'print if /\bResourcesMgr\b/'; done |
- *          grep -v ResourcesMgr.getString
- *      for a in `find com/sun/security sun/security -type f`; do
- *          cat $a | perl -ne 'print if /\brb\b/'; done |
- *          grep -v rb.getString
- */
-class NewResourcesNames {
-
-    // Max length of normalized names
-    static int MAXLEN = 127;
-
-    static String[] resources = {
-        "sun/security/tools/jarsigner/Resources.java",
-        "sun/security/tools/keytool/Resources.java",
-        "sun/security/tools/policytool/Resources.java",
-        "sun/security/util/Resources.java",
-        "sun/security/util/AuthResources.java",
-    };
-
-    public static void main(String[] args) throws Exception {
-
-        // Load all names inside resources files
-        Map<String,String> allnames = loadResources();
-
-        // Modify the callers. There are two patterns:
-        // 1. ResourcesMgr.getString("
-        //    used by most JAAS codes
-        // 2. rb.getString("
-        //    used by tools
-        Set<String> allfound = new HashSet<String>();
-        for (String arg: args) {
-            allfound.addAll(rewriteFile(arg, "ResourcesMgr.getString(\""));
-            allfound.addAll(rewriteFile(arg, "rb.getString(\""));
-        }
-
-        // Special case 1: KeyTool's enum definition of commands and options
-        allfound.addAll(keyToolEnums());
-
-        // Special case 2: PolicyFile called this 4 times
-        allfound.addAll(rewriteFile("sun/security/provider/PolicyFile.java",
-                "ResourcesMgr.getString(POLICY+\""));
-
-        // During the calls above, you can read sth like:
-        //
-        //      Working on com/sun/security/auth/PolicyParser.java
-        //          GOOD  match is 17
-        //
-        // This means a " exists right after getString(. Sometimes you see
-        //
-        //      Working on sun/security/tools/keytool/Main.java
-        //          BAD!! pmatch != match: 212 != 209
-        //      Working on sun/security/provider/PolicyFile.java
-        //          BAD!! pmatch != match: 14 != 10
-        //
-        // which is mismatch. There are only two such special cases list above.
-        // For KeyTool, there are 3 calls for showing help. For PolicyTool, 3
-        // for name prefixed with POLICY. They are covered in the two special
-        // cases above.
-
-        // Names used but not defined. This is mostly error, except for
-        // special case 2 above. So it's OK to see 3 entries red here
-        if (!allnames.keySet().containsAll(allfound)) {
-            err("FATAL: Undefined names");
-            for (String name: allfound) {
-                if (!allnames.keySet().contains(name)) {
-                    err("   " + name);
-                }
-            }
-        }
-
-        // Names defined but not used. Mostly this is old entries not removed.
-        // When soemone remove a line of code, he dares not remove the entry
-        // in case it's also used somewhere else.
-        if (!allfound.containsAll(allnames.keySet())) {
-            System.err.println("WARNING: Unused names");
-            for (String name: allnames.keySet()) {
-                if (!allfound.contains(name)) {
-                    System.err.println(allnames.get(name));
-                    System.err.println("  " + normalize(name));
-                    System.err.println("  [" + name + "]");
-                }
-            }
-        }
-    }
-
-
-    /**
-     * Loads the three resources files. Saves names into a Map.
-     */
-    private static Map<String,String> loadResources() throws Exception {
-
-        // Name vs Resource
-        Map<String,String> allnames = new HashMap<String,String>();
-
-        for (String f: resources) {
-            String clazz =
-                    f.replace('/', '.').substring(0, f.length()-5);
-
-            Set<String> expected = loadClass(clazz);
-            Set<String> found = rewriteFile(f, "{\"");
-
-            // This is to check that word parsing is identical to Java thinks
-            if (!expected.equals(found)) {
-                throw new Exception("Expected and found do not match");
-            }
-
-            for (String name: found) {
-                allnames.put(name, f);
-            }
-        }
-        return allnames;
-    }
-
-    /**
-     * Special case treat for enums description in KeyTool
-     */
-    private static Set<String> keyToolEnums() throws Exception {
-
-        Set<String> names = new HashSet<String>();
-
-        String file = "sun/security/tools/keytool/Main.java";
-        System.err.println("Working on " + file);
-        File origFile = new File(file);
-        File tmpFile = new File(file + ".tmp");
-        origFile.renameTo(tmpFile);
-        tmpFile.deleteOnExit();
-
-        BufferedReader br = new BufferedReader(
-                new InputStreamReader(new FileInputStream(tmpFile)));
-        PrintWriter out = new PrintWriter(new FileOutputStream(origFile));
-
-        int stage = 0;  // 1. commands, 2. options, 3. finished
-        int match = 0;
-
-        while (true) {
-            String s = br.readLine();
-            if (s == null) {
-                break;
-            }
-            if (s.indexOf("enum Command") >= 0) stage = 1;
-            else if (s.indexOf("enum Option") >= 0) stage = 2;
-            else if (s.indexOf("private static final String JKS") >= 0) stage = 3;
-
-            if (stage == 1 || stage == 2) {
-                if (s.indexOf("(\"") >= 0) {
-                    match++;
-                    int p1, p2;
-                    if (stage == 1) {
-                        p1 = s.indexOf("\"");
-                        p2 = s.indexOf("\"", p1+1);
-                    } else {
-                        p2 = s.lastIndexOf("\"");
-                        p1 = s.lastIndexOf("\"", p2-1);
-                    }
-                    String name = s.substring(p1+1, p2);
-                    names.add(name);
-                    out.println(s.substring(0, p1+1) +
-                            normalize(name) +
-                            s.substring(p2));
-                } else {
-                    out.println(s);
-                }
-            } else {
-                out.println(s);
-            }
-        }
-        br.close();
-        out.close();
-        System.err.println("    GOOD  match is " + match);
-        return names;
-    }
-
-    /**
-     * Loads a resources using JRE and returns the names
-     */
-    private static Set<String> loadClass(String clazz) throws Exception {
-        ListResourceBundle lrb =
-                (ListResourceBundle)Class.forName(clazz).newInstance();
-        Set<String> keys = lrb.keySet();
-        Map<String,String> newold = new HashMap<String,String>();
-        boolean dup = false;
-        // Check if normalize() creates dup entries. This is crucial.
-        for (String k: keys) {
-            String key = normalize(k);
-            if (newold.containsKey(key)) {
-                err("Dup found for " + key + ":");
-                err("["+newold.get(key)+"]");
-                err("["+k+"]");
-                dup = true;
-            }
-            newold.put(key, k);
-        }
-        if (dup) throw new Exception();
-        return keys;
-    }
-
-    /**
-     * Rewrites a file using a pattern. The name string should be right after
-     * the pattern. Note: pattern ignores whitespaces. Returns names found.
-     */
-    private static Set<String> rewriteFile(String file, String pattern)
-            throws Exception {
-
-        System.err.println("Working on " + file);
-        Set<String> names = new HashSet<String>();
-
-        int plen = pattern.length();
-        int match = 0;
-
-        // The bare XXX.getString is also matched. Sometimes getString is
-        // called but does not use literal strings. This is harder to solve.
-
-        int pmatch = 0;
-        int pheadlen = plen - 2;
-        String phead = pattern.substring(0, plen-2);
-
-        // The non-whitespace chars read since, used to check for pattern
-        StringBuilder history = new StringBuilder();
-        int hlen = 0;
-
-        File origFile = new File(file);
-        File tmpFile = new File(file + ".tmp");
-        origFile.renameTo(tmpFile);
-        tmpFile.deleteOnExit();
-
-        FileInputStream fis = new FileInputStream(tmpFile);
-        FileOutputStream fos = new FileOutputStream(origFile);
-
-        while (true) {
-            int ch = fis.read();
-            if (ch < 0) break;
-            if (!Character.isWhitespace(ch)) {
-                history.append((char)ch);
-                hlen++;
-                if (pheadlen > 0 && hlen >= pheadlen &&
-                        history.substring(hlen-pheadlen, hlen).equals(phead)) {
-                    pmatch++;
-                }
-            }
-
-            if (hlen >= plen &&
-                    history.substring(hlen-plen, hlen).equals(pattern)) {
-                match++;
-                history = new StringBuilder();
-                hlen = 0;
-
-                fos.write(ch);
-
-                // Save a name
-                StringBuilder sb = new StringBuilder();
-                // Save things after the second ". Maybe it's an end, maybe
-                // it's just literal string concatenation.
-                StringBuilder tail = new StringBuilder();
-
-                boolean in = true;  // inside name string
-                while (true) {
-                    int n = fis.read();
-                    if (in) {
-                        if (n == '\\') {
-                            int second = fis.read();
-                            switch (second) {
-                                case 'n': sb.append('\n'); break;
-                                case 'r': sb.append('\r'); break;
-                                case 't': sb.append('\t'); break;
-                                case '"': sb.append('"'); break;
-                                default: throw new Exception(String.format(
-                                        "I don't know this escape: %s%c",
-                                        sb.toString(), second));
-                            }
-                        } else if (n == '"') {
-                            in = false;
-                            // Maybe string concat? say bytes until clear
-                            tail = new StringBuilder();
-                            tail.append('"');
-                        } else {
-                            sb.append((char)n);
-                        }
-                    } else {
-                        tail.append((char)n);
-                        if (n == '"') { // string concat, in again
-                            in = true;
-                        } else if (n == ',' || n == ')') {  // real end
-                            break;
-                        } else if (Character.isWhitespace(n) || n == '+') {
-                            // string concat
-                        } else {
-                            throw new Exception("Not a correct concat");
-                        }
-                    }
-                }
-                String s = sb.toString();
-                names.add(s);
-                fos.write(normalize(s).getBytes());
-                fos.write(tail.toString().getBytes());
-            } else {
-                fos.write(ch);
-            }
-        }
-
-        // Check pheadlen > 0. Don't want to mess with rewrite for resources
-        if (pheadlen > 0 && pmatch != match) {
-            err("    BAD!! pmatch != match: " + pmatch + " != " + match);
-        } else {
-            System.err.println("    GOOD  match is " + match);
-        }
-
-        fis.close();
-        fos.close();
-        return names;
-    }
-
-    /**
-     * Normalize a string. Rules:
-     *
-     * 1. If all spacebar return "nSPACE", n is count
-     * 2. If consisting at least one alphanumeric:
-     *   a. All alphanumeric remain
-     *   b. All others in a row goes to a single ".", even if at head or tail
-     * 3. Otherwise:
-     *   a. "****\n\n" to "STARNN", special case
-     *   b. the English name if first char in *,.\n():'"
-     *
-     * Current observations show there's no dup, Hurray! Otherwise, add more
-     * special cases.
-     */
-    private static String normalize(String s) throws Exception {
-        boolean needDot = false;
-
-        // All spacebar case
-        int n = 0;
-        for (char c: s.toCharArray()) {
-            if (c == ' ') n++;
-            else n = -10000;
-        }
-        if (n == 1) return "SPACE";
-        else if (n > 1) return "" + n + "SPACE";
-
-        StringBuilder sb = new StringBuilder();
-        int dotpos = -1;
-        for (int i=0; i<s.length(); i++) {
-            char c = s.charAt(i);
-            if (Character.isLetter(c) || Character.isDigit(c) ||
-                    c == '{' || c == '}') {
-                if (needDot) {
-                    // Rememeber the last dot, we want shorter form nice
-                    if (sb.length() <= MAXLEN) dotpos = sb.length();
-                    // "." only added when an alphanumeric is seen. This makes
-                    // sure sb is empty when there's no alphanumerics at all
-                    sb.append(".");
-                }
-                sb.append(c);
-                needDot = false;
-            } else {
-                needDot = true;
-            }
-        }
-
-        // No alphanemeric?
-        if (sb.length() == 0) {
-            if (s.contains("*") && s.contains("\n")) {
-                return "STARNN";
-            }
-            for (char c: s.toCharArray()) {
-                switch (c) {
-                    case '*': return "STAR";
-                    case ',': return "COMMA";
-                    case '.': return "PERIOD";
-                    case '\n': return "NEWLINE";
-                    case '(': return "LPARAM";
-                    case ')': return "RPARAM";
-                    case ':': return "COLON";
-                    case '\'': case '"': return "QUOTE";
-                }
-            }
-            throw new Exception("Unnamed char: [" + s + "]");
-        }
-
-        // tail "." only added when there are alphanumerics
-        if (needDot) sb.append('.');
-        String res = sb.toString();
-        if (res.length() > MAXLEN) {
-            if (dotpos < 0) throw new Exception("No dot all over? " + s);
-            return res.substring(0, dotpos);
-        } else {
-            return res;
-        }
-    }
-
-    private static void err(String string) {
-        System.out.println("\u001b[1;37;41m" + string + "\u001b[m");
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/sun/security/util/Resources/Usages.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8215937
+ * @modules java.base/sun.security.util
+ *          java.base/sun.security.tools.keytool
+ *          jdk.jartool/sun.security.tools.jarsigner
+ * @summary Check usages of security-related Resources files
+ */
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.ListResourceBundle;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * This test checks if the strings in various Resources files are used
+ * properly. Each string must be used somewhere, and each getString() call
+ * must use an existing string.
+ * <p>
+ * For each Resources file, the test maintains a list of where the strings are
+ * used (a file or a directory) and how they are used (one or more patterns).
+ * <p>
+ * If this test fails, there can be several reasons:
+ * <p>
+ * 1. If a string is not found, it has not been added to a Resources file.
+ * <p>
+ * 2. If a string is not used, maybe the call was removed earlier but the
+ * Resources file was not updated. Or, the file is not listed or the
+ * pattern is not correct and the usage is not found.
+ * <p>
+ * Because of #2 above, this test might not be complete. If a getString()
+ * is called but either the file and calling pattern is not listed here,
+ * we cannot guarantee it exists in a Resources file.
+ */
+public class Usages {
+
+    // src folder
+    static Path SRC = Path.of(
+            System.getProperty("test.src"), "../../../../../../src/")
+            .normalize();
+
+    // rb.getString(). Used by keytool, jarsigner, and KeyStoreUtil.
+    static Pattern RB_GETSTRING = Pattern.compile(
+            "(?m)rb[ \\n]*\\.getString[ \\n]*\\([ \\n]*\"(.*?)\"\\)");
+
+    // Command and Option enums in keytool
+    static Pattern KT_ENUM = Pattern.compile("\\n +[A-Z]+\\(.*\"(.*)\"");
+
+    // ResourceMgr.getAuthResourceString
+    static Pattern GETAUTHSTRING = Pattern.compile(
+            "getAuthResourceString[ \\n]*\\([ \\n]*\"(.*?)\"\\)");
+
+    // ResourceMgr.getString
+    static Pattern MGR_GETSTRING = Pattern.compile(
+            "ResourcesMgr\\.getString[ \\n]*\\([ \\n]*\"(.*?)\"\\)");
+
+    // LocalizedMessage.getNonlocalized("...")
+    static Pattern LOC_GETNONLOC = Pattern.compile(
+            "LocalizedMessage\\.getNonlocalized[ \\n]*\\([ \\n]*\"(.*?)\"");
+
+    // LocalizedMessage.getNonlocalized(POLICY + "...")
+    static Pattern LOC_GETNONLOC_POLICY = Pattern.compile(
+            "LocalizedMessage\\.getNonlocalized[ \\n]*\\([ \\n]*(POLICY \\+ \".*?)\"");
+
+    // new LocalizedMessage("...")
+    static Pattern NEW_LOC = Pattern.compile(
+            "new LocalizedMessage[ \\n]*\\([ \\n]*\"(.*?)\"");
+
+    // ioException in ConfigFile.java
+    static Pattern IOEXCEPTION = Pattern.compile(
+            "ioException[ \\n]*\\([ \\n]*\"(.*?)\",");
+
+    // For each Resources file, where and how the strings are used.
+    static Map<ListResourceBundle, List<Pair>> MAP = Map.of(
+            new sun.security.tools.keytool.Resources(), List.of(
+                    new Pair("java.base/share/classes/sun/security/tools/keytool/Main.java",
+                            List.of(RB_GETSTRING, KT_ENUM)),
+                    new Pair("java.base/share/classes/sun/security/tools/KeyStoreUtil.java",
+                            List.of(RB_GETSTRING))),
+            new sun.security.util.AuthResources(), List.of(
+                    new Pair("java.base/share/classes/sun/security/provider/ConfigFile.java",
+                            List.of(GETAUTHSTRING, IOEXCEPTION)),
+                    new Pair("jdk.security.auth/share/classes/com/sun/security/auth/",
+                            List.of(GETAUTHSTRING))),
+            new sun.security.tools.jarsigner.Resources(), List.of(
+                    new Pair("jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java",
+                            List.of(RB_GETSTRING)),
+                    new Pair("java.base/share/classes/sun/security/tools/KeyStoreUtil.java",
+                            List.of(RB_GETSTRING))),
+            new sun.security.util.Resources(), List.of(
+                    new Pair("jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java",
+                            List.of(MGR_GETSTRING)),
+                    new Pair("java.base/share/classes/sun/security/provider/PolicyParser.java",
+                            List.of(LOC_GETNONLOC, NEW_LOC)),
+                    new Pair("java.base/share/classes/sun/security/provider/PolicyFile.java",
+                            List.of(MGR_GETSTRING, LOC_GETNONLOC, LOC_GETNONLOC_POLICY)),
+                    new Pair("java.base/share/classes/javax/security/auth/",
+                            List.of(MGR_GETSTRING)))
+    );
+
+    public static void main(String[] args) {
+        if (Files.exists(SRC)) {
+            MAP.forEach(Usages::check);
+        } else {
+            System.out.println("No src directory. Test skipped.");
+        }
+    }
+
+    private static void check(ListResourceBundle res, List<Pair> fnps) {
+        try {
+            System.out.println(">>>> Checking " + res.getClass().getName());
+
+            List<String> keys = Collections.list(res.getKeys());
+
+            // Initialize unused to be all keys. Each time a key is used it
+            // is removed. We cannot reuse keys because a key might be used
+            // multiple times. Make it a Set so we can check duplicates.
+            Set<String> unused = new HashSet<>(keys);
+
+            keys.forEach(Usages::checkKeyFormat);
+            if (keys.size() != unused.size()) {
+                throw new RuntimeException("Duplicates found");
+            }
+
+            for (Pair fnp : fnps) {
+                Files.find(SRC.resolve(fnp.path), Integer.MAX_VALUE,
+                        (p, attr) -> p.toString().endsWith(".java"))
+                        .forEach(pa -> {
+                            try {
+                                String content = Files.readString(pa);
+                                for (Pattern p : fnp.patterns) {
+                                    Matcher m = p.matcher(content);
+                                    while (m.find()) {
+                                        String arg = m.group(1);
+                                        // Special case in PolicyFile.java:
+                                        if (arg.startsWith("POLICY + \"")) {
+                                            arg = "java.security.policy"
+                                                    + arg.substring(10);
+                                        }
+                                        if (!keys.contains(arg)) {
+                                            throw new RuntimeException(
+                                                    "Not found: " + arg);
+                                        }
+                                        unused.remove(arg);
+                                    }
+                                }
+                            } catch (IOException e) {
+                                throw new UncheckedIOException(e);
+                            }
+                        });
+            }
+            if (!unused.isEmpty()) {
+                throw new RuntimeException("Unused keys: " + unused);
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static void checkKeyFormat(String key) {
+        for (char c : key.toCharArray()) {
+            if (Character.isLetter(c) || Character.isDigit(c) ||
+                    c == '{' || c == '}' || c == '.') {
+                // OK
+            } else {
+                throw new RuntimeException(
+                        "Illegal char [" + c + "] in key: " + key);
+            }
+        }
+    }
+
+    static class Pair {
+
+        public final String path;
+        public final List<Pattern> patterns;
+
+        public Pair(String path, List<Pattern> patterns) {
+            this.path = path;
+            this.patterns = patterns;
+        }
+    }
+}
--- a/test/jdk/tools/launcher/ExecutionEnvironment.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/tools/launcher/ExecutionEnvironment.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -25,6 +25,7 @@
  * @test
  * @bug 4780570 4731671 6354700 6367077 6670965 4882974
  * @summary Checks for LD_LIBRARY_PATH and execution  on *nixes
+ * @library /test/lib
  * @modules jdk.compiler
  *          jdk.zipfs
  * @compile -XDignore.symbol.file ExecutionEnvironment.java
@@ -54,6 +55,9 @@
  *         launcher may add as implementation details.
  *      b. add a pldd for solaris to ensure only one libjvm.so is linked
  */
+
+import jdk.test.lib.Platform;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.ArrayList;
@@ -62,11 +66,7 @@
 import java.util.Map;
 
 public class ExecutionEnvironment extends TestHelper {
-    static final String LD_LIBRARY_PATH    = TestHelper.isMacOSX
-            ? "DYLD_LIBRARY_PATH"
-            : TestHelper.isAIX
-                    ? "LIBPATH"
-                    : "LD_LIBRARY_PATH";
+    static final String LD_LIBRARY_PATH    = Platform.sharedLibraryPathVariableName();
     static final String LD_LIBRARY_PATH_32 = LD_LIBRARY_PATH + "_32";
     static final String LD_LIBRARY_PATH_64 = LD_LIBRARY_PATH + "_64";
 
--- a/test/jdk/tools/launcher/JliLaunchTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/tools/launcher/JliLaunchTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -35,6 +35,7 @@
 import jdk.test.lib.Platform;
 import jdk.test.lib.process.OutputAnalyzer;
 
+import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -47,15 +48,11 @@
         System.out.println("Launcher = " + launcher + (Files.exists(launcher) ? " (exists)" : " (not exists)"));
         ProcessBuilder pb = new ProcessBuilder(launcher.toString(), "--version");
         Map<String, String> env = pb.environment();
-        if (Platform.isWindows()) {
-            // The DLL should be in JDK/bin
-            String libdir = Paths.get(Utils.TEST_JDK).resolve("bin").toAbsolutePath().toString();
-            env.compute("PATH", (k, v) -> (v == null) ? libdir : libdir + ";" + v);
-        } else {
-            String libdir = Paths.get(Utils.TEST_JDK).resolve("lib").toAbsolutePath().toString();
-            String LD_LIBRARY_PATH = Platform.isOSX() ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH";
-            env.compute(LD_LIBRARY_PATH, (k, v) -> (v == null) ? libdir : libdir + ":" + v);
-        }
+        // On windows, the DLL should be in JDK/bin, else in JDK/lib.
+        String libdir = Paths.get(Utils.TEST_JDK).resolve(Platform.isWindows() ? "bin" : "lib")
+            .toAbsolutePath().toString();
+        String pathEnvVar = Platform.sharedLibraryPathVariableName();
+        env.compute(pathEnvVar, (k, v) -> (v == null) ? libdir : libdir + File.pathSeparator + v);
 
         OutputAnalyzer outputf = new OutputAnalyzer(pb.start());
         outputf.shouldHaveExitValue(0);
--- a/test/jdk/tools/launcher/Test7029048.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/tools/launcher/Test7029048.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -21,19 +21,16 @@
  * questions.
  */
 
-/*
+/**
  * @test
- * @bug 7029048
- * @summary Checks for LD_LIBRARY_PATH on *nixes
+ * @bug 7029048 8217340
+ * @summary Ensure that the launcher defends against user settings of the
+ *          LD_LIBRARY_PATH environment variable on Unixes
+ * @library /test/lib
  * @compile -XDignore.symbol.file ExecutionEnvironment.java Test7029048.java
  * @run main Test7029048
  */
 
-/*
- * 7029048: test for LD_LIBRARY_PATH set to different paths which may or
- * may not contain a libjvm.so, but we test to ensure that the launcher
- * behaves correctly in all cases.
- */
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -67,7 +64,6 @@
 
     private static final Map<String, String> env = new HashMap<>();
 
-
     static String getValue(String name, List<String> in) {
         for (String x : in) {
             String[] s = x.split("=");
@@ -99,37 +95,34 @@
         * print a "null" string.
         */
         if (envValue == null) {
-            System.out.println(tr);
             throw new RuntimeException("NPE, likely a program crash ??");
         }
-        String values[] = envValue.split(File.pathSeparator);
-        if (values.length == nLLPComponents) {
-            System.out.println(caseID + " :OK");
+        int len = (envValue.equals("null")
+                   ? 0 : envValue.split(File.pathSeparator).length);
+        if (len == nLLPComponents) {
+            System.out.println(caseID + ": OK");
             passes++;
         } else {
             System.out.println("FAIL: test7029048, " + caseID);
             System.out.println(" expected " + nLLPComponents
-                    + " but got " + values.length);
+                               + " but got " + len);
             System.out.println(envValue);
-            System.out.println(tr);
             errors++;
         }
     }
 
     /*
-     * A crucial piece, specifies what we should expect, given the conditions.
-     * That is for a given enum type, the value indicates how many absolute
-     * environment variables that can be expected. This value is used to base
-     * the actual expected values by adding the set environment variable usually
-     * it is 1, but it could be more if the test wishes to set more paths in
-     * the future.
+     * Describe the cases that we test.  Each case sets the environment
+     * variable LD_LIBRARY_PATH to a different value.  The value associated
+     * with a case is the number of path elements that we expect the launcher
+     * to add to that variable.
      */
-    private static enum LLP_VAR {
-        LLP_SET_NON_EXISTENT_PATH(0),   // env set, but the path does not exist
-        LLP_SET_EMPTY_PATH(0),          // env set, with a path but no libjvm.so
-        LLP_SET_WITH_JVM(3);            // env set, with a libjvm.so
+    private static enum TestCase {
+        NO_DIR(0),                      // Directory does not exist
+        NO_LIBJVM(0),                   // Directory exists, but no libjvm.so
+        LIBJVM(3);                      // Directory exists, with a libjvm.so
         private final int value;
-        LLP_VAR(int i) {
+        TestCase(int i) {
             this.value = i;
         }
     }
@@ -139,16 +132,16 @@
      */
     static void test7029048() throws IOException {
         String desc = null;
-        for (LLP_VAR v : LLP_VAR.values()) {
+        for (TestCase v : TestCase.values()) {
             switch (v) {
-                case LLP_SET_WITH_JVM:
+                case LIBJVM:
                     // copy the files into the directory structures
                     copyFile(srcLibjvmSo, dstServerLibjvm);
                     // does not matter if it is client or a server
                     copyFile(srcLibjvmSo, dstClientLibjvm);
                     desc = "LD_LIBRARY_PATH should be set";
                     break;
-                case LLP_SET_EMPTY_PATH:
+                case NO_LIBJVM:
                     if (!dstClientDir.exists()) {
                         Files.createDirectories(dstClientDir.toPath());
                     } else {
@@ -161,13 +154,13 @@
                         Files.deleteIfExists(dstServerLibjvm.toPath());
                     }
 
-                    desc = "LD_LIBRARY_PATH should not be set";
+                    desc = "LD_LIBRARY_PATH should not be set (no libjvm.so)";
                     break;
-                case LLP_SET_NON_EXISTENT_PATH:
+                case NO_DIR:
                     if (dstLibDir.exists()) {
                         recursiveDelete(dstLibDir);
                     }
-                    desc = "LD_LIBRARY_PATH should not be set";
+                    desc = "LD_LIBRARY_PATH should not be set (no directory)";
                     break;
                 default:
                     throw new RuntimeException("unknown case");
@@ -178,14 +171,18 @@
              */
             env.clear();
             env.put(LD_LIBRARY_PATH, dstServerDir.getAbsolutePath());
-            run(env, v.value + 1, "Case 1: " + desc);
+            run(env,
+                v.value + 1,            // Add one to account for our setting
+                "Case 1: " + desc);
 
             /*
              * Case 2: repeat with client path
              */
             env.clear();
             env.put(LD_LIBRARY_PATH, dstClientDir.getAbsolutePath());
-            run(env, v.value + 1, "Case 2: " + desc);
+            run(env,
+                v.value + 1,            // Add one to account for our setting
+                "Case 2: " + desc);
 
             if (isSolaris) {
                 /*
@@ -194,7 +191,10 @@
                  */
                 env.clear();
                 env.put(LD_LIBRARY_PATH_64, dstServerDir.getAbsolutePath());
-                run(env, v.value + 1, "Case 3: " + desc);
+                run(env,
+                    v.value,            // Do not add one, since we didn't set
+                                        // LD_LIBRARY_PATH here
+                    "Case 3: " + desc);
             }
         }
         return;
--- a/test/jdk/vm/JniInvocationTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/jdk/vm/JniInvocationTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -32,6 +32,7 @@
  */
 
 import java.util.Map;
+import jdk.test.lib.Platform;
 import jdk.test.lib.Utils;
 import jdk.test.lib.process.OutputAnalyzer;
 
@@ -47,7 +48,7 @@
         ProcessBuilder pb = new ProcessBuilder(launcher.toString());
         Map<String, String> env = pb.environment();
         String libdir = Paths.get(Utils.TEST_JDK).resolve("lib").toAbsolutePath().toString();
-        env.compute("DYLD_LIBRARY_PATH", (k, v) -> (k == null) ? libdir : v + ":" + libdir);
+        env.compute(Platform.sharedLibraryPathVariableName(), (k, v) -> (k == null) ? libdir : v + ":" + libdir);
         OutputAnalyzer outputf = new OutputAnalyzer(pb.start());
         outputf.shouldHaveExitValue(0);
     }
--- a/test/langtools/jdk/javadoc/doclet/testBreakIterator/TestBreakIterator.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testBreakIterator/TestBreakIterator.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -65,9 +65,8 @@
                 "<div class=\"block\">with a block tag</div>");
 
         checkOutput("pkg/BreakIteratorTest.html", true,
-                "<div class=\"block\">Return methods to the specified\n" +
-                " <a href=\"../com/sun/javadoc/package-summary.html#included\">access\n" +
-                " modifier option</a>.</div>");
+                "<div class=\"block\">with an anchor for the\n" +
+                " <a href=\"../index-all.html\">top level index</a>.</div>");
 
         checkOutput("pkg/BreakIteratorTest.html", true,
                 "<div class=\"block\">A constant indicating that the keyLocation is indeterminate\n" +
--- a/test/langtools/jdk/javadoc/doclet/testBreakIterator/pkg/BreakIteratorTest.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testBreakIterator/pkg/BreakIteratorTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -43,9 +43,8 @@
     public void baz(){}
 
     /**
-     * Return methods to the specified
-     * <a href="{@docRoot}/com/sun/javadoc/package-summary.html#included">access
-     * modifier option</a>.  Second line.
+     * with an anchor for the
+     * <a href="{@docRoot}/index-all.html">top level index</a>.  Second line.
      */
     public void foobar(){}
 
--- a/test/langtools/jdk/javadoc/doclet/testDocRootInlineTag/TestDocRootInlineTag.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testDocRootInlineTag/TestDocRootInlineTag.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -58,7 +58,7 @@
         checkOutput("TestDocRootTag.html", true,
                 "<a href=\"" + uri + "/java/io/File.html?is-external=true\" "
                 + "title=\"class or interface in java.io\" class=\"externalLink\"><code>File</code></a>",
-                "<a href=\"./glossary.html\">glossary</a>",
+                "<a href=\"./index-all.html\">index</a>",
                 "<a href=\"" + uri + "/java/io/File.html?is-external=true\" "
                 + "title=\"class or interface in java.io\" class=\"externalLink\"><code>Second File Link</code></a>",
                 "The value of @docRoot is \"./\"");
--- a/test/langtools/jdk/javadoc/doclet/testDocRootInlineTag/TestDocRootTag.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testDocRootInlineTag/TestDocRootTag.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -23,7 +23,7 @@
 
 /**
  * Here is the use of link: {@link java.io.File File}
- * Here is the use of docRoot: <a href="{@docRoot}/glossary.html">glossary</a>.
+ * Here is the use of docRoot: <a href="{@docRoot}/index-all.html">index</a>.
  * Here is the use of link: {@link java.io.File Second File Link}
  */
 public class TestDocRootTag {}
--- a/test/langtools/jdk/javadoc/doclet/testDocRootLink/TestDocRootLink.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testDocRootLink/TestDocRootLink.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -37,6 +37,14 @@
 
     public static void main(String... args) throws Exception {
         TestDocRootLink tester = new TestDocRootLink();
+
+        // The test files intentionally contain examples of links that should
+        // or should not be affected by the -Xdocrootparent option, and the
+        // results are checked explicitly; so, disable the automatic link
+        // checker to prevent spurious "missing files" errors from some of
+        // these links.
+        tester.setAutomaticCheckLinks(false);
+
         tester.runTests();
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLandmarkRegions.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,257 @@
+/*
+ * Copyright (c) 2018, 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.
+ */
+
+/*
+ * @test
+ * @bug 8210047 8199892
+ * @summary some pages contains content outside of landmark region
+ * @library /tools/lib ../../lib
+ * @modules
+ *      jdk.javadoc/jdk.javadoc.internal.tool
+ *      jdk.compiler/com.sun.tools.javac.api
+ *      jdk.compiler/com.sun.tools.javac.main
+ * @build javadoc.tester.*
+ * @run main TestHtmlLandmarkRegions
+ */
+
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+
+import builder.ClassBuilder;
+import toolbox.ModuleBuilder;
+import toolbox.ToolBox;
+
+import javadoc.tester.JavadocTester;
+
+public class TestHtmlLandmarkRegions extends JavadocTester {
+
+    final ToolBox tb;
+
+    public static void main(String... args) throws Exception {
+        TestHtmlLandmarkRegions tester = new TestHtmlLandmarkRegions();
+        tester.runTests(m -> new Object[]{Paths.get(m.getName())});
+    }
+
+    TestHtmlLandmarkRegions() {
+        tb = new ToolBox();
+        setAutomaticCheckLinks(false); // @ignore 8217013
+    }
+
+    @Test
+    public void testModules(Path base) throws Exception {
+        Path srcDir = base.resolve("src");
+        createModules(srcDir);
+
+        Path outDir = base.resolve("out");
+        javadoc("-d", outDir.toString(),
+                "-doctitle", "Document Title",
+                "-header", "Test Header",
+                "--frames",
+                "--module-source-path", srcDir.toString(),
+                "--module", "m1,m2");
+
+        checkExit(Exit.OK);
+
+        checkOrder("module-overview-frame.html",
+                "<header role=\"banner\">\n"
+                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<nav role=\"navigation\" class=\"indexNav\">",
+                "<main role=\"main\">\n"
+                + "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Modules\">Modules</h2>\n"
+                + "<ul title=\"Modules\">",
+                "<footer role=\"contentinfo\">");
+
+        checkOrder("m1/module-frame.html",
+                "<header role=\"banner\">\n"
+                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<nav role=\"navigation\" class=\"indexNav\">",
+                "<main role=\"main\">\n"
+                + "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a>&nbsp;Packages</h2>",
+                "<footer role=\"contentinfo\">");
+
+        checkOrder("overview-summary.html",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">");
+    }
+
+    @Test
+    public void testModulesHtml4(Path base) throws Exception {
+        Path srcDir = base.resolve("src");
+        createModules(srcDir);
+
+        Path outDir = base.resolve("out2");
+        javadoc("-d", outDir.toString(),
+                "-doctitle", "Document Title",
+                "-header", "Test Header",
+                "--frames",
+                "--module-source-path", srcDir.toString(),
+                "--module", "m1,m2",
+                "-html4");
+
+        checkExit(Exit.OK);
+
+        checkOrder("module-overview-frame.html",
+                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<div class=\"indexNav\">",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Modules\">Modules</h2>\n"
+                + "<ul title=\"Modules\">");
+
+        checkOrder("m1/module-frame.html",
+                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<div class=\"indexNav\">",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a>&nbsp;Packages</h2>");
+
+        checkOrder("overview-summary.html",
+                "<div class=\"fixedNav\">",
+                "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>",
+                "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
+    }
+
+    @Test
+    public void testPackages(Path base) throws Exception {
+        Path srcDir = base.resolve("src");
+        createPackages(srcDir);
+
+        Path outDir = base.resolve("out3");
+        javadoc("-d", outDir.toString(),
+                "-doctitle", "Document Title",
+                "-header", "Test Header",
+                "--frames",
+                "-sourcepath", srcDir.toString(),
+                "pkg1", "pkg2");
+
+        checkExit(Exit.OK);
+
+        checkOrder("overview-summary.html",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">",
+                "<main role=\"main\">\n"
+                + "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>",
+                "<footer role=\"contentinfo\">\n" +
+                        "<nav role=\"navigation\">");
+
+        checkOrder("overview-frame.html",
+                "<header role=\"banner\">\n"
+                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<nav role=\"navigation\" class=\"indexNav\">",
+                "<main role=\"main\">\n"
+                + "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>",
+                "<footer role=\"contentinfo\">");
+    }
+
+    @Test
+    public void testPackagesHtml4(Path base) throws Exception {
+        Path srcDir = base.resolve("src");
+        createPackages(srcDir);
+
+        Path outDir = base.resolve("out4");
+        javadoc("-d", outDir.toString(),
+                "-doctitle", "Document Title",
+                "-header", "Test Header",
+                "--frames",
+                "-sourcepath", srcDir.toString(),
+                "pkg1", "pkg2",
+                "-html4");
+
+        checkExit(Exit.OK);
+
+        checkOrder("overview-summary.html",
+                "<div class=\"fixedNav\">",
+                "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>",
+                "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
+
+        checkOrder("overview-frame.html",
+                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
+                + "<div class=\"indexNav\">",
+                "<div class=\"indexContainer\">\n"
+                + "<h2 title=\"Packages\">Packages</h2>"
+        );
+    }
+
+    @Test
+    public void testDocFiles(Path base) throws Exception {
+        Path srcDir = base.resolve("src");
+        createPackages(srcDir);
+        Path docFiles = Files.createDirectory(srcDir.resolve("pkg1").resolve("doc-files"));
+        Files.write(docFiles.resolve("s.html"), List.of(
+                "<html>\n"
+                + "  <head>\n"
+                + "    <title>\"Hello World\"</title>\n"
+                + "  </head>\n"
+                + "  <body>\n"
+                + "     A sample doc file.\n"
+                + "  </body>\n"
+                + "</html>"));
+
+        Path outDir = base.resolve("out5");
+        javadoc("-d", outDir.toString(),
+                "-sourcepath", srcDir.toString(),
+                "pkg1", "pkg2");
+
+        checkExit(Exit.OK);
+
+        checkOrder("pkg1/doc-files/s.html",
+                "<header role=\"banner\">\n"
+                + "<nav role=\"navigation\">\n",
+                "<main role=\"main\">A sample doc file",
+                "<footer role=\"contentinfo\">\n"
+                + "<nav role=\"navigation\">"
+                );
+    }
+
+    void createModules(Path srcDir) throws Exception {
+        new ModuleBuilder(tb, "m1")
+                .classes("package p1; public class a{}")
+                .classes("package p2; public class b{}")
+                .write(srcDir);
+        new ModuleBuilder(tb, "m2")
+                .classes("package p3; public class c{}")
+                .classes("package p4; public class d{}")
+                .write(srcDir);
+    }
+
+    void createPackages(Path srcDir) throws Exception {
+        new ClassBuilder(tb, "pkg1.A")
+                .setModifiers("public", "class")
+                .write(srcDir);
+        new ClassBuilder(tb, "pkg2.B")
+                .setModifiers("public", "class")
+                .write(srcDir);
+    }
+}
--- a/test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java	Tue Jan 22 09:24:58 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 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.
- */
-
-/*
- * @test
- * @bug 8210047
- * @summary some pages contains content outside of landmark region
- * @library /tools/lib ../../lib
- * @modules
- *      jdk.javadoc/jdk.javadoc.internal.tool
- *      jdk.compiler/com.sun.tools.javac.api
- *      jdk.compiler/com.sun.tools.javac.main
- * @build javadoc.tester.*
- * @run main TestHtmlLankmarkRegions
- */
-
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import builder.ClassBuilder;
-import toolbox.ModuleBuilder;
-import toolbox.ToolBox;
-
-import javadoc.tester.JavadocTester;
-
-public class TestHtmlLankmarkRegions extends JavadocTester {
-
-    final ToolBox tb;
-
-    public static void main(String... args) throws Exception {
-        TestHtmlLankmarkRegions tester = new TestHtmlLankmarkRegions();
-        tester.runTests(m -> new Object[]{Paths.get(m.getName())});
-    }
-
-    TestHtmlLankmarkRegions() {
-        tb = new ToolBox();
-    }
-
-    @Test
-    public void testModules(Path base) throws Exception {
-        Path srcDir = base.resolve("src");
-        createModules(srcDir);
-
-        Path outDir = base.resolve("out");
-        javadoc("-d", outDir.toString(),
-                "-doctitle", "Document Title",
-                "-header", "Test Header",
-                "--frames",
-                "--module-source-path", srcDir.toString(),
-                "--module", "m1,m2");
-
-        checkExit(Exit.OK);
-
-        checkOrder("module-overview-frame.html",
-                "<header role=\"banner\">\n"
-                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<nav role=\"navigation\" class=\"indexNav\">",
-                "<main role=\"main\">\n"
-                + "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"Modules\">Modules</h2>\n"
-                + "<ul title=\"Modules\">",
-                "<footer role=\"contentinfo\">");
-
-        checkOrder("m1/module-frame.html",
-                "<header role=\"banner\">\n"
-                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<nav role=\"navigation\" class=\"indexNav\">",
-                "<main role=\"main\">\n"
-                + "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a>&nbsp;Packages</h2>",
-                "<footer role=\"contentinfo\">");
-
-        checkOrder("overview-summary.html",
-                "<header role=\"banner\">\n"
-                + "<nav role=\"navigation\">",
-                "<main role=\"main\">\n"
-                + "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>",
-                "<footer role=\"contentinfo\">\n"
-                + "<nav role=\"navigation\">");
-    }
-
-    @Test
-    public void testModulesHtml4(Path base) throws Exception {
-        Path srcDir = base.resolve("src");
-        createModules(srcDir);
-
-        Path outDir = base.resolve("out2");
-        javadoc("-d", outDir.toString(),
-                "-doctitle", "Document Title",
-                "-header", "Test Header",
-                "--frames",
-                "--module-source-path", srcDir.toString(),
-                "--module", "m1,m2",
-                "-html4");
-
-        checkExit(Exit.OK);
-
-        checkOrder("module-overview-frame.html",
-                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<div class=\"indexNav\">",
-                "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"Modules\">Modules</h2>\n"
-                + "<ul title=\"Modules\">");
-
-        checkOrder("m1/module-frame.html",
-                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<div class=\"indexNav\">",
-                "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"m1\"><a href=\"module-summary.html\" target=\"classFrame\">m1</a>&nbsp;Packages</h2>");
-
-        checkOrder("overview-summary.html",
-                "<div class=\"fixedNav\">",
-                "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>",
-                "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
-    }
-
-    @Test
-    public void testPackages(Path base) throws Exception {
-        Path srcDir = base.resolve("src");
-        createPackages(srcDir);
-
-        Path outDir = base.resolve("out3");
-        javadoc("-d", outDir.toString(),
-                "-doctitle", "Document Title",
-                "-header", "Test Header",
-                "--frames",
-                "-sourcepath", srcDir.toString(),
-                "pkg1", "pkg2");
-
-        checkExit(Exit.OK);
-
-        checkOrder("overview-summary.html",
-                "<header role=\"banner\">\n"
-                + "<nav role=\"navigation\">",
-                "<main role=\"main\">\n"
-                + "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>",
-                "<footer role=\"contentinfo\">\n" +
-                        "<nav role=\"navigation\">");
-
-        checkOrder("overview-frame.html",
-                "<header role=\"banner\">\n"
-                + "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<nav role=\"navigation\" class=\"indexNav\">",
-                "<main role=\"main\">\n"
-                + "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"Packages\">Packages</h2>",
-                "<footer role=\"contentinfo\">");
-    }
-
-    @Test
-    public void testPackagesHtml4(Path base) throws Exception {
-        Path srcDir = base.resolve("src");
-        createPackages(srcDir);
-
-        Path outDir = base.resolve("out4");
-        javadoc("-d", outDir.toString(),
-                "-doctitle", "Document Title",
-                "-header", "Test Header",
-                "--frames",
-                "-sourcepath", srcDir.toString(),
-                "pkg1", "pkg2",
-                "-html4");
-
-        checkExit(Exit.OK);
-
-        checkOrder("overview-summary.html",
-                "<div class=\"fixedNav\">",
-                "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>",
-                "<div class=\"bottomNav\"><a name=\"navbar.bottom\">");
-
-        checkOrder("overview-frame.html",
-                "<h1 title=\"Test Header\" class=\"bar\">Test Header</h1>\n"
-                + "<div class=\"indexNav\">",
-                "<div class=\"indexContainer\">\n"
-                + "<h2 title=\"Packages\">Packages</h2>"
-        );
-    }
-
-    void createModules(Path srcDir) throws Exception {
-        new ModuleBuilder(tb, "m1")
-                .classes("package p1; public class a{}")
-                .classes("package p2; public class b{}")
-                .write(srcDir);
-        new ModuleBuilder(tb, "m2")
-                .classes("package p3; public class c{}")
-                .classes("package p4; public class d{}")
-                .write(srcDir);
-    }
-
-    void createPackages(Path srcDir) throws Exception {
-        new ClassBuilder(tb, "pkg1.A")
-                .setModifiers("public", "class")
-                .write(srcDir);
-        new ClassBuilder(tb, "pkg2.B")
-                .setModifiers("public", "class")
-                .write(srcDir);
-    }
-}
--- a/test/langtools/jdk/javadoc/doclet/testIndexWithModules/TestIndexWithModules.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testIndexWithModules/TestIndexWithModules.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 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
@@ -83,6 +83,7 @@
     //multiple modules with frames
     @Test
     public void testIndexWithMultipleModules1(Path base) throws Exception {
+        setAutomaticCheckLinks(false); // @ignore 8217013
         Path out = base.resolve("out");
         javadoc("-d", out.toString(),
                 "--module-source-path", src.toString(),
@@ -98,6 +99,7 @@
                 "<a href=\"m1/module-summary.html\">m1</a>",
                 "<a href=\"m3/module-summary.html\">m3</a>",
                 "<a href=\"m4/module-summary.html\">m4</a>");
+        setAutomaticCheckLinks(true); // @ignore 8217013
     }
 
     //multiple modules with out frames
--- a/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -115,6 +115,7 @@
         );
 
         String out1_html4 = "out1-html4";
+        setAutomaticCheckLinks(false); // The example code has toy/bad links
         javadoc("-d", out1_html4,
                 "-source", "8",
                 "-html4",
@@ -134,6 +135,8 @@
                 + "<a href=\"#createTempFile-java.lang.String-java.lang.String-java.io.File-\">"
                 + "<code>createTempFile(prefix,&nbsp;suffix,&nbsp;null)</code></a></code>.</div>");
 
+        setAutomaticCheckLinks(true); // re-enable checks
+
         // Generate the documentation using -linkoffline and a relative path as the first parameter.
         // We will try linking to the docs generated in test 1 with a relative path.
         String out2 = "out2";
@@ -182,6 +185,7 @@
         );
 
         // check multiple linkoffline options
+        setAutomaticCheckLinks(false); // The example code has toy/bad links
         javadoc("-d", "out6",
                 "-sourcepath", testSrc,
                 "-linkoffline", "../copy/out1", "out1",
@@ -200,6 +204,8 @@
                         + "title=\"class or interface in mylib.lang\" class=\"externalLink\">"
                         + "<code>link to mylib.lang.StringBuilderChild</code></a>.</div>\n"
         );
+
+        setAutomaticCheckLinks(true); // re-enable checks
     }
 
     /*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOptionWithAutomaticModule.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8212233
+ * @summary The code being documented uses modules but the packages defined in $URL are in the unnamed module.
+ * @library /tools/lib ../../lib
+ * @modules
+ *      jdk.javadoc/jdk.javadoc.internal.tool
+ *      jdk.compiler/com.sun.tools.javac.api
+ *      jdk.compiler/com.sun.tools.javac.main
+ * @build javadoc.tester.* toolbox.JarTask toolbox.JavacTask toolbox.ModuleBuilder toolbox.ToolBox
+ * @run main TestLinkOptionWithAutomaticModule
+ */
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import toolbox.JarTask;
+import toolbox.JavacTask;
+import toolbox.ModuleBuilder;
+import toolbox.ToolBox;
+
+import javadoc.tester.JavadocTester;
+
+public class TestLinkOptionWithAutomaticModule extends JavadocTester {
+
+    public static void main(String... args) throws Exception {
+        TestLinkOptionWithAutomaticModule tester = new TestLinkOptionWithAutomaticModule();
+        tester.runTests(m -> new Object[]{ Path.of(m.getName()) });
+    }
+
+    final ToolBox tb = new ToolBox();
+    private Path libJar;
+    private Path libAPI;
+
+    TestLinkOptionWithAutomaticModule() throws IOException {
+        initLib();
+    }
+
+    private void initLib() throws IOException {
+        // create library: write source, compile it, jar it
+        Path lib = Path.of("lib");
+        Path libSrc = lib.resolve("src");
+        tb.writeJavaFiles(libSrc, "package lib; public class LibClass { }");
+        Path libClasses = Files.createDirectories(lib.resolve("classes"));
+
+        new JavacTask(tb)
+                .outdir(libClasses)
+                .files(tb.findJavaFiles(libSrc))
+                .run()
+                .writeAll();
+
+        libJar = lib.resolve("MyLib.jar");
+        new JarTask(tb, libJar)
+                .baseDir(libClasses)
+                .files(".")
+                .run();
+
+        libAPI = lib.resolve("api");
+        javadoc("-d", libAPI.toString(),
+                "-sourcepath", libSrc.toString(),
+                "lib");
+        checkExit(Exit.OK);
+    }
+
+    @Test
+    public void testLinkUnnamedToAutomaticModule(Path base) throws IOException {
+
+        // create API referring to library
+        Path src = base.resolve("src");
+        tb.writeJavaFiles(src, "package p; public class MyClass extends lib.LibClass { }");
+
+        // run javadoc with library as automatic module
+        Path api = base.resolve("api");
+        javadoc("-d", api.toString(),
+                "-sourcepath", src.toString(),
+                "--add-modules", "MyLib",
+                "--module-path", libJar.toString(),
+                "-linkoffline", "http://myWebsite", libAPI.toAbsolutePath().toString(),
+                "p");
+        checkExit(Exit.OK);
+        checkOutput("p/MyClass.html", true,
+                "extends <a href=\"http://myWebsite/lib/LibClass.html?is-external=true\" "
+                + "title=\"class or interface in lib\" class=\"externalLink\">LibClass</a>");
+    }
+
+    @Test
+    public void testLinkNamedToAutomaticModule(Path base) throws IOException {
+
+        // create API referring to library
+        Path src = base.resolve("src");
+        new ModuleBuilder(tb, "my.module")
+                .exports("p")
+                .requires("MyLib")
+                .classes("package p; public class MyClass extends lib.LibClass { }")
+                .write(src);
+
+        // run javadoc with library as automatic module
+        Path api = base.resolve("api");
+        javadoc("-d", api.toString(),
+                "--module-source-path", src.toString(),
+                "--module-path", libJar.toString(),
+                "-linkoffline", "http://myWebsite", libAPI.toAbsolutePath().toString(),
+                "--module", "my.module");
+        checkExit(Exit.OK);
+        checkOutput("my.module/p/MyClass.html", true,
+                "extends <a href=\"http://myWebsite/lib/LibClass.html?is-external=true\" "
+                + "title=\"class or interface in lib\" class=\"externalLink\">LibClass</a>");
+    }
+
+    @Test
+    public void testLinkNamedToUnnamedModule(Path base) throws IOException {
+
+        // create API referring to library
+        Path src = base.resolve("src");
+        new ModuleBuilder(tb, "my.module")
+                .exports("p")
+                .classes("package p; public class MyClass extends lib.LibClass { }")
+                .write(src);
+
+        // run javadoc with library as unnamed module
+        Path api = base.resolve("api");
+        javadoc("-d", api.toString(),
+                "--module-source-path", src.toString(),
+                "--add-reads", "my.module=ALL-UNNAMED",
+                "--class-path", libJar.toString(),
+                "-linkoffline", "http://myWebsite", libAPI.toAbsolutePath().toString(),
+                "--module", "my.module");
+        checkExit(Exit.OK);
+        checkOutput("my.module/p/MyClass.html", true,
+                "extends <a href=\"http://myWebsite/lib/LibClass.html?is-external=true\" "
+                + "title=\"class or interface in lib\" class=\"externalLink\">LibClass</a>");
+    }
+}
--- a/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4749567 8071982 8175200 8186332 8185371 8182765
+ * @bug      4749567 8071982 8175200 8186332 8185371 8182765 8217034
  * @summary  Test the output for -header, -footer, -nooverview, -nodeprecatedlist, -nonavbar, -notree,
  *           -stylesheetfile, --main-stylesheet, --add-stylesheet options.
  * @author   Bhavesh Patel
--- a/test/langtools/jdk/javadoc/doclet/testPackageDeprecation/TestPackageDeprecation.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testPackageDeprecation/TestPackageDeprecation.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6492694 8026567 8048351 8162363 8183511 8169819 8074407 8196202
+ * @bug      6492694 8026567 8048351 8162363 8183511 8169819 8074407 8196202 8202626
  * @summary  Test package deprecation.
  * @author   bpatel
  * @library  ../../lib/
@@ -38,7 +38,6 @@
 
     public static void main(String... args) throws Exception {
         TestPackageDeprecation tester = new TestPackageDeprecation();
-        tester.setAutomaticCheckLinks(false); // @ignore JDK-8202626
         tester.runTests();
     }
 
--- a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -33,6 +33,10 @@
  * @run main TestRelativeLinks
  */
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
 import javadoc.tester.JavadocTester;
 
 public class TestRelativeLinks extends JavadocTester {
@@ -106,5 +110,27 @@
                 "-sourcepath", testSrc,
                 "pkg", "pkg2");
         checkExit(Exit.OK);
+    }
+
+    @Override
+    public void checkLinks() {
+        // since the test uses explicit links to non-existent files,
+        // we create those files to avoid false positive errors from checkLinks
+        touch("pkg/relative-class-link.html");
+        touch("pkg/relative-field-link.html");
+        touch("pkg/relative-method-link.html");
+        touch("pkg/relative-package-link.html");
+        touch("pkg/relative-multi-line-link.html");
+        super.checkLinks();
+    }
+
+    private void touch(String file) {
+        File f = new File(outputDir, file);
+        out.println("touch " + f);
+        try (FileOutputStream fos = new FileOutputStream(f)) {
+        } catch (IOException e) {
+            checking("Touch file");
+            failed("Error creating file: " + e);
+        }
+    }
 }
-}
--- a/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 4496290 4985072 7006178 7068595 8016328 8050031 8048351 8081854 8071982 8162363 8175200 8186332
- *      8182765 8196202
+ *      8182765 8196202 8202626
  * @summary A simple test to ensure class-use files are correct.
  * @author jamieh
  * @library ../../lib
@@ -39,7 +39,6 @@
 
     public static void main(String... args) throws Exception {
         TestUseOption tester = new TestUseOption();
-        tester.setAutomaticCheckLinks(false); // @ignore JDK-8202626
         tester.runTests();
     }
 
@@ -201,7 +200,7 @@
         checkOutput("package-use.html", true,
                 "<th class=\"colFirst\" scope=\"row\">"
                 + "<a href=\"class-use/UsedInC.html#unnamed.package\">UsedInC</a></th>",
-                "<th class=\"colFirst\" scope=\"row\"><a href=\"#%3CUnnamed%3E\">&lt;Unnamed&gt;</a></th>\n"
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"#unnamed.package\">&lt;Unnamed&gt;</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>"
         );
     }
@@ -219,7 +218,7 @@
                 "<li class=\"blockList\"><a name=\"unnamed.package\">"
         );
         checkOutput("package-use.html", true,
-                "<th class=\"colFirst\" scope=\"row\"><a href=\"#-Unnamed-\">&lt;Unnamed&gt;</a></th>\n"
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"#unnamed.package\">&lt;Unnamed&gt;</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>"
         );
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/lib/javadoc/tester/A11yChecker.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2002, 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.
+ */
+
+package javadoc.tester;
+
+import java.io.PrintStream;
+import java.nio.file.Path;
+import java.util.Map;
+import java.util.Stack;
+import java.util.function.Function;
+
+/**
+ * A class to check various aspects of accessibility in a set of HTML files.
+ */
+public class A11yChecker extends HtmlChecker {
+
+    private boolean html5;
+
+    private int currLevel;
+    private int headingErrors;
+
+    private boolean inBody;
+    private boolean inNoScript;
+    private Stack<String> regions = new Stack<>();
+    private int regionErrors;
+
+    A11yChecker(PrintStream out, Function<Path,String> fileReader) {
+        super(out, fileReader);
+    }
+
+    int getErrorCount() {
+        return errors;
+    }
+
+    @Override
+    public void report() {
+        if (headingErrors == 0) {
+            out.println("All headings OK");
+        } else {
+            out.println(headingErrors + " bad headings");
+        }
+
+        if (regionErrors == 0) {
+            out.println("All regions OK");
+        } else {
+            out.println(regionErrors + " errors in regions");
+        }
+    }
+
+    @Override
+    public void startFile(Path path) {
+        html5 = false;
+    }
+
+    @Override
+    public void endFile() {
+    }
+
+    @Override
+    public void docType(String doctype) {
+        html5 = doctype.matches("(?i)<\\?doctype\\s+html>");
+    }
+
+    @Override
+    public void startElement(String name, Map<String,String> attrs, boolean selfClosing) {
+        switch (name) {
+            case "body":
+                inBody = true;
+                break;
+
+            case "h1": case "h2": case "h3": case "h4": case "h5": case "h6":
+                checkHeading(name);
+                break;
+
+            case "header": case "footer": case "main": case "nav": case "aside":
+                regions.push(name);
+                break;
+
+            case "noscript":
+                inNoScript = true;
+                break;
+        }
+    }
+
+    @Override
+    public void endElement(String name) {
+        switch (name) {
+            case "body":
+                inBody = false;
+                break;
+
+            case "header": case "footer": case "main": case "nav": case "aside":
+                if (regions.size() > 0 && regions.peek().equals(name)) {
+                    regions.pop();
+                } else {
+                    error(currFile, getLineNumber(), "unmatched tag: " + name);
+                    regionErrors++;
+                }
+                break;
+
+            case "noscript":
+                inNoScript = false;
+                break;
+        }
+
+    }
+
+    private void checkHeading(String h) {
+        int level = Character.digit(h.charAt(1), 10);
+        if (level > currLevel + 1) {
+            headingErrors++;
+            StringBuilder sb = new StringBuilder();
+            String sep = "";
+            for (int i = currLevel + 1; i < level; i++) {
+                sb.append(sep).append("h").append(i);
+                sep = ", ";
+            }
+            error(currFile, getLineNumber(), "missing headings: " + sb);
+        }
+        currLevel = level;
+    }
+
+    @Override
+    public void content(String s) {
+        if (html5 && inBody && !inNoScript && !s.isBlank() && regions.isEmpty()) {
+            error(currFile, getLineNumber(), "content outside of any region");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/lib/javadoc/tester/HtmlChecker.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 2002, 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.
+ */
+
+package javadoc.tester;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Function;
+
+public abstract class HtmlChecker extends HtmlParser {
+    static final Path currDir = Paths.get(".").toAbsolutePath().normalize();
+
+    protected Path currFile;
+    protected int files;
+    protected int errors;
+
+    HtmlChecker(PrintStream out, Function<Path,String> fileReader) {
+        super(out, fileReader);
+    }
+
+    void checkDirectory(Path dir) throws IOException {
+        checkFiles(List.of(dir), false, Collections.emptySet());
+    }
+
+    void checkFiles(List<Path> files, boolean skipSubdirs, Set<Path> excludeFiles) throws IOException {
+        for (Path file : files) {
+            Files.walkFileTree(file, new SimpleFileVisitor<Path>() {
+                int depth = 0;
+
+                @Override
+                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
+                    if ((skipSubdirs && depth > 0) || excludeFiles.contains(dir)) {
+                        return FileVisitResult.SKIP_SUBTREE;
+                    }
+                    depth++;
+                    return FileVisitResult.CONTINUE;
+                }
+
+                @Override
+                public FileVisitResult visitFile(Path p, BasicFileAttributes attrs) {
+                    if (excludeFiles.contains(p)) {
+                        return FileVisitResult.CONTINUE;
+                    }
+
+                    if (Files.isRegularFile(p) && p.getFileName().toString().endsWith(".html")) {
+                        checkFile(p);
+                    }
+                    return FileVisitResult.CONTINUE;
+                }
+
+                @Override
+                public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
+                    depth--;
+                    return super.postVisitDirectory(dir, e);
+                }
+            });
+        }
+    }
+
+    void checkFile(Path file) {
+        try {
+            currFile = file.toAbsolutePath().normalize();
+            read(file);
+            files++;
+        } catch (IOException e) {
+            error(file, 0, e);
+        }
+    }
+
+    abstract void report();
+
+    int getErrorCount() {
+        return errors;
+    }
+
+    @Override
+    protected void error(Path file, int lineNumber, String message) {
+        super.error(relativePath(file), lineNumber, message);
+        errors++;
+    }
+
+    @Override
+    protected void error(Path file, int lineNumber, Throwable t) {
+        super.error(relativePath(file), lineNumber, t);
+        errors++;
+    }
+
+    protected Path relativePath(Path path) {
+        return path.startsWith(currDir) ? currDir.relativize(path) : path;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/lib/javadoc/tester/HtmlParser.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,411 @@
+/*
+ * Copyright (c) 2002, 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.
+ */
+
+package javadoc.tester;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.io.StringReader;
+import java.nio.file.Path;
+import java.util.LinkedHashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.regex.Pattern;
+
+/**
+ * A basic HTML parser. Override the protected methods as needed to get notified
+ * of significant items in any file that is read.
+ */
+public abstract class HtmlParser {
+
+    protected final PrintStream out;
+    protected final Function<Path,String> fileReader;
+
+    private Path file;
+    private StringReader in;
+    private int ch;
+    private int lineNumber;
+    private boolean inScript;
+    private boolean xml;
+
+    HtmlParser(PrintStream out, Function<Path,String> fileReader) {
+        this.out = out;
+        this.fileReader = fileReader;
+    }
+
+    /**
+     * Read a file.
+     * @param file the file to be read
+     * @throws IOException if an error occurs while reading the file
+     */
+    void read(Path file) throws IOException {
+        try (StringReader r = new StringReader(fileReader.apply(file))) {
+            this.file = file;
+            this.in = r;
+            StringBuilder content = new StringBuilder();
+
+            startFile(file);
+            try {
+                lineNumber = 1;
+                xml = false;
+                nextChar();
+
+                while (ch != -1) {
+                    switch (ch) {
+
+                        case '<':
+                            content(content.toString());
+                            content.setLength(0);
+                            html();
+                            break;
+
+                        default:
+                            content.append((char) ch);
+                            if (ch == '\n') {
+                                content(content.toString());
+                                content.setLength(0);
+                            }
+                            nextChar();
+                    }
+                }
+            } finally {
+                endFile();
+            }
+        } catch (IOException e) {
+            error(file, lineNumber, e);
+        } catch (Throwable t) {
+            error(file, lineNumber, t);
+            t.printStackTrace(out);
+        }
+    }
+
+
+    int getLineNumber() {
+        return lineNumber;
+    }
+
+    /**
+     * Called when a file has been opened, before parsing begins.
+     * This is always the first notification when reading a file.
+     * This implementation does nothing.
+     *
+     * @param file the file
+     */
+    protected void startFile(Path file) { }
+
+    /**
+     * Called when the parser has finished reading a file.
+     * This is always the last notification when reading a file,
+     * unless any errors occur while closing the file.
+     * This implementation does nothing.
+     */
+    protected void endFile() { }
+
+    /**
+     * Called when a doctype declaration is found, at the beginning of the file.
+     * This implementation does nothing.
+     * @param s the doctype declaration
+     */
+    protected void docType(String s) { }
+
+    /**
+     * Called when the opening tag of an HTML element is encountered.
+     * This implementation does nothing.
+     * @param name the name of the tag
+     * @param attrs the attribute
+     * @param selfClosing whether or not this is a self-closing tag
+     */
+    protected void startElement(String name, Map<String,String> attrs, boolean selfClosing) { }
+
+    /**
+     * Called when the closing tag of an HTML tag is encountered.
+     * This implementation does nothing.
+     * @param name the name of the tag
+     */
+    protected void endElement(String name) { }
+
+    /**
+     * Called for sequences of character content.
+     * @param content the character content
+     */
+    protected void content(String content) { }
+
+    /**
+     * Called when an error has been encountered.
+     * @param file the file being read
+     * @param lineNumber the line number of line containing the error
+     * @param message a description of the error
+     */
+    protected void error(Path file, int lineNumber, String message) {
+        out.println(file + ":" + lineNumber + ": " + message);
+    }
+
+    /**
+     * Called when an exception has been encountered.
+     * @param file the file being read
+     * @param lineNumber the line number of the line being read when the exception was found
+     * @param t the exception
+     */
+    protected void error(Path file, int lineNumber, Throwable t) {
+        out.println(file + ":" + lineNumber + ": " + t);
+    }
+
+    private void nextChar() throws IOException {
+        ch = in.read();
+        if (ch == '\n')
+            lineNumber++;
+    }
+
+    /**
+     * Read the start or end of an HTML tag, or an HTML comment
+     * {@literal <identifier attrs> } or {@literal </identifier> }
+     * @throws java.io.IOException if there is a problem reading the file
+     */
+    private void html() throws IOException {
+        nextChar();
+        if (isIdentifierStart((char) ch)) {
+            String name = readIdentifier().toLowerCase(Locale.US);
+            Map<String,String> attrs = htmlAttrs();
+            if (attrs != null) {
+                boolean selfClosing = false;
+                if (ch == '/') {
+                    nextChar();
+                    selfClosing = true;
+                }
+                if (ch == '>') {
+                    nextChar();
+                    startElement(name, attrs, selfClosing);
+                    if (name.equals("script")) {
+                        inScript = true;
+                    }
+                    return;
+                }
+            }
+        } else if (ch == '/') {
+            nextChar();
+            if (isIdentifierStart((char) ch)) {
+                String name = readIdentifier().toLowerCase(Locale.US);
+                skipWhitespace();
+                if (ch == '>') {
+                    nextChar();
+                    endElement(name);
+                    if (name.equals("script")) {
+                        inScript = false;
+                    }
+                    return;
+                }
+            }
+        } else if (ch == '!') {
+            nextChar();
+            if (ch == '-') {
+                nextChar();
+                if (ch == '-') {
+                    nextChar();
+                    while (ch != -1) {
+                        int dash = 0;
+                        while (ch == '-') {
+                            dash++;
+                            nextChar();
+                        }
+                        // Strictly speaking, a comment should not contain "--"
+                        // so dash > 2 is an error, dash == 2 implies ch == '>'
+                        // See http://www.w3.org/TR/html-markup/syntax.html#syntax-comments
+                        // for more details.
+                        if (dash >= 2 && ch == '>') {
+                            nextChar();
+                            return;
+                        }
+
+                        nextChar();
+                    }
+                }
+            } else if (ch == '[') {
+                nextChar();
+                if (ch == 'C') {
+                    nextChar();
+                    if (ch == 'D') {
+                        nextChar();
+                        if (ch == 'A') {
+                            nextChar();
+                            if (ch == 'T') {
+                                nextChar();
+                                if (ch == 'A') {
+                                    nextChar();
+                                    if (ch == '[') {
+                                        while (true) {
+                                            nextChar();
+                                            if (ch == ']') {
+                                                nextChar();
+                                                if (ch == ']') {
+                                                    nextChar();
+                                                    if (ch == '>') {
+                                                        nextChar();
+                                                        return;
+                                                    }
+                                                }
+                                            }
+                                        }
+
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            } else {
+                StringBuilder sb = new StringBuilder();
+                while (ch != -1 && ch != '>') {
+                    sb.append((char) ch);
+                    nextChar();
+                }
+                Pattern p = Pattern.compile("(?is)doctype\\s+html\\s?.*");
+                String s = sb.toString();
+                if (p.matcher(s).matches()) {
+                    docType(s);
+                    return;
+                }
+            }
+        } else if (ch == '?') {
+            nextChar();
+            if (ch == 'x') {
+                nextChar();
+                if (ch == 'm') {
+                    nextChar();
+                    if (ch == 'l') {
+                        Map<String,String> attrs = htmlAttrs();
+                        if (ch == '?') {
+                            nextChar();
+                            if (ch == '>') {
+                                nextChar();
+                                xml = true;
+                                return;
+                            }
+                        }
+                    }
+                }
+
+            }
+        }
+
+        if (!inScript) {
+            error(file, lineNumber, "bad html");
+        }
+    }
+
+    /**
+     * Read a series of HTML attributes, terminated by {@literal > }.
+     * Each attribute is of the form {@literal identifier[=value] }.
+     * "value" may be unquoted, single-quoted, or double-quoted.
+     */
+    private Map<String,String> htmlAttrs() throws IOException {
+        Map<String, String> map = new LinkedHashMap<>();
+        skipWhitespace();
+
+        loop:
+        while (isIdentifierStart((char) ch)) {
+            String name = readAttributeName().toLowerCase(Locale.US);
+            skipWhitespace();
+            String value = null;
+            if (ch == '=') {
+                nextChar();
+                skipWhitespace();
+                if (ch == '\'' || ch == '"') {
+                    char quote = (char) ch;
+                    nextChar();
+                    StringBuilder sb = new StringBuilder();
+                    while (ch != -1 && ch != quote) {
+                        sb.append((char) ch);
+                        nextChar();
+                    }
+                    value = sb.toString() // hack to replace common entities
+                            .replace("&lt;", "<")
+                            .replace("&gt;", ">")
+                            .replace("&amp;", "&");
+                    nextChar();
+                } else {
+                    StringBuilder sb = new StringBuilder();
+                    while (ch != -1 && !isUnquotedAttrValueTerminator((char) ch)) {
+                        sb.append((char) ch);
+                        nextChar();
+                    }
+                    value = sb.toString();
+                }
+                skipWhitespace();
+            }
+            map.put(name, value);
+        }
+
+        return map;
+    }
+
+    private boolean isIdentifierStart(char ch) {
+        return Character.isUnicodeIdentifierStart(ch);
+    }
+
+    private String readIdentifier() throws IOException {
+        StringBuilder sb = new StringBuilder();
+        sb.append((char) ch);
+        nextChar();
+        while (ch != -1 && Character.isUnicodeIdentifierPart(ch)) {
+            sb.append((char) ch);
+            nextChar();
+        }
+        return sb.toString();
+    }
+
+    private String readAttributeName() throws IOException {
+        StringBuilder sb = new StringBuilder();
+        sb.append((char) ch);
+        nextChar();
+        while (ch != -1 && Character.isUnicodeIdentifierPart(ch)
+                || ch == '-'
+                || xml && ch == ':') {
+            sb.append((char) ch);
+            nextChar();
+        }
+        return sb.toString();
+    }
+
+    private boolean isWhitespace(char ch) {
+        return Character.isWhitespace(ch);
+    }
+
+    private void skipWhitespace() throws IOException {
+        while (isWhitespace((char) ch)) {
+            nextChar();
+        }
+    }
+
+    private boolean isUnquotedAttrValueTerminator(char ch) {
+        switch (ch) {
+            case '\f': case '\n': case '\r': case '\t':
+            case ' ':
+            case '"': case '\'': case '`':
+            case '=': case '<': case '>':
+                return true;
+            default:
+                return false;
+        }
+    }
+}
--- a/test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -23,18 +23,15 @@
 
 package javadoc.tester;
 
-import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileWriter;
 import java.io.FilenameFilter;
-import java.io.InputStreamReader;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.io.PrintWriter;
-import java.io.StringReader;
 import java.io.StringWriter;
 import java.lang.annotation.Annotation;
 import java.lang.annotation.Retention;
@@ -42,36 +39,21 @@
 import java.lang.ref.SoftReference;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CodingErrorAction;
 import java.nio.charset.UnsupportedCharsetException;
-import java.nio.file.FileVisitResult;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.EnumMap;
 import java.util.HashMap;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
 import java.util.function.Function;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
 
 
 /**
@@ -250,6 +232,7 @@
 
     private DirectoryCheck outputDirectoryCheck = DirectoryCheck.EMPTY;
 
+    private boolean automaticCheckAccessibility = false;
     private boolean automaticCheckLinks = true;
 
     /** The current subtest number. Incremented when checking(...) is called. */
@@ -397,8 +380,13 @@
             }
         });
 
-        if (automaticCheckLinks && exitCode == Exit.OK.code && outputDir.exists()) {
-            checkLinks();
+        if (exitCode == Exit.OK.code && outputDir.exists()) {
+            if (automaticCheckLinks) {
+                checkLinks();
+            }
+            if (automaticCheckAccessibility) {
+                checkAccessibility();
+            }
         }
     }
 
@@ -531,6 +519,23 @@
         }
     }
 
+    public void checkAccessibility() {
+        checking("Check accessibility");
+        A11yChecker c = new A11yChecker(out, this::readFile);
+        try {
+            c.checkDirectory(outputDir.toPath());
+            c.report();
+            int errors = c.getErrorCount();
+            if (errors == 0) {
+                passed("No accessibility errors found");
+            } else {
+                failed(errors + " errors found when checking accessibility");
+            }
+        } catch (IOException e) {
+            failed("exception thrown when reading files: " + e);
+        }
+    }
+
     public void checkLinks() {
         checking("Check links");
         LinkChecker c = new LinkChecker(out, this::readFile);
@@ -861,7 +866,6 @@
      * @param baseDir1 the directory in which to locate the first file
      * @param baseDir2 the directory in which to locate the second file
      * @param file the file to compare in the two base directories
-     * @param throwErrorIFNoMatch flag to indicate whether or not to throw
      * an error if the files do not match.
      * @return true if the files are the same and false otherwise.
      */
@@ -981,820 +985,4 @@
 
     // Support classes for checkLinks
 
-    /**
-     * A basic HTML parser. Override the protected methods as needed to get notified
-     * of significant items in any file that is read.
-     */
-    static abstract class HtmlParser {
-
-        protected final PrintStream out;
-        protected final Function<Path,String> fileReader;
-
-        private Path file;
-        private StringReader in;
-        private int ch;
-        private int lineNumber;
-        private boolean inScript;
-        private boolean xml;
-
-        HtmlParser(PrintStream out, Function<Path,String> fileReader) {
-            this.out = out;
-            this.fileReader = fileReader;
-        }
-
-        /**
-         * Read a file.
-         * @param file the file to be read
-         * @throws IOException if an error occurs while reading the file
-         */
-        void read(Path file) throws IOException {
-            try (StringReader r = new StringReader(fileReader.apply(file))) {
-                this.file = file;
-                this.in = r;
-
-                startFile(file);
-                try {
-                    lineNumber = 1;
-                    xml = false;
-                    nextChar();
-
-                    while (ch != -1) {
-                        switch (ch) {
-
-                            case '<':
-                                html();
-                                break;
-
-                            default:
-                                nextChar();
-                        }
-                    }
-                } finally {
-                    endFile();
-                }
-            } catch (IOException e) {
-                error(file, lineNumber, e);
-            } catch (Throwable t) {
-                error(file, lineNumber, t);
-                t.printStackTrace(out);
-            }
-        }
-
-
-        int getLineNumber() {
-            return lineNumber;
-        }
-
-        /**
-         * Called when a file has been opened, before parsing begins.
-         * This is always the first notification when reading a file.
-         * This implementation does nothing.
-         *
-         * @param file the file
-         */
-        protected void startFile(Path file) { }
-
-        /**
-         * Called when the parser has finished reading a file.
-         * This is always the last notification when reading a file,
-         * unless any errors occur while closing the file.
-         * This implementation does nothing.
-         */
-        protected void endFile() { }
-
-        /**
-         * Called when a doctype declaration is found, at the beginning of the file.
-         * This implementation does nothing.
-         * @param s the doctype declaration
-         */
-        protected void docType(String s) { }
-
-        /**
-         * Called when the opening tag of an HTML element is encountered.
-         * This implementation does nothing.
-         * @param name the name of the tag
-         * @param attrs the attribute
-         * @param selfClosing whether or not this is a self-closing tag
-         */
-        protected void startElement(String name, Map<String,String> attrs, boolean selfClosing) { }
-
-        /**
-         * Called when the closing tag of an HTML tag is encountered.
-         * This implementation does nothing.
-         * @param name the name of the tag
-         */
-        protected void endElement(String name) { }
-
-        /**
-         * Called when an error has been encountered.
-         * @param file the file being read
-         * @param lineNumber the line number of line containing the error
-         * @param message a description of the error
-         */
-        protected void error(Path file, int lineNumber, String message) {
-            out.println(file + ":" + lineNumber + ": " + message);
-        }
-
-        /**
-         * Called when an exception has been encountered.
-         * @param file the file being read
-         * @param lineNumber the line number of the line being read when the exception was found
-         * @param t the exception
-         */
-        protected void error(Path file, int lineNumber, Throwable t) {
-            out.println(file + ":" + lineNumber + ": " + t);
-        }
-
-        private void nextChar() throws IOException {
-            ch = in.read();
-            if (ch == '\n')
-                lineNumber++;
-        }
-
-        /**
-         * Read the start or end of an HTML tag, or an HTML comment
-         * {@literal <identifier attrs> } or {@literal </identifier> }
-         * @throws java.io.IOException if there is a problem reading the file
-         */
-        private void html() throws IOException {
-            nextChar();
-            if (isIdentifierStart((char) ch)) {
-                String name = readIdentifier().toLowerCase(Locale.US);
-                Map<String,String> attrs = htmlAttrs();
-                if (attrs != null) {
-                    boolean selfClosing = false;
-                    if (ch == '/') {
-                        nextChar();
-                        selfClosing = true;
-                    }
-                    if (ch == '>') {
-                        nextChar();
-                        startElement(name, attrs, selfClosing);
-                        if (name.equals("script")) {
-                            inScript = true;
-                        }
-                        return;
-                    }
-                }
-            } else if (ch == '/') {
-                nextChar();
-                if (isIdentifierStart((char) ch)) {
-                    String name = readIdentifier().toLowerCase(Locale.US);
-                    skipWhitespace();
-                    if (ch == '>') {
-                        nextChar();
-                        endElement(name);
-                        if (name.equals("script")) {
-                            inScript = false;
-                        }
-                        return;
-                    }
-                }
-            } else if (ch == '!') {
-                nextChar();
-                if (ch == '-') {
-                    nextChar();
-                    if (ch == '-') {
-                        nextChar();
-                        while (ch != -1) {
-                            int dash = 0;
-                            while (ch == '-') {
-                                dash++;
-                                nextChar();
-                            }
-                            // Strictly speaking, a comment should not contain "--"
-                            // so dash > 2 is an error, dash == 2 implies ch == '>'
-                            // See http://www.w3.org/TR/html-markup/syntax.html#syntax-comments
-                            // for more details.
-                            if (dash >= 2 && ch == '>') {
-                                nextChar();
-                                return;
-                            }
-
-                            nextChar();
-                        }
-                    }
-                } else if (ch == '[') {
-                    nextChar();
-                    if (ch == 'C') {
-                        nextChar();
-                        if (ch == 'D') {
-                            nextChar();
-                            if (ch == 'A') {
-                                nextChar();
-                                if (ch == 'T') {
-                                    nextChar();
-                                    if (ch == 'A') {
-                                        nextChar();
-                                        if (ch == '[') {
-                                            while (true) {
-                                                nextChar();
-                                                if (ch == ']') {
-                                                    nextChar();
-                                                    if (ch == ']') {
-                                                        nextChar();
-                                                        if (ch == '>') {
-                                                            nextChar();
-                                                            return;
-                                                        }
-                                                    }
-                                                }
-                                            }
-
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    StringBuilder sb = new StringBuilder();
-                    while (ch != -1 && ch != '>') {
-                        sb.append((char) ch);
-                        nextChar();
-                    }
-                    Pattern p = Pattern.compile("(?is)doctype\\s+html\\s?.*");
-                    String s = sb.toString();
-                    if (p.matcher(s).matches()) {
-                        docType(s);
-                        return;
-                    }
-                }
-            } else if (ch == '?') {
-                nextChar();
-                if (ch == 'x') {
-                    nextChar();
-                    if (ch == 'm') {
-                        nextChar();
-                        if (ch == 'l') {
-                            Map<String,String> attrs = htmlAttrs();
-                            if (ch == '?') {
-                                nextChar();
-                                if (ch == '>') {
-                                    nextChar();
-                                    xml = true;
-                                    return;
-                                }
-                            }
-                        }
-                    }
-
-                }
-            }
-
-            if (!inScript) {
-                error(file, lineNumber, "bad html");
-            }
-        }
-
-        /**
-         * Read a series of HTML attributes, terminated by {@literal > }.
-         * Each attribute is of the form {@literal identifier[=value] }.
-         * "value" may be unquoted, single-quoted, or double-quoted.
-         */
-        private Map<String,String> htmlAttrs() throws IOException {
-            Map<String, String> map = new LinkedHashMap<>();
-            skipWhitespace();
-
-            loop:
-            while (isIdentifierStart((char) ch)) {
-                String name = readAttributeName().toLowerCase(Locale.US);
-                skipWhitespace();
-                String value = null;
-                if (ch == '=') {
-                    nextChar();
-                    skipWhitespace();
-                    if (ch == '\'' || ch == '"') {
-                        char quote = (char) ch;
-                        nextChar();
-                        StringBuilder sb = new StringBuilder();
-                        while (ch != -1 && ch != quote) {
-                            sb.append((char) ch);
-                            nextChar();
-                        }
-                        value = sb.toString() // hack to replace common entities
-                                .replace("&lt;", "<")
-                                .replace("&gt;", ">")
-                                .replace("&amp;", "&");
-                        nextChar();
-                    } else {
-                        StringBuilder sb = new StringBuilder();
-                        while (ch != -1 && !isUnquotedAttrValueTerminator((char) ch)) {
-                            sb.append((char) ch);
-                            nextChar();
-                        }
-                        value = sb.toString();
-                    }
-                    skipWhitespace();
-                }
-                map.put(name, value);
-            }
-
-            return map;
-        }
-
-        private boolean isIdentifierStart(char ch) {
-            return Character.isUnicodeIdentifierStart(ch);
-        }
-
-        private String readIdentifier() throws IOException {
-            StringBuilder sb = new StringBuilder();
-            sb.append((char) ch);
-            nextChar();
-            while (ch != -1 && Character.isUnicodeIdentifierPart(ch)) {
-                sb.append((char) ch);
-                nextChar();
-            }
-            return sb.toString();
-        }
-
-        private String readAttributeName() throws IOException {
-            StringBuilder sb = new StringBuilder();
-            sb.append((char) ch);
-            nextChar();
-            while (ch != -1 && Character.isUnicodeIdentifierPart(ch)
-                    || ch == '-'
-                    || xml && ch == ':') {
-                sb.append((char) ch);
-                nextChar();
-            }
-            return sb.toString();
-        }
-
-        private boolean isWhitespace(char ch) {
-            return Character.isWhitespace(ch);
-        }
-
-        private void skipWhitespace() throws IOException {
-            while (isWhitespace((char) ch)) {
-                nextChar();
-            }
-        }
-
-        private boolean isUnquotedAttrValueTerminator(char ch) {
-            switch (ch) {
-                case '\f': case '\n': case '\r': case '\t':
-                case ' ':
-                case '"': case '\'': case '`':
-                case '=': case '<': case '>':
-                    return true;
-                default:
-                    return false;
-            }
-        }
-    }
-
-    /**
-     * A class to check the links in a set of HTML files.
-     */
-    static class LinkChecker extends HtmlParser {
-        private final Map<Path, IDTable> allFiles;
-        private final Map<URI, IDTable> allURIs;
-
-        private int files;
-        private int links;
-        private int badSchemes;
-        private int duplicateIds;
-        private int missingIds;
-
-        private Path currFile;
-        private IDTable currTable;
-        private boolean html5;
-        private boolean xml;
-
-        private int errors;
-
-        LinkChecker(PrintStream out, Function<Path,String> fileReader) {
-            super(out, fileReader);
-            allFiles = new HashMap<>();
-            allURIs = new HashMap<>();
-        }
-
-        void checkDirectory(Path dir) throws IOException {
-            checkFiles(List.of(dir), false, Collections.emptySet());
-        }
-
-        void checkFiles(List<Path> files, boolean skipSubdirs, Set<Path> excludeFiles) throws IOException {
-            for (Path file : files) {
-                Files.walkFileTree(file, new SimpleFileVisitor<Path>() {
-                    int depth = 0;
-
-                    @Override
-                    public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
-                        if ((skipSubdirs && depth > 0) || excludeFiles.contains(dir)) {
-                            return FileVisitResult.SKIP_SUBTREE;
-                        }
-                        depth++;
-                        return FileVisitResult.CONTINUE;
-                    }
-
-                    @Override
-                    public FileVisitResult visitFile(Path p, BasicFileAttributes attrs) {
-                        if (excludeFiles.contains(p)) {
-                            return FileVisitResult.CONTINUE;
-                        }
-
-                        if (Files.isRegularFile(p) && p.getFileName().toString().endsWith(".html")) {
-                            checkFile(p);
-                        }
-                        return FileVisitResult.CONTINUE;
-                    }
-
-                    @Override
-                    public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
-                        depth--;
-                        return super.postVisitDirectory(dir, e);
-                    }
-                });
-            }
-        }
-
-        void checkFile(Path file) {
-            try {
-                read(file);
-            } catch (IOException e) {
-                error(file, 0, e);
-            }
-        }
-
-        int getErrorCount() {
-            return errors;
-        }
-
-        public void report() {
-            List<Path> missingFiles = getMissingFiles();
-            if (!missingFiles.isEmpty()) {
-                report("Missing files: (" + missingFiles.size() + ")");
-                missingFiles.stream()
-                        .sorted()
-                        .forEach(this::reportMissingFile);
-
-            }
-
-            if (!allURIs.isEmpty()) {
-                report(false, "External URLs:");
-                allURIs.keySet().stream()
-                        .sorted(new URIComparator())
-                        .forEach(uri -> report(false, "  %s", uri.toString()));
-            }
-
-            int anchors = 0;
-            for (IDTable t : allFiles.values()) {
-                anchors += t.map.values().stream()
-                        .filter(e -> !e.getReferences().isEmpty())
-                        .count();
-            }
-            for (IDTable t : allURIs.values()) {
-                anchors += t.map.values().stream()
-                        .filter(e -> !e.references.isEmpty())
-                        .count();
-            }
-
-            report(false, "Checked " + files + " files.");
-            report(false, "Found " + links + " references to " + anchors + " anchors "
-                    + "in " + allFiles.size() + " files and " + allURIs.size() + " other URIs.");
-            report(!missingFiles.isEmpty(),   "%6d missing files", missingFiles.size());
-            report(duplicateIds > 0, "%6d duplicate ids", duplicateIds);
-            report(missingIds > 0,   "%6d missing ids", missingIds);
-
-            Map<String, Integer> schemeCounts = new TreeMap<>();
-            Map<String, Integer> hostCounts = new TreeMap<>(new HostComparator());
-            for (URI uri : allURIs.keySet()) {
-                String scheme = uri.getScheme();
-                if (scheme != null) {
-                    schemeCounts.put(scheme, schemeCounts.computeIfAbsent(scheme, s -> 0) + 1);
-                }
-                String host = uri.getHost();
-                if (host != null) {
-                    hostCounts.put(host, hostCounts.computeIfAbsent(host, h -> 0) + 1);
-                }
-            }
-
-            if (schemeCounts.size() > 0) {
-                report(false, "Schemes");
-                schemeCounts.forEach((s, n) -> report(!isSchemeOK(s), "%6d %s", n, s));
-            }
-
-            if (hostCounts.size() > 0) {
-                report(false, "Hosts");
-                hostCounts.forEach((h, n) -> report(false, "%6d %s", n, h));
-            }
-        }
-
-        private void report(String message, Object... args) {
-            out.println(String.format(message, args));
-        }
-
-        private void report(boolean highlight, String message, Object... args) {
-            out.print(highlight ? "* " : "  ");
-            out.println(String.format(message, args));
-        }
-
-        private void reportMissingFile(Path file) {
-            report("%s", relativePath(file));
-            IDTable table = allFiles.get(file);
-            Set<Path> refs = new TreeSet<>();
-            for (ID id : table.map.values()) {
-                if (id.references != null) {
-                    for (Position p : id.references) {
-                        refs.add(p.path);
-                    }
-                }
-            }
-            int n = 0;
-            int MAX_REFS = 10;
-            for (Path ref : refs) {
-                report("    in " + relativePath(ref));
-                if (++n == MAX_REFS) {
-                    report("    ... and %d more", refs.size() - n);
-                    break;
-                }
-            }
-        }
-
-        @Override
-        public void startFile(Path path) {
-            currFile = path.toAbsolutePath().normalize();
-            currTable = allFiles.computeIfAbsent(currFile, p -> new IDTable(p));
-            html5 = false;
-            files++;
-        }
-
-        @Override
-        public void endFile() {
-            currTable.check();
-        }
-
-        @Override
-        public void docType(String doctype) {
-            html5 = doctype.matches("(?i)<\\?doctype\\s+html>");
-        }
-
-        @Override @SuppressWarnings("fallthrough")
-        public void startElement(String name, Map<String, String> attrs, boolean selfClosing) {
-            int line = getLineNumber();
-            switch (name) {
-                case "a":
-                    String nameAttr = html5 ? null : attrs.get("name");
-                    if (nameAttr != null) {
-                        foundAnchor(line, nameAttr);
-                    }
-                    // fallthrough
-                case "link":
-                    String href = attrs.get("href");
-                    if (href != null) {
-                        foundReference(line, href);
-                    }
-                    break;
-            }
-
-            String idAttr = attrs.get("id");
-            if (idAttr != null) {
-                foundAnchor(line, idAttr);
-            }
-        }
-
-        @Override
-        public void endElement(String name) { }
-
-        private void foundAnchor(int line, String name) {
-            currTable.addID(line, name);
-        }
-
-        private void foundReference(int line, String ref) {
-            links++;
-            try {
-                URI uri = new URI(ref);
-                if (uri.isAbsolute()) {
-                    foundReference(line, uri);
-                } else {
-                    Path p;
-                    String uriPath = uri.getPath();
-                    if (uriPath == null || uriPath.isEmpty()) {
-                        p = currFile;
-                    } else {
-                        p = currFile.getParent().resolve(uriPath).normalize();
-                    }
-                    foundReference(line, p, uri.getFragment());
-                }
-            } catch (URISyntaxException e) {
-                error(currFile, line, "invalid URI: " + e);
-            }
-        }
-
-        private void foundReference(int line, Path p, String fragment) {
-            IDTable t = allFiles.computeIfAbsent(p, key -> new IDTable(key));
-            t.addReference(fragment, currFile, line);
-        }
-
-        private void foundReference(int line, URI uri) {
-            if (!isSchemeOK(uri.getScheme())) {
-                error(currFile, line, "bad scheme in URI");
-                badSchemes++;
-            }
-
-            String fragment = uri.getFragment();
-            try {
-                URI noFrag = new URI(uri.toString().replaceAll("#\\Q" + fragment + "\\E$", ""));
-                IDTable t = allURIs.computeIfAbsent(noFrag, key -> new IDTable(key.toString()));
-                t.addReference(fragment, currFile, line);
-            } catch (URISyntaxException e) {
-                throw new Error(e);
-            }
-        }
-
-        private boolean isSchemeOK(String uriScheme) {
-            if (uriScheme == null) {
-                return true;
-            }
-
-            switch (uriScheme) {
-                case "file":
-                case "ftp":
-                case "http":
-                case "https":
-                case "javascript":
-                case "mailto":
-                    return true;
-
-                default:
-                    return false;
-            }
-        }
-
-        private List<Path> getMissingFiles() {
-            return allFiles.entrySet().stream()
-                    .filter(e -> !Files.exists(e.getKey()))
-                    .map(e -> e.getKey())
-                    .collect(Collectors.toList());
-        }
-
-        @Override
-        protected void error(Path file, int lineNumber, String message) {
-            super.error(relativePath(file), lineNumber, message);
-            errors++;
-        }
-
-        @Override
-        protected void error(Path file, int lineNumber, Throwable t) {
-            super.error(relativePath(file), lineNumber, t);
-            errors++;
-        }
-
-        private Path relativePath(Path path) {
-            return path.startsWith(currDir) ? currDir.relativize(path) : path;
-        }
-
-        /**
-         * A position in a file, as identified by a file name and line number.
-         */
-        static class Position implements Comparable<Position> {
-            Path path;
-            int line;
-
-            Position(Path path, int line) {
-                this.path = path;
-                this.line = line;
-            }
-
-            @Override
-            public int compareTo(Position o) {
-                int v = path.compareTo(o.path);
-                return v != 0 ? v : Integer.compare(line, o.line);
-            }
-
-            @Override
-            public boolean equals(Object obj) {
-                if (this == obj) {
-                    return true;
-                } else if (obj == null || getClass() != obj.getClass()) {
-                    return false;
-                } else {
-                    final Position other = (Position) obj;
-                    return Objects.equals(this.path, other.path)
-                            && this.line == other.line;
-                }
-            }
-
-            @Override
-            public int hashCode() {
-                return Objects.hashCode(path) * 37 + line;
-            }
-        }
-
-        /**
-         * Infor for an ID within an HTML file, and a set of positions that reference it.
-         */
-        static class ID {
-            boolean declared;
-            Set<Position> references;
-
-            Set<Position> getReferences() {
-                return (references) == null ? Collections.emptySet() : references;
-            }
-        }
-
-        /**
-         * A table for the set of IDs in an HTML file.
-         */
-        class IDTable {
-            private String name;
-            private boolean checked;
-            private final Map<String, ID> map = new HashMap<>();
-
-            IDTable(Path p) {
-                this(relativePath(p).toString());
-            }
-
-            IDTable(String name) {
-                this.name = name;
-            }
-
-            void addID(int line, String name) {
-                if (checked) {
-                    throw new IllegalStateException("Adding ID after file has been read");
-                }
-                Objects.requireNonNull(name);
-                ID id = map.computeIfAbsent(name, x -> new ID());
-                if (id.declared) {
-                    error(currFile, line, "name already declared: " + name);
-                    duplicateIds++;
-                } else {
-                    id.declared = true;
-                }
-            }
-
-            void addReference(String name, Path from, int line) {
-                if (checked) {
-                    if (name != null) {
-                        ID id = map.get(name);
-                        if (id == null || !id.declared) {
-                            error(from, line, "id not found: " + this.name + "#" + name);
-                        }
-                    }
-                } else {
-                    ID id = map.computeIfAbsent(name, x -> new ID());
-                    if (id.references == null) {
-                        id.references = new TreeSet<>();
-                    }
-                    id.references.add(new Position(from, line));
-                }
-            }
-
-            void check() {
-                map.forEach((name, id) -> {
-                    if (name != null && !id.declared) {
-                        //log.error(currFile, 0, "id not declared: " + name);
-                        for (Position ref : id.references) {
-                            error(ref.path, ref.line, "id not found: " + this.name + "#" + name);
-                        }
-                        missingIds++;
-                    }
-                });
-                checked = true;
-            }
-        }
-
-        static class URIComparator implements Comparator<URI> {
-            final HostComparator hostComparator = new HostComparator();
-
-            @Override
-            public int compare(URI o1, URI o2) {
-                if (o1.isOpaque() || o2.isOpaque()) {
-                    return o1.compareTo(o2);
-                }
-                String h1 = o1.getHost();
-                String h2 = o2.getHost();
-                String s1 = o1.getScheme();
-                String s2 = o2.getScheme();
-                if (h1 == null || h1.isEmpty() || s1 == null || s1.isEmpty()
-                        || h2 == null || h2.isEmpty() || s2 == null || s2.isEmpty()) {
-                    return o1.compareTo(o2);
-                }
-                int v = hostComparator.compare(h1, h2);
-                if (v != 0) {
-                    return v;
-                }
-                v = s1.compareTo(s2);
-                if (v != 0) {
-                    return v;
-                }
-                return o1.compareTo(o2);
-            }
-        }
-
-        static class HostComparator implements Comparator<String> {
-            @Override
-            public int compare(String h1, String h2) {
-                List<String> l1 = new ArrayList<>(Arrays.asList(h1.split("\\.")));
-                Collections.reverse(l1);
-                String r1 = String.join(".", l1);
-                List<String> l2 = new ArrayList<>(Arrays.asList(h2.split("\\.")));
-                Collections.reverse(l2);
-                String r2 = String.join(".", l2);
-                return r1.compareTo(r2);
-            }
-        }
-
-    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/lib/javadoc/tester/LinkChecker.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,424 @@
+/*
+ * Copyright (c) 2002, 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.
+ */
+
+package javadoc.tester;
+
+import java.io.PrintStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * A class to check the links in a set of HTML files.
+ */
+public class LinkChecker extends HtmlChecker {
+
+    private final Map<Path, IDTable> allFiles;
+    private final Map<URI, IDTable> allURIs;
+
+    private int links;
+    private int duplicateIds;
+    private int missingIds;
+
+    private IDTable currTable;
+    private boolean html5;
+
+    LinkChecker(PrintStream out, Function<Path,String> fileReader) {
+        super(out, fileReader);
+        allFiles = new HashMap<>();
+        allURIs = new HashMap<>();
+    }
+
+    @Override
+    public void report() {
+        List<Path> missingFiles = getMissingFiles();
+        if (!missingFiles.isEmpty()) {
+            report("Missing files: (" + missingFiles.size() + ")");
+            missingFiles.stream()
+                    .sorted()
+                    .forEach(this::reportMissingFile);
+            errors += missingFiles.size();
+        }
+
+        if (!allURIs.isEmpty()) {
+            report(false, "External URLs:");
+            allURIs.keySet().stream()
+                    .sorted(new URIComparator())
+                    .forEach(uri -> report(false, "  %s", uri.toString()));
+        }
+
+        int anchors = 0;
+        for (IDTable t : allFiles.values()) {
+            anchors += t.map.values().stream()
+                    .filter(e -> !e.getReferences().isEmpty())
+                    .count();
+        }
+        for (IDTable t : allURIs.values()) {
+            anchors += t.map.values().stream()
+                    .filter(e -> !e.references.isEmpty())
+                    .count();
+        }
+
+        report(false, "Checked " + files + " files.");
+        report(false, "Found " + links + " references to " + anchors + " anchors "
+                + "in " + allFiles.size() + " files and " + allURIs.size() + " other URIs.");
+        report(!missingFiles.isEmpty(),   "%6d missing files", missingFiles.size());
+        report(duplicateIds > 0, "%6d duplicate ids", duplicateIds);
+        report(missingIds > 0,   "%6d missing ids", missingIds);
+
+        Map<String, Integer> schemeCounts = new TreeMap<>();
+        Map<String, Integer> hostCounts = new TreeMap<>(new HostComparator());
+        for (URI uri : allURIs.keySet()) {
+            String scheme = uri.getScheme();
+            if (scheme != null) {
+                schemeCounts.put(scheme, schemeCounts.computeIfAbsent(scheme, s -> 0) + 1);
+            }
+            String host = uri.getHost();
+            if (host != null) {
+                hostCounts.put(host, hostCounts.computeIfAbsent(host, h -> 0) + 1);
+            }
+        }
+
+        if (schemeCounts.size() > 0) {
+            report(false, "Schemes");
+            schemeCounts.forEach((s, n) -> report(!isSchemeOK(s), "%6d %s", n, s));
+        }
+
+        if (hostCounts.size() > 0) {
+            report(false, "Hosts");
+            hostCounts.forEach((h, n) -> report(false, "%6d %s", n, h));
+        }
+    }
+
+    private void report(String message, Object... args) {
+        out.println(String.format(message, args));
+    }
+
+    private void report(boolean highlight, String message, Object... args) {
+        out.print(highlight ? "* " : "  ");
+        out.println(String.format(message, args));
+    }
+
+    private void reportMissingFile(Path file) {
+        report("%s", relativePath(file));
+        IDTable table = allFiles.get(file);
+        Set<Path> refs = new TreeSet<>();
+        for (ID id : table.map.values()) {
+            if (id.references != null) {
+                for (Position p : id.references) {
+                    refs.add(p.path);
+                }
+            }
+        }
+        int n = 0;
+        int MAX_REFS = 10;
+        for (Path ref : refs) {
+            report("    in " + relativePath(ref));
+            if (++n == MAX_REFS) {
+                report("    ... and %d more", refs.size() - n);
+                break;
+            }
+        }
+    }
+
+    @Override
+    public void startFile(Path path) {
+        currTable = allFiles.computeIfAbsent(currFile, p -> new IDTable(p));
+        html5 = false;
+    }
+
+    @Override
+    public void endFile() {
+        currTable.check();
+    }
+
+    @Override
+    public void docType(String doctype) {
+        html5 = doctype.matches("(?i)<\\?doctype\\s+html>");
+    }
+
+    @Override @SuppressWarnings("fallthrough")
+    public void startElement(String name, Map<String, String> attrs, boolean selfClosing) {
+        int line = getLineNumber();
+        switch (name) {
+            case "a":
+                String nameAttr = html5 ? null : attrs.get("name");
+                if (nameAttr != null) {
+                    foundAnchor(line, nameAttr);
+                }
+                // fallthrough
+            case "link":
+                String href = attrs.get("href");
+                if (href != null) {
+                    foundReference(line, href);
+                }
+                break;
+        }
+
+        String idAttr = attrs.get("id");
+        if (idAttr != null) {
+            foundAnchor(line, idAttr);
+        }
+    }
+
+    @Override
+    public void endElement(String name) { }
+
+    private void foundAnchor(int line, String name) {
+        currTable.addID(line, name);
+    }
+
+    private void foundReference(int line, String ref) {
+        links++;
+        try {
+            URI uri = new URI(ref);
+            if (uri.isAbsolute()) {
+                foundReference(line, uri);
+            } else {
+                Path p;
+                String uriPath = uri.getPath();
+                if (uriPath == null || uriPath.isEmpty()) {
+                    p = currFile;
+                } else {
+                    p = currFile.getParent().resolve(uriPath).normalize();
+                }
+                foundReference(line, p, uri.getFragment());
+            }
+        } catch (URISyntaxException e) {
+            error(currFile, line, "invalid URI: " + e);
+        }
+    }
+
+    private void foundReference(int line, Path p, String fragment) {
+        IDTable t = allFiles.computeIfAbsent(p, key -> new IDTable(key));
+        t.addReference(fragment, currFile, line);
+    }
+
+    private void foundReference(int line, URI uri) {
+        if (!isSchemeOK(uri.getScheme())) {
+            error(currFile, line, "bad scheme in URI");
+        }
+
+        String fragment = uri.getFragment();
+        try {
+            URI noFrag = new URI(uri.toString().replaceAll("#\\Q" + fragment + "\\E$", ""));
+            IDTable t = allURIs.computeIfAbsent(noFrag, key -> new IDTable(key.toString()));
+            t.addReference(fragment, currFile, line);
+        } catch (URISyntaxException e) {
+            throw new Error(e);
+        }
+    }
+
+    private boolean isSchemeOK(String uriScheme) {
+        if (uriScheme == null) {
+            return true;
+        }
+
+        switch (uriScheme) {
+            case "file":
+            case "ftp":
+            case "http":
+            case "https":
+            case "javascript":
+            case "mailto":
+                return true;
+
+            default:
+                return false;
+        }
+    }
+
+    private List<Path> getMissingFiles() {
+        return allFiles.entrySet().stream()
+                .filter(e -> !Files.exists(e.getKey()))
+                .map(e -> e.getKey())
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * A position in a file, as identified by a file name and line number.
+     */
+    static class Position implements Comparable<Position> {
+        Path path;
+        int line;
+
+        Position(Path path, int line) {
+            this.path = path;
+            this.line = line;
+        }
+
+        @Override
+        public int compareTo(Position o) {
+            int v = path.compareTo(o.path);
+            return v != 0 ? v : Integer.compare(line, o.line);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj) {
+                return true;
+            } else if (obj == null || getClass() != obj.getClass()) {
+                return false;
+            } else {
+                final Position other = (Position) obj;
+                return Objects.equals(this.path, other.path)
+                        && this.line == other.line;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hashCode(path) * 37 + line;
+        }
+    }
+
+    /**
+     * Infor for an ID within an HTML file, and a set of positions that reference it.
+     */
+    static class ID {
+        boolean declared;
+        Set<Position> references;
+
+        Set<Position> getReferences() {
+            return (references) == null ? Collections.emptySet() : references;
+        }
+    }
+
+    /**
+     * A table for the set of IDs in an HTML file.
+     */
+    class IDTable {
+        private String name;
+        private boolean checked;
+        private final Map<String, ID> map = new HashMap<>();
+
+        IDTable(Path p) {
+            this(relativePath(p).toString());
+        }
+
+        IDTable(String name) {
+            this.name = name;
+        }
+
+        void addID(int line, String name) {
+            if (checked) {
+                throw new IllegalStateException("Adding ID after file has been read");
+            }
+            Objects.requireNonNull(name);
+            ID id = map.computeIfAbsent(name, x -> new ID());
+            if (id.declared) {
+                error(currFile, line, "name already declared: " + name);
+                duplicateIds++;
+            } else {
+                id.declared = true;
+            }
+        }
+
+        void addReference(String name, Path from, int line) {
+            if (checked) {
+                if (name != null) {
+                    ID id = map.get(name);
+                    if (id == null || !id.declared) {
+                        error(from, line, "id not found: " + this.name + "#" + name);
+                    }
+                }
+            } else {
+                ID id = map.computeIfAbsent(name, x -> new ID());
+                if (id.references == null) {
+                    id.references = new TreeSet<>();
+                }
+                id.references.add(new Position(from, line));
+            }
+        }
+
+        void check() {
+            map.forEach((name, id) -> {
+                if (name != null && !id.declared) {
+                    //log.error(currFile, 0, "id not declared: " + name);
+                    for (Position ref : id.references) {
+                        error(ref.path, ref.line, "id not found: " + this.name + "#" + name);
+                    }
+                    missingIds++;
+                }
+            });
+            checked = true;
+        }
+    }
+
+    static class URIComparator implements Comparator<URI> {
+        final HostComparator hostComparator = new HostComparator();
+
+        @Override
+        public int compare(URI o1, URI o2) {
+            if (o1.isOpaque() || o2.isOpaque()) {
+                return o1.compareTo(o2);
+            }
+            String h1 = o1.getHost();
+            String h2 = o2.getHost();
+            String s1 = o1.getScheme();
+            String s2 = o2.getScheme();
+            if (h1 == null || h1.isEmpty() || s1 == null || s1.isEmpty()
+                    || h2 == null || h2.isEmpty() || s2 == null || s2.isEmpty()) {
+                return o1.compareTo(o2);
+            }
+            int v = hostComparator.compare(h1, h2);
+            if (v != 0) {
+                return v;
+            }
+            v = s1.compareTo(s2);
+            if (v != 0) {
+                return v;
+            }
+            return o1.compareTo(o2);
+        }
+    }
+
+    static class HostComparator implements Comparator<String> {
+        @Override
+        public int compare(String h1, String h2) {
+            List<String> l1 = new ArrayList<>(Arrays.asList(h1.split("\\.")));
+            Collections.reverse(l1);
+            String r1 = String.join(".", l1);
+            List<String> l2 = new ArrayList<>(Arrays.asList(h2.split("\\.")));
+            Collections.reverse(l2);
+            String r2 = String.join(".", l2);
+            return r1.compareTo(r2);
+        }
+    }
+
+}
--- a/test/langtools/tools/javac/Paths/Util.sh	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/tools/javac/Paths/Util.sh	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2003, 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
@@ -24,10 +24,10 @@
 # Utilities for shell tests
 
 : ${TESTSRC=.} ${TESTCLASSES=.}
-  java="${TESTJAVA+${TESTJAVA}/bin/}java"
- javac="${TESTJAVA+${TESTJAVA}/bin/}javac"
-   jar="${TESTJAVA+${TESTJAVA}/bin/}jar"
-jimage="${TESTJAVA+${TESTJAVA}/bin/}jimage"
+  java="${TESTJAVA+${TESTJAVA}/bin/}java${EXE_SUFFIX}"
+ javac="${TESTJAVA+${TESTJAVA}/bin/}javac${EXE_SUFFIX}"
+   jar="${TESTJAVA+${TESTJAVA}/bin/}jar${EXE_SUFFIX}"
+jimage="${TESTJAVA+${TESTJAVA}/bin/}jimage${EXE_SUFFIX}"
 
 case `uname -s` in
   Windows*|CYGWIN*)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/T8215482/NPETypeVarWithOuterBoundTest.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/*
+ * @test
+ * @bug 8215482
+ * @summary check for cycles in type variables can provoke NPE
+ * @compile NPETypeVarWithOuterBoundTest.java
+ */
+
+class NPETypeVarWithOuterBoundTest <A extends NPETypeVarWithOuterBoundTest.Inner, B> {
+    class Inner<F extends B> {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/generics/ClassBoundCheckingOverflow.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,12 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8214345
+ * @summary infinite recursion while checking super class
+ *
+ * @compile/fail/ref=ClassBoundCheckingOverflow.out -XDrawDiagnostics ClassBoundCheckingOverflow.java
+ */
+
+public class ClassBoundCheckingOverflow {
+    abstract class InfiniteLoop1<E extends InfiniteLoop1<E>> extends E {}
+    abstract class InfiniteLoop2<E extends InfiniteLoop2<E>> implements E {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/generics/ClassBoundCheckingOverflow.out	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,3 @@
+ClassBoundCheckingOverflow.java:10:70: compiler.err.type.found.req: (compiler.misc.type.parameter: E), (compiler.misc.type.req.class)
+ClassBoundCheckingOverflow.java:11:73: compiler.err.type.found.req: (compiler.misc.type.parameter: E), (compiler.misc.type.req.class)
+2 errors
--- a/test/langtools/tools/javac/processing/model/element/TestModuleElementNames.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/langtools/tools/javac/processing/model/element/TestModuleElementNames.java	Tue Jan 22 09:43:38 2019 -0500
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8163989
+ * @bug 8163989 8208371
  * @summary Test basic workings of naming methods on ModuleElement
  * @library /tools/javac/lib
  * @modules java.compiler
--- a/test/lib/jdk/test/lib/Platform.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/lib/jdk/test/lib/Platform.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -325,6 +325,21 @@
         }
     }
 
+    /*
+     * Returns name of system variable containing paths to shared native libraries.
+     */
+    public static String sharedLibraryPathVariableName() {
+        if (isWindows()) {
+            return "PATH";
+        } else if (isOSX()) {
+            return "DYLD_LIBRARY_PATH";
+        } else if (isAix()) {
+            return "LIBPATH";
+        } else {
+            return "LD_LIBRARY_PATH";
+        }
+    }
+
     public static boolean isDefaultCDSArchiveSupported() {
         return (is64bit()  &&
                 isServer() &&
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/lib/jdk/test/lib/SA/SATestUtils.java	Tue Jan 22 09:43:38 2019 -0500
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 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.
+ */
+package jdk.test.lib.SA;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.ArrayList;
+import jdk.test.lib.Asserts;
+import jdk.test.lib.Platform;
+import java.util.concurrent.TimeUnit;
+
+public class SATestUtils {
+
+    public static boolean canAddPrivileges()
+       throws IOException, InterruptedException {
+       List<String> echoList = new ArrayList<String>();
+       echoList.add("sudo");
+       echoList.add("-E");
+       echoList.add("/bin/echo");
+       echoList.add("'Checking for sudo'");
+       ProcessBuilder pb = new ProcessBuilder(echoList);
+       Process echoProcess = pb.start();
+       if (echoProcess.waitFor(60, TimeUnit.SECONDS) == false) {
+           // 'sudo' has been added but we don't have a no-password
+           // entry for the user in the /etc/sudoers list. Could
+           // have timed out waiting for the password. Skip the
+           // test if there is a timeout here.
+           System.out.println("Timed out waiting for the password to be entered.");
+           echoProcess.destroyForcibly();
+           return false;
+       }
+       if (echoProcess.exitValue() == 0) {
+           return true;
+       }
+       java.io.InputStream is = echoProcess.getErrorStream();
+       String err = new String(is.readAllBytes());
+       System.out.println(err);
+       // 'sudo' has been added but we don't have a no-password
+       // entry for the user in the /etc/sudoers list. Check for
+       // the sudo error message and skip the test.
+       if (err.contains("no tty present") ||
+           err.contains("a password is required")) {
+           return false;
+       } else {
+           throw new Error("Unknown Error from 'sudo'");
+       }
+    }
+
+    public static List<String> addPrivileges(List<String> cmdStringList)
+        throws IOException {
+        Asserts.assertTrue(Platform.isOSX());
+
+        System.out.println("Adding 'sudo -E' to the command.");
+        List<String> outStringList = new ArrayList<String>();
+        outStringList.add("sudo");
+        outStringList.add("-E");
+        outStringList.addAll(cmdStringList);
+        return outStringList;
+    }
+}
--- a/test/micro/org/openjdk/bench/vm/lang/LockUnlock.java	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/micro/org/openjdk/bench/vm/lang/LockUnlock.java	Tue Jan 22 09:43:38 2019 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -30,6 +30,7 @@
 import org.openjdk.jmh.annotations.Scope;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Threads;
 
 import java.util.concurrent.TimeUnit;
 
@@ -116,4 +117,16 @@
             return fact(n - 1) * n;
         }
     }
+
+    /**
+     * With two threads lockObject1 will be contended so should be
+     * inflated.
+     */
+    @Threads(2)
+    @Benchmark
+    public void testContendedLock() {
+        synchronized (lockObject1) {
+            dummyInt1++;
+        }
+    }
 }
--- a/test/nashorn/script/nosecurity/treeapi/diagnostic.js.EXPECTED	Tue Jan 22 09:24:58 2019 -0500
+++ b/test/nashorn/script/nosecurity/treeapi/diagnostic.js.EXPECTED	Tue Jan 22 09:43:38 2019 -0500
@@ -80,7 +80,7 @@
     "columnNumber": "15",
     "kind": "ERROR",
     "position": "15",
-    "message": "test.js:1:15 Unclosed group near index 9\n([a-z])+(\n         ^\n    /([a-z])+(/;\n               ^",
+    "message": "test.js:1:15 Unclosed group near index 9\n([a-z])+(\n    /([a-z])+(/;\n               ^",
     "lineNumber": "1"
   },
   {