8215731: Move forward class definitions out of globalDefinitions.hpp
authorcoleenp
Fri, 04 Jan 2019 15:06:01 -0500
changeset 53149 259c36ef27df
parent 53148 17d568776429
child 53150 05429f43e036
8215731: Move forward class definitions out of globalDefinitions.hpp Summary: redistribute the forward declarations to the header files that need them. Reviewed-by: dholmes, lfoltan
src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp
src/hotspot/cpu/arm/nativeInst_arm_32.hpp
src/hotspot/cpu/sparc/nativeInst_sparc.hpp
src/hotspot/cpu/x86/nativeInst_x86.hpp
src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp
src/hotspot/share/classfile/symbolTable.hpp
src/hotspot/share/code/compiledMethod.hpp
src/hotspot/share/code/location.hpp
src/hotspot/share/code/nmethod.hpp
src/hotspot/share/compiler/compilerOracle.hpp
src/hotspot/share/gc/cms/cmsOopClosures.hpp
src/hotspot/share/gc/g1/dirtyCardQueue.hpp
src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp
src/hotspot/share/gc/shared/blockOffsetTable.hpp
src/hotspot/share/gc/shared/ptrQueue.hpp
src/hotspot/share/gc/shared/satbMarkQueue.hpp
src/hotspot/share/interpreter/bytecodeTracer.hpp
src/hotspot/share/interpreter/oopMapCache.hpp
src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp
src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp
src/hotspot/share/logging/logDecorators.hpp
src/hotspot/share/memory/allocation.hpp
src/hotspot/share/memory/virtualspace.hpp
src/hotspot/share/oops/instanceKlass.hpp
src/hotspot/share/oops/method.hpp
src/hotspot/share/oops/oopsHierarchy.hpp
src/hotspot/share/runtime/compilationPolicy.hpp
src/hotspot/share/runtime/deoptimization.hpp
src/hotspot/share/runtime/flags/jvmFlag.hpp
src/hotspot/share/runtime/frame.hpp
src/hotspot/share/runtime/jniHandles.hpp
src/hotspot/share/runtime/os.hpp
src/hotspot/share/runtime/osThread.hpp
src/hotspot/share/runtime/stackValue.hpp
src/hotspot/share/runtime/thread.hpp
src/hotspot/share/utilities/concurrentHashTable.hpp
src/hotspot/share/utilities/constantTag.hpp
src/hotspot/share/utilities/exceptions.hpp
src/hotspot/share/utilities/globalDefinitions.hpp
--- a/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp	Fri Jan 04 15:06:01 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, 2108, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -48,6 +48,8 @@
 // The base class for different kinds of native instruction abstractions.
 // Provides the primitive operations to manipulate code relative to this.
 
+class NativeCall;
+
 class NativeInstruction {
   friend class Relocation;
   friend bool is_NativeCallTrampolineStub_at(address);
--- a/src/hotspot/cpu/arm/nativeInst_arm_32.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/cpu/arm/nativeInst_arm_32.hpp	Fri Jan 04 15:06:01 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
@@ -45,6 +45,7 @@
 // The non-raw classes are the front-end entry point, hiding potential
 // back-end extensions or the actual instructions size.
 class NativeInstruction;
+class NativeCall;
 
 class RawNativeInstruction {
  public:
--- a/src/hotspot/cpu/sparc/nativeInst_sparc.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/cpu/sparc/nativeInst_sparc.hpp	Fri Jan 04 15:06:01 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
@@ -311,6 +311,8 @@
 
 // The NativeCall is an abstraction for accessing/manipulating native call imm32 instructions.
 // (used to manipulate inline caches, primitive & dll calls, etc.)
+class NativeCall;
+
 inline NativeCall* nativeCall_at(address instr);
 inline NativeCall* nativeCall_overwriting_at(address instr,
                                              address destination);
--- a/src/hotspot/cpu/x86/nativeInst_x86.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/cpu/x86/nativeInst_x86.hpp	Fri Jan 04 15:06:01 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
@@ -149,6 +149,7 @@
   return nativePltCall_at(at);
 }
 
+class NativeCall;
 inline NativeCall* nativeCall_at(address address);
 // The NativeCall is an abstraction for accessing/manipulating native call imm32/rel32off
 // instructions (used to manipulate inline caches, primitive & dll calls, etc.).
--- a/src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/os_cpu/linux_aarch64/globals_linux_aarch64.hpp	Fri Jan 04 15:06:01 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.
  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
@@ -40,6 +40,7 @@
 // Used on 64 bit platforms for UseCompressedOops base address
 define_pd_global(uintx,HeapBaseMinAddress,       2*G);
 
+class Thread;
 extern __thread Thread *aarch64_currentThread;
 
 #endif // OS_CPU_LINUX_AARCH64_VM_GLOBALS_LINUX_AARCH64_HPP
--- a/src/hotspot/share/classfile/symbolTable.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/classfile/symbolTable.hpp	Fri Jan 04 15:06:01 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
@@ -31,6 +31,8 @@
 #include "utilities/concurrentHashTable.hpp"
 #include "utilities/hashtable.hpp"
 
+class JavaThread;
+
 // TempNewSymbol acts as a handle class in a handle/body idiom and is
 // responsible for proper resource management of the body (which is a Symbol*).
 // The body is resource managed by a reference counting scheme.
--- a/src/hotspot/share/code/compiledMethod.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/code/compiledMethod.hpp	Fri Jan 04 15:06:01 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
@@ -36,6 +36,8 @@
 class xmlStream;
 class CompiledStaticCall;
 class NativeCallWrapper;
+class ScopeDesc;
+class CompiledIC;
 
 // This class is used internally by nmethods, to cache
 // exception/pc/handler information.
--- a/src/hotspot/share/code/location.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/code/location.hpp	Fri Jan 04 15:06:01 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
@@ -28,6 +28,9 @@
 #include "asm/assembler.hpp"
 #include "code/vmreg.hpp"
 
+class DebugInfoReadStream;
+class DebugInfoWriteStream;
+
 // A Location describes a concrete machine variable location
 // (such as integer or floating point register or a stack-held
 // variable). Used when generating debug-information for nmethods.
--- a/src/hotspot/share/code/nmethod.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/code/nmethod.hpp	Fri Jan 04 15:06:01 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
@@ -29,6 +29,7 @@
 
 class DepChange;
 class DirectiveSet;
+class DebugInformationRecorder;
 
 // nmethods (native methods) are the compiled code versions of Java methods.
 //
--- a/src/hotspot/share/compiler/compilerOracle.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/compiler/compilerOracle.hpp	Fri Jan 04 15:06:01 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
@@ -28,6 +28,8 @@
 #include "memory/allocation.hpp"
 #include "oops/oopsHierarchy.hpp"
 
+class methodHandle;
+
 // CompilerOracle is an interface for turning on and off compilation
 // for some methods
 
--- a/src/hotspot/share/gc/cms/cmsOopClosures.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/cms/cmsOopClosures.hpp	Fri Jan 04 15:06:01 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
@@ -39,6 +39,8 @@
 class MarkFromRootsClosure;
 class ParMarkFromRootsClosure;
 
+class Mutex;
+
 // Decode the oop and call do_oop on it.
 #define DO_OOP_WORK_DEFN                             \
   void do_oop(oop obj);                              \
--- a/src/hotspot/share/gc/g1/dirtyCardQueue.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/g1/dirtyCardQueue.hpp	Fri Jan 04 15:06:01 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
@@ -30,6 +30,8 @@
 
 class FreeIdSet;
 class DirtyCardQueueSet;
+class JavaThread;
+class Monitor;
 
 // A closure class for processing card table entries.  Note that we don't
 // require these closure objects to be stack-allocated.
--- a/src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp	Fri Jan 04 15:06:01 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 @@
 #include "gc/shared/satbMarkQueue.hpp"
 
 class G1CollectedHeap;
+class Monitor;
 class JavaThread;
 
 class G1SATBMarkQueueSet : public SATBMarkQueueSet {
--- a/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Fri Jan 04 15:06:01 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
@@ -265,6 +265,8 @@
   HeapWord* address_for_index(size_t index) const;
 };
 
+class Space;
+
 //////////////////////////////////////////////////////////////////////////
 // The BlockOffsetArray whose subtypes use the BlockOffsetSharedArray.
 //////////////////////////////////////////////////////////////////////////
--- a/src/hotspot/share/gc/shared/ptrQueue.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/shared/ptrQueue.hpp	Fri Jan 04 15:06:01 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
@@ -29,6 +29,7 @@
 #include "utilities/sizes.hpp"
 
 class Mutex;
+class Monitor;
 
 // There are various techniques that require threads to be able to log
 // addresses.  For example, a generational write barrier might log
--- a/src/hotspot/share/gc/shared/satbMarkQueue.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/gc/shared/satbMarkQueue.hpp	Fri Jan 04 15:06:01 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
@@ -29,6 +29,7 @@
 #include "memory/allocation.hpp"
 
 class JavaThread;
+class Monitor;
 class SATBMarkQueueSet;
 
 // Base class for processing the contents of a SATB buffer.
--- a/src/hotspot/share/interpreter/bytecodeTracer.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/interpreter/bytecodeTracer.hpp	Fri Jan 04 15:06:01 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
@@ -37,6 +37,8 @@
 
 // class BytecodeTracer is used by TraceBytecodes option and PrintMethodData
 
+class methodHandle;
+
 class BytecodeClosure;
 class BytecodeTracer: AllStatic {
  private:
--- a/src/hotspot/share/interpreter/oopMapCache.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/interpreter/oopMapCache.hpp	Fri Jan 04 15:06:01 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
@@ -60,6 +60,7 @@
   virtual void offset_do(int offset) = 0;
 };
 
+class OopMapCacheEntry;
 
 class InterpreterOopMap: ResourceObj {
   friend class OopMapCache;
--- a/src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp	Fri Jan 04 15:06:01 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
@@ -34,6 +34,8 @@
 class ObjectSample;
 class ObjectSampler;
 
+class VMThread;
+
 // Safepoint operation for emitting object sample events
 class EmitEventOperation : public VM_Operation {
  private:
--- a/src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp	Fri Jan 04 15:06:01 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
@@ -30,6 +30,7 @@
 class BoolObjectClosure;
 class ObjectSampler;
 class OopClosure;
+class JavaThread;
 class Thread;
 
 class LeakProfiler : public AllStatic {
--- a/src/hotspot/share/logging/logDecorators.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/logging/logDecorators.hpp	Fri Jan 04 15:06:01 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 @@
 
 #include "utilities/globalDefinitions.hpp"
 
+class outputStream;
+
 // The list of available decorators:
 // time         - Current time and date in ISO-8601 format
 // uptime       - Time since the start of the JVM in seconds and milliseconds (e.g., 6.567s)
--- a/src/hotspot/share/memory/allocation.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/memory/allocation.hpp	Fri Jan 04 15:06:01 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
@@ -31,6 +31,8 @@
 
 #include <new>
 
+class Thread;
+
 class AllocFailStrategy {
 public:
   enum AllocFailEnum { EXIT_OOM, RETURN_NULL };
--- a/src/hotspot/share/memory/virtualspace.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/memory/virtualspace.hpp	Fri Jan 04 15:06:01 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
@@ -27,6 +27,8 @@
 
 #include "utilities/globalDefinitions.hpp"
 
+class outputStream;
+
 // ReservedSpace is a data structure for reserving a contiguous address range.
 
 class ReservedSpace {
--- a/src/hotspot/share/oops/instanceKlass.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/oops/instanceKlass.hpp	Fri Jan 04 15:06:01 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
@@ -71,6 +71,8 @@
 class JvmtiCachedClassFieldMap;
 class nmethodBucket;
 class SuperTypeClosure;
+class OopMapCache;
+class InterpreterOopMap;
 
 // This is used in iterators below.
 class FieldClosure: public StackObj {
--- a/src/hotspot/share/oops/method.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/oops/method.hpp	Fri Jan 04 15:06:01 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
@@ -66,6 +66,7 @@
 class InlineTableSizes;
 class KlassSizeStats;
 class CompiledMethod;
+class InterpreterOopMap;
 
 class Method : public Metadata {
  friend class VMStructs;
--- a/src/hotspot/share/oops/oopsHierarchy.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/oops/oopsHierarchy.hpp	Fri Jan 04 15:06:01 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
@@ -73,7 +73,7 @@
 
 class Thread;
 class PromotedObject;
-
+class oopDesc;
 
 class oop {
   oopDesc* _o;
--- a/src/hotspot/share/runtime/compilationPolicy.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/compilationPolicy.hpp	Fri Jan 04 15:06:01 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
@@ -36,6 +36,7 @@
 // interpreted).
 class CompileTask;
 class CompileQueue;
+class RFrame;
 
 class CompilationPolicy : public CHeapObj<mtCompiler> {
   static CompilationPolicy* _policy;
--- a/src/hotspot/share/runtime/deoptimization.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/deoptimization.hpp	Fri Jan 04 15:06:01 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
@@ -30,8 +30,13 @@
 
 class ProfileData;
 class vframeArray;
+class MonitorInfo;
 class MonitorValue;
 class ObjectValue;
+class ScopeValue;
+class compiledVFrame;
+
+template<class E> class GrowableArray;
 
 class Deoptimization : AllStatic {
   friend class VMStructs;
--- a/src/hotspot/share/runtime/flags/jvmFlag.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/flags/jvmFlag.hpp	Fri Jan 04 15:06:01 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
@@ -28,6 +28,8 @@
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
 
+class outputStream;
+
 // function type that will construct default range string
 typedef const char* (*RangeStrFunc)(void);
 
--- a/src/hotspot/share/runtime/frame.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/frame.hpp	Fri Jan 04 15:06:01 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
@@ -39,6 +39,7 @@
 class CodeBlob;
 class FrameValues;
 class vframeArray;
+class JavaCallWrapper;
 
 
 // A frame represents a physical stack frame (an activation).  Frames
--- a/src/hotspot/share/runtime/jniHandles.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/jniHandles.hpp	Fri Jan 04 15:06:01 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
@@ -28,7 +28,9 @@
 #include "memory/allocation.hpp"
 #include "runtime/handles.hpp"
 
+class JavaThread;
 class OopStorage;
+class Thread;
 
 // Interface for creating and resolving local/global JNI handles
 
--- a/src/hotspot/share/runtime/os.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/os.hpp	Fri Jan 04 15:06:01 2019 -0500
@@ -53,6 +53,8 @@
 class JavaThread;
 class NativeCallStack;
 class methodHandle;
+class OSThread;
+class Mutex;
 
 template<class E> class GrowableArray;
 
--- a/src/hotspot/share/runtime/osThread.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/osThread.hpp	Fri Jan 04 15:06:01 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
@@ -53,6 +53,8 @@
   ZOMBIE                        // All done, but not reclaimed yet
 };
 
+typedef int (*OSThreadStartFunc)(void*);
+
 class OSThread: public CHeapObj<mtThread> {
   friend class VMStructs;
   friend class JVMCIVMStructs;
--- a/src/hotspot/share/runtime/stackValue.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/stackValue.hpp	Fri Jan 04 15:06:01 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
@@ -28,6 +28,10 @@
 #include "code/location.hpp"
 #include "runtime/handles.hpp"
 
+class BasicLock;
+class RegisterMap;
+class ScopeValue;
+
 class StackValue : public ResourceObj {
  private:
   BasicType _type;
--- a/src/hotspot/share/runtime/thread.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/runtime/thread.hpp	Fri Jan 04 15:06:01 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
@@ -67,6 +67,7 @@
 class ConcurrentLocksDump;
 class ParkEvent;
 class Parker;
+class MonitorInfo;
 
 class ciEnv;
 class CompileThread;
@@ -74,7 +75,10 @@
 class CompileTask;
 class CompileQueue;
 class CompilerCounters;
+
 class vframeArray;
+class vframe;
+class javaVFrame;
 
 class DeoptResourceMark;
 class jvmtiDeferredLocalVariableSet;
@@ -85,8 +89,7 @@
 class IdealGraphPrinter;
 
 class Metadata;
-template <class T, MEMFLAGS F> class ChunkedList;
-typedef ChunkedList<Metadata*, mtInternal> MetadataOnStackBuffer;
+class ResourceArea;
 
 DEBUG_ONLY(class ResourceMark;)
 
--- a/src/hotspot/share/utilities/concurrentHashTable.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/utilities/concurrentHashTable.hpp	Fri Jan 04 15:06:01 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
@@ -35,6 +35,7 @@
 // A CALLBACK_FUNC and LOOKUP_FUNC needs to be provided for get and insert.
 
 class Thread;
+class Mutex;
 
 template <typename VALUE, typename CONFIG, MEMFLAGS F>
 class ConcurrentHashTable : public CHeapObj<F> {
--- a/src/hotspot/share/utilities/constantTag.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/utilities/constantTag.hpp	Fri Jan 04 15:06:01 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
@@ -28,9 +28,11 @@
 #include "jvm.h"
 #include "utilities/globalDefinitions.hpp"
 
+
+class outputStream;
+
 // constant tags in Java .class files
 
-
 enum {
   // See jvm.h for shared JVM_CONSTANT_XXX tags
   // NOTE: replicated in SA in vm/agent/sun/jvm/hotspot/utilities/ConstantTag.java
--- a/src/hotspot/share/utilities/exceptions.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/utilities/exceptions.hpp	Fri Jan 04 15:06:01 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
@@ -52,6 +52,7 @@
 class Handle;
 class Symbol;
 class JavaCallArguments;
+class methodHandle;
 
 // The ThreadShadow class is a helper class to access the _pending_exception
 // field of the Thread class w/o having access to the Thread's interface (for
--- a/src/hotspot/share/utilities/globalDefinitions.hpp	Fri Jan 04 20:58:35 2019 +0100
+++ b/src/hotspot/share/utilities/globalDefinitions.hpp	Fri Jan 04 15:06:01 2019 -0500
@@ -820,87 +820,6 @@
   _thread_max_state         = 12  // maximum thread state+1 - used for statistics allocation
 };
 
-
-
-//----------------------------------------------------------------------------------------------------
-// 'Forward' declarations of frequently used classes
-// (in order to reduce interface dependencies & reduce
-// number of unnecessary compilations after changes)
-
-class ClassFileStream;
-
-class Thread;
-class  VMThread;
-class  JavaThread;
-class Threads;
-
-class VM_Operation;
-class VMOperationQueue;
-
-class CodeBlob;
-class  CompiledMethod;
-class   nmethod;
-class RuntimeBlob;
-class CompiledIC;
-class relocInfo;
-class ScopeDesc;
-class PcDesc;
-
-class RFrame;
-class  CompiledRFrame;
-class  InterpretedRFrame;
-
-class vframe;
-class   javaVFrame;
-class     interpretedVFrame;
-class     compiledVFrame;
-class   externalVFrame;
-class     entryVFrame;
-
-class RegisterMap;
-
-class Mutex;
-class Monitor;
-class BasicLock;
-class BasicObjectLock;
-
-class PeriodicTask;
-
-class JavaCallWrapper;
-
-class   oopDesc;
-
-class NativeCall;
-
-class StubQueue;
-
-class outputStream;
-
-class ResourceArea;
-
-class DebugInformationRecorder;
-class ScopeValue;
-class CompressedStream;
-class   DebugInfoReadStream;
-class   DebugInfoWriteStream;
-class LocationValue;
-
-class MonitorInfo;
-
-class OffsetClosure;
-class OopMapCache;
-class InterpreterOopMap;
-class OopMapCacheEntry;
-class OSThread;
-
-typedef int (*OSThreadStartFunc)(void*);
-
-class Space;
-
-class JavaValue;
-class methodHandle;
-class JavaCallArguments;
-
 //----------------------------------------------------------------------------------------------------
 // Special constants for debugging