changeset 49397:2956d0ece7a9

8199282: Remove ValueObj class for allocation subclassing for gc code Reviewed-by: stefank, kbarrett
author coleenp
date Wed, 14 Mar 2018 07:27:19 -0400
parents 02076019c25d
children 93fe2fc5c093
files src/hotspot/share/adlc/arena.hpp src/hotspot/share/code/relocInfo.hpp src/hotspot/share/gc/cms/allocationStats.hpp src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp src/hotspot/share/gc/cms/freeChunk.hpp src/hotspot/share/gc/cms/promotionInfo.hpp src/hotspot/share/gc/g1/g1AllocRegion.hpp src/hotspot/share/gc/g1/g1BiasedArray.hpp src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp src/hotspot/share/gc/g1/g1CardLiveData.cpp src/hotspot/share/gc/g1/g1CardLiveData.hpp src/hotspot/share/gc/g1/g1CodeCacheRemSet.hpp src/hotspot/share/gc/g1/g1CollectedHeap.cpp src/hotspot/share/gc/g1/g1CollectionSet.hpp src/hotspot/share/gc/g1/g1CollectorState.hpp src/hotspot/share/gc/g1/g1ConcurrentMark.cpp src/hotspot/share/gc/g1/g1ConcurrentMark.hpp src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.hpp src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp src/hotspot/share/gc/g1/g1EdenRegions.hpp src/hotspot/share/gc/g1/g1HRPrinter.hpp src/hotspot/share/gc/g1/g1InitialMarkToMixedTimeTracker.hpp src/hotspot/share/gc/g1/g1MMUTracker.hpp src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp src/hotspot/share/gc/g1/g1Policy.cpp src/hotspot/share/gc/g1/g1Predictions.hpp src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp src/hotspot/share/gc/g1/g1RemSetSummary.cpp src/hotspot/share/gc/g1/g1RemSetSummary.hpp src/hotspot/share/gc/g1/g1SharedClosures.hpp src/hotspot/share/gc/g1/g1SurvivorRegions.hpp src/hotspot/share/gc/g1/g1YoungGenSizer.hpp src/hotspot/share/gc/g1/heapRegionRemSet.hpp src/hotspot/share/gc/g1/heapRegionSet.hpp src/hotspot/share/gc/g1/heapRegionType.hpp src/hotspot/share/gc/g1/ptrQueue.hpp src/hotspot/share/gc/g1/sparsePRT.hpp src/hotspot/share/gc/parallel/gcTaskManager.hpp src/hotspot/share/gc/parallel/psPromotionManager.hpp src/hotspot/share/gc/serial/markSweep.hpp src/hotspot/share/gc/shared/ageTable.hpp src/hotspot/share/gc/shared/blockOffsetTable.hpp src/hotspot/share/gc/shared/concurrentGCPhaseManager.hpp src/hotspot/share/gc/shared/gcTrace.hpp src/hotspot/share/gc/shared/oopStorage.hpp src/hotspot/share/gc/shared/oopStorage.inline.hpp src/hotspot/share/gc/shared/oopStorageParState.hpp src/hotspot/share/gc/shared/oopStorageParState.inline.hpp src/hotspot/share/gc/shared/preservedMarks.hpp src/hotspot/share/gc/shared/workgroup.hpp src/hotspot/share/memory/allocation.cpp src/hotspot/share/memory/allocation.hpp src/hotspot/share/memory/memRegion.hpp src/hotspot/share/prims/jvmtiEnvThreadState.hpp src/hotspot/share/runtime/handles.hpp src/hotspot/share/runtime/osThread.hpp src/hotspot/share/runtime/vframeArray.hpp src/hotspot/share/utilities/globalDefinitions_gcc.hpp src/hotspot/share/utilities/globalDefinitions_sparcWorks.hpp src/hotspot/share/utilities/globalDefinitions_visCPP.hpp src/hotspot/share/utilities/globalDefinitions_xlc.hpp test/hotspot/gtest/gc/shared/test_oopStorage.cpp
diffstat 64 files changed, 139 insertions(+), 213 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/share/adlc/arena.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/adlc/arena.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -25,17 +25,12 @@
 #ifndef SHARE_VM_ADLC_ARENA_HPP
 #define SHARE_VM_ADLC_ARENA_HPP
 
-// All classes in the virtual machine must be subclassed
-// by one of the following allocation classes:
+// All classes in adlc may be derived
+// from one of the following allocation classes:
 //
-//
-// For objects allocated in the C-heap (managed by: free & malloc).
+// For objects allocated in the C-heap (managed by: malloc & free).
 // - CHeapObj
 //
-//
-// For embedded objects.
-// - ValueObj
-//
 // For classes used as name spaces.
 // - AllStatic
 //
@@ -48,15 +43,6 @@
 };
 
 
-// Base class for objects used as value objects.
-// Calling new or delete will result in fatal error.
-
-class ValueObj {
- public:
-  void* operator new(size_t size) throw();
-  void operator delete(void* p);
-};
-
 // Base class for classes that constitute name spaces.
 
 class AllStatic {
--- a/src/hotspot/share/code/relocInfo.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/code/relocInfo.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -25,7 +25,6 @@
 #ifndef SHARE_VM_CODE_RELOCINFO_HPP
 #define SHARE_VM_CODE_RELOCINFO_HPP
 
-#include "memory/allocation.hpp"
 #include "runtime/os.hpp"
 #include "utilities/macros.hpp"
 
@@ -48,7 +47,7 @@
 //      oops in the code stream (strings, class loaders)
 //      Also, the source of relocation specs (oop_Relocation::spec, ...).
 //    RelocationHolder
-//      A ValueObj type which acts as a union holding a Relocation object.
+//      A value type which acts as a union holding a Relocation object.
 //      Represents a relocation spec passed into a CodeBuffer during assembly.
 //    RelocIterator
 //      A StackObj which iterates over the relocations associated with
--- a/src/hotspot/share/gc/cms/allocationStats.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/cms/allocationStats.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -27,11 +27,10 @@
 
 #include "gc/shared/gcUtil.hpp"
 #include "logging/log.hpp"
-#include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/macros.hpp"
 
-class AllocationStats VALUE_OBJ_CLASS_SPEC {
+class AllocationStats {
   // A duration threshold (in ms) used to filter
   // possibly unreliable samples.
   static float _threshold;
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -48,7 +48,7 @@
 class ObjectClosureCareful;
 class Klass;
 
-class LinearAllocBlock VALUE_OBJ_CLASS_SPEC {
+class LinearAllocBlock {
  public:
   LinearAllocBlock() : _ptr(0), _word_size(0), _refillSize(0),
     _allocation_size_limit(0) {}
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -79,7 +79,7 @@
 // we have _shifter == 0. and for the mod union table we have
 // shifter == CardTable::card_shift - LogHeapWordSize.)
 // XXX 64-bit issues in BitMap?
-class CMSBitMap VALUE_OBJ_CLASS_SPEC {
+class CMSBitMap {
   friend class VMStructs;
 
   HeapWord*    _bmStartWord;   // base address of range covered by map
@@ -331,7 +331,7 @@
 // Timing, allocation and promotion statistics for gc scheduling and incremental
 // mode pacing.  Most statistics are exponential averages.
 //
-class CMSStats VALUE_OBJ_CLASS_SPEC {
+class CMSStats {
  private:
   ConcurrentMarkSweepGeneration* const _cms_gen;   // The cms (old) gen.
 
--- a/src/hotspot/share/gc/cms/freeChunk.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/cms/freeChunk.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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 @@
 #ifndef SHARE_VM_GC_CMS_FREECHUNK_HPP
 #define SHARE_VM_GC_CMS_FREECHUNK_HPP
 
-#include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
 #include "oops/markOop.hpp"
 #include "runtime/mutex.hpp"
@@ -55,7 +54,7 @@
 // but are not part of the free list and should not be coalesced into larger
 // free blocks. These free blocks have their two LSB's set.
 
-class FreeChunk VALUE_OBJ_CLASS_SPEC {
+class FreeChunk {
   friend class VMStructs;
   // For 64 bit compressed oops, the markOop encodes both the size and the
   // indication that this is a FreeChunk and not an object.
--- a/src/hotspot/share/gc/cms/promotionInfo.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/cms/promotionInfo.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -26,12 +26,11 @@
 #define SHARE_VM_GC_CMS_PROMOTIONINFO_HPP
 
 #include "gc/cms/freeChunk.hpp"
-#include "memory/allocation.hpp"
 
 // Forward declarations
 class CompactibleFreeListSpace;
 
-class PromotedObject VALUE_OBJ_CLASS_SPEC {
+class PromotedObject {
  private:
   enum {
     promoted_mask  = right_n_bits(2),   // i.e. 0x3
@@ -114,7 +113,7 @@
   void print() const { print_on(tty); }
 };
 
-class PromotionInfo VALUE_OBJ_CLASS_SPEC {
+class PromotionInfo {
   bool            _tracking;      // set if tracking
   CompactibleFreeListSpace* _space; // the space to which this belongs
   PromotedObject* _promoHead;     // head of list of promoted objects
--- a/src/hotspot/share/gc/g1/g1AllocRegion.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1AllocRegion.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2017, 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
@@ -38,7 +38,7 @@
 // and a lock will need to be taken when the active region needs to be
 // replaced.
 
-class G1AllocRegion VALUE_OBJ_CLASS_SPEC {
+class G1AllocRegion {
 
 private:
   // The active allocating region we are currently allocating out
--- a/src/hotspot/share/gc/g1/g1BiasedArray.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1BiasedArray.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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,14 +25,13 @@
 #ifndef SHARE_VM_GC_G1_G1BIASEDARRAY_HPP
 #define SHARE_VM_GC_G1_G1BIASEDARRAY_HPP
 
-#include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
 #include "utilities/debug.hpp"
 
 // Implements the common base functionality for arrays that contain provisions
 // for accessing its elements using a biased index.
 // The element type is defined by the instantiating the template.
-class G1BiasedMappedArrayBase VALUE_OBJ_CLASS_SPEC {
+class G1BiasedMappedArrayBase {
   friend class VMStructs;
 public:
   typedef size_t idx_t;
--- a/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -109,7 +109,7 @@
   }
 };
 
-class G1BlockOffsetTablePart VALUE_OBJ_CLASS_SPEC {
+class G1BlockOffsetTablePart {
   friend class G1BlockOffsetTable;
   friend class VMStructs;
 private:
--- a/src/hotspot/share/gc/g1/g1CardLiveData.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CardLiveData.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -94,7 +94,7 @@
 
 // Helper class that provides functionality to generate the Live Data Count
 // information.
-class G1CardLiveDataHelper VALUE_OBJ_CLASS_SPEC {
+class G1CardLiveDataHelper {
 private:
   BitMapView _region_bm;
   BitMapView _card_bm;
--- a/src/hotspot/share/gc/g1/g1CardLiveData.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CardLiveData.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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 @@
 // Can be used for various purposes, like as remembered set for completely
 // coarsened remembered sets, scrubbing remembered sets or estimating liveness.
 // This information is created as part of the concurrent marking cycle.
-class G1CardLiveData VALUE_OBJ_CLASS_SPEC {
+class G1CardLiveData {
   friend class G1CardLiveDataHelper;
   friend class G1VerifyCardLiveDataTask;
 private:
--- a/src/hotspot/share/gc/g1/g1CodeCacheRemSet.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CodeCacheRemSet.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, 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
@@ -25,8 +25,6 @@
 #ifndef SHARE_VM_GC_G1_G1CODECACHEREMSET_HPP
 #define SHARE_VM_GC_G1_G1CODECACHEREMSET_HPP
 
-#include "memory/allocation.hpp"
-
 class CodeBlobClosure;
 class G1CodeRootSetTable;
 class HeapRegion;
@@ -34,7 +32,7 @@
 
 // Implements storage for a set of code roots.
 // All methods that modify the set are not thread-safe except if otherwise noted.
-class G1CodeRootSet VALUE_OBJ_CLASS_SPEC {
+class G1CodeRootSet {
   friend class G1CodeRootSetTest;
  private:
 
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -3391,7 +3391,7 @@
   size_t symbols_removed()   const { return (size_t)_symbols_removed; }
 };
 
-class G1CodeCacheUnloadingTask VALUE_OBJ_CLASS_SPEC {
+class G1CodeCacheUnloadingTask {
 private:
   static Monitor* _lock;
 
--- a/src/hotspot/share/gc/g1/g1CollectionSet.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CollectionSet.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -26,7 +26,6 @@
 #define SHARE_VM_GC_G1_G1COLLECTIONSET_HPP
 
 #include "gc/g1/collectionSetChooser.hpp"
-#include "memory/allocation.hpp"
 #include "utilities/debug.hpp"
 #include "utilities/globalDefinitions.hpp"
 
@@ -37,7 +36,7 @@
 class G1SurvivorRegions;
 class HeapRegion;
 
-class G1CollectionSet VALUE_OBJ_CLASS_SPEC {
+class G1CollectionSet {
   G1CollectedHeap* _g1;
   G1Policy* _policy;
 
--- a/src/hotspot/share/gc/g1/g1CollectorState.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1CollectorState.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, 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
@@ -26,12 +26,11 @@
 #define SHARE_VM_GC_G1_G1COLLECTORSTATE_HPP
 
 #include "gc/g1/g1YCTypes.hpp"
-#include "memory/allocation.hpp"
 #include "utilities/globalDefinitions.hpp"
 
 // Various state variables that indicate
 // the phase of the G1 collection.
-class G1CollectorState VALUE_OBJ_CLASS_SPEC {
+class G1CollectorState {
   // Indicates whether we are in "full young" or "mixed" GC mode.
   bool _gcs_are_young;
   // Was the last GC "young"?
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1859,7 +1859,7 @@
 }
 
 #ifndef PRODUCT
-class VerifyNoCSetOops VALUE_OBJ_CLASS_SPEC {
+class VerifyNoCSetOops {
 private:
   G1CollectedHeap* _g1h;
   const char* _phase;
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -29,6 +29,7 @@
 #include "gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp"
 #include "gc/g1/heapRegionSet.hpp"
 #include "gc/shared/taskqueue.hpp"
+#include "memory/allocation.hpp"
 
 class ConcurrentGCTimer;
 class ConcurrentMarkThread;
@@ -47,7 +48,7 @@
 
 // This is a container class for either an oop or a continuation address for
 // mark stack entries. Both are pushed onto the mark stack.
-class G1TaskQueueEntry VALUE_OBJ_CLASS_SPEC {
+class G1TaskQueueEntry {
 private:
   void* _holder;
 
@@ -127,7 +128,7 @@
 // Memory management is done using a mix of tracking a high water-mark indicating
 // that all chunks at a lower address are valid chunks, and a singly linked free
 // list connecting all empty chunks.
-class G1CMMarkStack VALUE_OBJ_CLASS_SPEC {
+class G1CMMarkStack {
 public:
   // Number of TaskQueueEntries that can fit in a single chunk.
   static const size_t EntriesPerChunk = 1024 - 1 /* One reference for the next pointer */;
@@ -227,7 +228,7 @@
 // Currently, we only support root region scanning once (at the start
 // of the marking cycle) and the root regions are all the survivor
 // regions populated during the initial-mark pause.
-class G1CMRootRegions VALUE_OBJ_CLASS_SPEC {
+class G1CMRootRegions {
 private:
   const G1SurvivorRegions* _survivors;
   G1ConcurrentMark*        _cm;
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkBitMap.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -26,7 +26,6 @@
 #define SHARE_VM_GC_G1_G1CONCURRENTMARKBITMAP_HPP
 
 #include "gc/g1/g1RegionToSpaceMapper.hpp"
-#include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
 #include "oops/oopsHierarchy.hpp"
 #include "utilities/bitMap.hpp"
@@ -39,7 +38,7 @@
 class HeapRegion;
 
 // Closure for iteration over bitmaps
-class G1CMBitMapClosure VALUE_OBJ_CLASS_SPEC {
+class G1CMBitMapClosure {
 private:
   G1ConcurrentMark* const _cm;
   G1CMTask* const _task;
@@ -62,7 +61,7 @@
 
 // A generic mark bitmap for concurrent marking.  This is essentially a wrapper
 // around the BitMap class that is based on HeapWords, with one bit per (1 << _shifter) HeapWords.
-class G1CMBitMap VALUE_OBJ_CLASS_SPEC {
+class G1CMBitMap {
 private:
   MemRegion _covered;    // The heap area covered by this bitmap.
 
--- a/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMarkObjArrayProcessor.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -26,7 +26,6 @@
 #define SHARE_VM_GC_G1_G1CONCURRENTMARKOBJARRAYPROCESSOR_HPP
 
 #include "oops/oopsHierarchy.hpp"
-#include "memory/allocation.hpp"
 
 class G1CMTask;
 
@@ -34,7 +33,7 @@
 // Instead of pushing large object arrays, we push continuations onto the
 // mark stack. These continuations are identified by having their LSB set.
 // This allows incremental processing of large objects.
-class G1CMObjArrayProcessor VALUE_OBJ_CLASS_SPEC {
+class G1CMObjArrayProcessor {
 private:
   // Reference to the task for doing the actual work.
   G1CMTask* _task;
--- a/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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 @@
 
 // Helper class for refinement thread management. Used to start, stop and
 // iterate over them.
-class G1ConcurrentRefineThreadControl VALUE_OBJ_CLASS_SPEC {
+class G1ConcurrentRefineThreadControl {
   G1ConcurrentRefine* _cr;
 
   G1ConcurrentRefineThread** _threads;
--- a/src/hotspot/share/gc/g1/g1EdenRegions.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1EdenRegions.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 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
@@ -26,11 +26,10 @@
 #define SHARE_VM_GC_G1_G1EDENREGIONS_HPP
 
 #include "gc/g1/heapRegion.hpp"
-#include "memory/allocation.hpp"
 #include "runtime/globals.hpp"
 #include "utilities/debug.hpp"
 
-class G1EdenRegions VALUE_OBJ_CLASS_SPEC {
+class G1EdenRegions {
 private:
   int _length;
 
--- a/src/hotspot/share/gc/g1/g1HRPrinter.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1HRPrinter.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, 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
@@ -27,11 +27,10 @@
 
 #include "gc/g1/heapRegion.hpp"
 #include "logging/log.hpp"
-#include "memory/allocation.hpp"
 
 #define SKIP_RETIRED_FULL_REGIONS 1
 
-class G1HRPrinter VALUE_OBJ_CLASS_SPEC {
+class G1HRPrinter {
 
 private:
 
--- a/src/hotspot/share/gc/g1/g1InitialMarkToMixedTimeTracker.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1InitialMarkToMixedTimeTracker.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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,7 +32,7 @@
 // After calling the initial mark/mixed gc notifications, the result can be
 // obtained in last_marking_time() once, after which the tracking resets.
 // Any pauses recorded by add_pause() will be subtracted from that results.
-class G1InitialMarkToMixedTimeTracker VALUE_OBJ_CLASS_SPEC {
+class G1InitialMarkToMixedTimeTracker {
 private:
   bool _active;
   double _initial_mark_end_time;
--- a/src/hotspot/share/gc/g1/g1MMUTracker.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1MMUTracker.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -81,7 +81,7 @@
   }
 };
 
-class G1MMUTrackerQueueElem VALUE_OBJ_CLASS_SPEC {
+class G1MMUTrackerQueueElem {
 private:
   double _start_time;
   double _end_time;
--- a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, 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
@@ -25,7 +25,6 @@
 #ifndef SHARE_VM_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
 #define SHARE_VM_GC_G1_G1PAGEBASEDVIRTUALSPACE_HPP
 
-#include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
 #include "memory/virtualspace.hpp"
 #include "utilities/align.hpp"
@@ -45,7 +44,7 @@
 // be committed using OS small pages.
 // The implementation gives an error when trying to commit or uncommit pages that
 // have already been committed or uncommitted.
-class G1PageBasedVirtualSpace VALUE_OBJ_CLASS_SPEC {
+class G1PageBasedVirtualSpace {
   friend class VMStructs;
  private:
   // Reserved area addresses.
--- a/src/hotspot/share/gc/g1/g1Policy.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1Policy.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -97,7 +97,7 @@
   phase_times()->note_gc_start();
 }
 
-class G1YoungLengthPredictor VALUE_OBJ_CLASS_SPEC {
+class G1YoungLengthPredictor {
   const bool _during_cm;
   const double _base_time_ms;
   const double _base_free_regions;
--- a/src/hotspot/share/gc/g1/g1Predictions.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1Predictions.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, 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
@@ -28,7 +28,7 @@
 #include "utilities/numberSeq.hpp"
 
 // Utility class containing various helper methods for prediction.
-class G1Predictions VALUE_OBJ_CLASS_SPEC {
+class G1Predictions {
  private:
   double _sigma;
 
--- a/src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, 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
@@ -31,7 +31,7 @@
 
 class WorkGang;
 
-class G1MappingChangedListener VALUE_OBJ_CLASS_SPEC {
+class G1MappingChangedListener {
  public:
   // Fired after commit of the memory, i.e. the memory this listener is registered
   // for can be accessed.
--- a/src/hotspot/share/gc/g1/g1RemSetSummary.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1RemSetSummary.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -145,7 +145,7 @@
   _sampling_thread_vtime = other->sampling_thread_vtime() - _sampling_thread_vtime;
 }
 
-class RegionTypeCounter VALUE_OBJ_CLASS_SPEC {
+class RegionTypeCounter {
 private:
   const char* _name;
 
--- a/src/hotspot/share/gc/g1/g1RemSetSummary.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1RemSetSummary.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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,7 +32,7 @@
 
 // A G1RemSetSummary manages statistical information about the G1RemSet
 
-class G1RemSetSummary VALUE_OBJ_CLASS_SPEC {
+class G1RemSetSummary {
 private:
   friend class GetRSThreadVTimeClosure;
 
--- a/src/hotspot/share/gc/g1/g1SharedClosures.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1SharedClosures.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -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
@@ -32,7 +32,7 @@
 
 // Simple holder object for a complete set of closures used by the G1 evacuation code.
 template <G1Mark Mark>
-class G1SharedClosures VALUE_OBJ_CLASS_SPEC {
+class G1SharedClosures {
 public:
   G1ParCopyClosure<G1BarrierNone, Mark> _oops;
   G1ParCopyClosure<G1BarrierCLD,  Mark> _oops_in_cld;
--- a/src/hotspot/share/gc/g1/g1SurvivorRegions.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1SurvivorRegions.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 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
@@ -25,14 +25,13 @@
 #ifndef SHARE_VM_GC_G1_G1SURVIVORREGIONS_HPP
 #define SHARE_VM_GC_G1_G1SURVIVORREGIONS_HPP
 
-#include "memory/allocation.hpp"
 #include "runtime/globals.hpp"
 
 template <typename T>
 class GrowableArray;
 class HeapRegion;
 
-class G1SurvivorRegions VALUE_OBJ_CLASS_SPEC {
+class G1SurvivorRegions {
 private:
   GrowableArray<HeapRegion*>* _regions;
 
--- a/src/hotspot/share/gc/g1/g1YoungGenSizer.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1YoungGenSizer.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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,7 @@
 #ifndef SHARE_VM_GC_G1_G1YOUNGGENSIZER_HPP
 #define SHARE_VM_GC_G1_G1YOUNGGENSIZER_HPP
 
-#include "memory/allocation.hpp"
+#include "utilities/globalDefinitions.hpp"
 
 // There are three command line options related to the young gen size:
 // NewSize, MaxNewSize and NewRatio (There is also -Xmn, but that is
@@ -63,7 +63,7 @@
 //
 // NewSize and MaxNewSize override NewRatio. So, NewRatio is ignored if it is
 // combined with either NewSize or MaxNewSize. (A warning message is printed.)
-class G1YoungGenSizer VALUE_OBJ_CLASS_SPEC {
+class G1YoungGenSizer {
 private:
   enum SizerKind {
     SizerDefaults,
--- a/src/hotspot/share/gc/g1/heapRegionRemSet.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/heapRegionRemSet.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -71,7 +71,7 @@
 //      is represented.  If a deleted PRT is re-used, a thread adding a bit,
 //      thinking the PRT is for a different region, does no harm.
 
-class OtherRegionsTable VALUE_OBJ_CLASS_SPEC {
+class OtherRegionsTable {
   friend class HeapRegionRemSetIterator;
 
   G1CollectedHeap* _g1h;
--- a/src/hotspot/share/gc/g1/heapRegionSet.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/heapRegionSet.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, 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
@@ -68,7 +68,7 @@
 // (e.g., length, region num, used bytes sum) plus any shared
 // functionality (e.g., verification).
 
-class HeapRegionSetBase VALUE_OBJ_CLASS_SPEC {
+class HeapRegionSetBase {
   friend class VMStructs;
 private:
   bool _is_humongous;
--- a/src/hotspot/share/gc/g1/heapRegionType.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/heapRegionType.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -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
@@ -26,12 +26,11 @@
 #define SHARE_VM_GC_G1_HEAPREGIONTYPE_HPP
 
 #include "gc/g1/g1HeapRegionTraceType.hpp"
-#include "memory/allocation.hpp"
 
 #define hrt_assert_is_valid(tag) \
   assert(is_valid((tag)), "invalid HR type: %u", (uint) (tag))
 
-class HeapRegionType VALUE_OBJ_CLASS_SPEC {
+class HeapRegionType {
 friend class VMStructs;
 
 private:
--- a/src/hotspot/share/gc/g1/ptrQueue.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/ptrQueue.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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 @@
 #ifndef SHARE_VM_GC_G1_PTRQUEUE_HPP
 #define SHARE_VM_GC_G1_PTRQUEUE_HPP
 
-#include "memory/allocation.hpp"
 #include "utilities/align.hpp"
 #include "utilities/sizes.hpp"
 
@@ -36,7 +35,7 @@
 
 class BufferNode;
 class PtrQueueSet;
-class PtrQueue VALUE_OBJ_CLASS_SPEC {
+class PtrQueue {
   friend class VMStructs;
 
   // Noncopyable - not defined.
@@ -257,7 +256,7 @@
 // In particular, the individual queues allocate buffers from this shared
 // set, and return completed buffers to the set.
 // All these variables are are protected by the TLOQ_CBL_mon. XXX ???
-class PtrQueueSet VALUE_OBJ_CLASS_SPEC {
+class PtrQueueSet {
 private:
   // The size of all buffers in the set.
   size_t _buffer_size;
--- a/src/hotspot/share/gc/g1/sparsePRT.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/g1/sparsePRT.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -186,8 +186,8 @@
   void print();
 };
 
-// ValueObj because will be embedded in HRRS iterator.
-class RSHashTableIter VALUE_OBJ_CLASS_SPEC {
+// This is embedded in HRRS iterator.
+class RSHashTableIter {
   // Return value indicating "invalid/no card".
   static const int NoCardFound = -1;
 
@@ -222,7 +222,7 @@
 class SparsePRTIter;
 class SparsePRTCleanupTask;
 
-class SparsePRT VALUE_OBJ_CLASS_SPEC {
+class SparsePRT {
   friend class SparsePRTCleanupTask;
 
   //  Iterations are done on the _cur hash table, since they only need to
@@ -334,7 +334,7 @@
 // to be processed at the beginning of the next GC pause. This lists
 // are concatenated into the single expanded list at the end of the
 // cleanup pause.
-class SparsePRTCleanupTask VALUE_OBJ_CLASS_SPEC {
+class SparsePRTCleanupTask {
 private:
   SparsePRT* _head;
   SparsePRT* _tail;
--- a/src/hotspot/share/gc/parallel/gcTaskManager.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/parallel/gcTaskManager.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, 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
@@ -272,7 +272,7 @@
   ~SynchronizedGCTaskQueue();
 };
 
-class WaitHelper VALUE_OBJ_CLASS_SPEC {
+class WaitHelper {
  private:
   Monitor*      _monitor;
   volatile bool _should_wait;
--- a/src/hotspot/share/gc/parallel/psPromotionManager.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/parallel/psPromotionManager.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, 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
@@ -30,7 +30,6 @@
 #include "gc/shared/gcTrace.hpp"
 #include "gc/shared/preservedMarks.hpp"
 #include "gc/shared/taskqueue.hpp"
-#include "memory/allocation.hpp"
 #include "memory/padded.hpp"
 #include "utilities/globalDefinitions.hpp"
 
@@ -50,7 +49,7 @@
 class PSOldGen;
 class ParCompactionManager;
 
-class PSPromotionManager VALUE_OBJ_CLASS_SPEC {
+class PSPromotionManager {
   friend class PSScavenge;
   friend class PSRefProcTaskExecutor;
  private:
--- a/src/hotspot/share/gc/serial/markSweep.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/serial/markSweep.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -200,7 +200,7 @@
   debug_only(virtual bool should_verify_oops() { return false; })
 };
 
-class PreservedMark VALUE_OBJ_CLASS_SPEC {
+class PreservedMark {
 private:
   oop _obj;
   markOop _mark;
--- a/src/hotspot/share/gc/shared/ageTable.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/ageTable.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -29,14 +29,14 @@
 #include "oops/oop.hpp"
 #include "runtime/perfData.hpp"
 
-/* Copyright (c) 1992, 2016, Oracle and/or its affiliates, and Stanford University.
+/* Copyright (c) 1992, 2018, Oracle and/or its affiliates, and Stanford University.
    See the LICENSE file for license information. */
 
 // Age table for adaptive feedback-mediated tenuring (scavenging)
 //
 // Note: all sizes are in oops
 
-class AgeTable VALUE_OBJ_CLASS_SPEC {
+class AgeTable {
   friend class VMStructs;
 
  public:
--- a/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/blockOffsetTable.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, 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
@@ -26,6 +26,7 @@
 #define SHARE_VM_GC_SHARED_BLOCKOFFSETTABLE_HPP
 
 #include "gc/shared/memset_with_concurrent_readers.hpp"
+#include "memory/allocation.hpp"
 #include "memory/memRegion.hpp"
 #include "memory/virtualspace.hpp"
 #include "runtime/globals.hpp"
@@ -77,7 +78,7 @@
 //////////////////////////////////////////////////////////////////////////
 // The BlockOffsetTable "interface"
 //////////////////////////////////////////////////////////////////////////
-class BlockOffsetTable VALUE_OBJ_CLASS_SPEC {
+class BlockOffsetTable {
   friend class VMStructs;
 protected:
   // These members describe the region covered by the table.
--- a/src/hotspot/share/gc/shared/concurrentGCPhaseManager.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/concurrentGCPhaseManager.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -38,7 +38,7 @@
   static const int IDLE_PHASE = 1;          // Concurrent processing is idle.
 
   // Stack of phase managers.
-  class Stack VALUE_OBJ_CLASS_SPEC {
+  class Stack {
     friend class ConcurrentGCPhaseManager;
 
   public:
--- a/src/hotspot/share/gc/shared/gcTrace.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/gcTrace.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -30,7 +30,6 @@
 #include "gc/shared/gcId.hpp"
 #include "gc/shared/gcName.hpp"
 #include "gc/shared/gcWhen.hpp"
-#include "memory/allocation.hpp"
 #include "memory/metaspace.hpp"
 #include "memory/referenceType.hpp"
 #include "utilities/macros.hpp"
@@ -50,7 +49,7 @@
 class TimePartitions;
 class BoolObjectClosure;
 
-class SharedGCInfo VALUE_OBJ_CLASS_SPEC {
+class SharedGCInfo {
  private:
   GCName _name;
   GCCause::Cause _cause;
@@ -88,7 +87,7 @@
   const Tickspan longest_pause() const { return _longest_pause; }
 };
 
-class ParallelOldGCInfo VALUE_OBJ_CLASS_SPEC {
+class ParallelOldGCInfo {
   void* _dense_prefix;
  public:
   ParallelOldGCInfo() : _dense_prefix(NULL) {}
@@ -100,7 +99,7 @@
 
 #if INCLUDE_ALL_GCS
 
-class G1YoungGCInfo VALUE_OBJ_CLASS_SPEC {
+class G1YoungGCInfo {
   G1YCType _type;
  public:
   G1YoungGCInfo() : _type(G1YCTypeEndSentinel) {}
--- a/src/hotspot/share/gc/shared/oopStorage.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/oopStorage.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -175,7 +175,7 @@
   class Block;                  // Forward decl; defined in .inline.hpp file.
   class BlockList;              // Forward decl for BlockEntry friend decl.
 
-  class BlockEntry VALUE_OBJ_CLASS_SPEC {
+  class BlockEntry {
     friend class BlockList;
 
     // Members are mutable, and we deal exclusively with pointers to
@@ -193,7 +193,7 @@
     ~BlockEntry();
   };
 
-  class BlockList VALUE_OBJ_CLASS_SPEC {
+  class BlockList {
     const Block* _head;
     const Block* _tail;
     const BlockEntry& (*_get_entry)(const Block& block);
--- a/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/oopStorage.inline.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -26,7 +26,6 @@
 #define SHARE_GC_SHARED_OOPSTORAGE_INLINE_HPP
 
 #include "gc/shared/oopStorage.hpp"
-#include "memory/allocation.hpp"
 #include "metaprogramming/conditional.hpp"
 #include "metaprogramming/isConst.hpp"
 #include "oops/oop.hpp"
@@ -127,7 +126,7 @@
 }
 
 template<typename Closure>
-class OopStorage::OopFn VALUE_OBJ_CLASS_SPEC {
+class OopStorage::OopFn {
 public:
   explicit OopFn(Closure* cl) : _cl(cl) {}
 
@@ -147,7 +146,7 @@
 }
 
 template<typename IsAlive, typename F>
-class OopStorage::IfAliveFn VALUE_OBJ_CLASS_SPEC {
+class OopStorage::IfAliveFn {
 public:
   IfAliveFn(IsAlive* is_alive, F f) : _is_alive(is_alive), _f(f) {}
 
@@ -175,7 +174,7 @@
 }
 
 template<typename F>
-class OopStorage::SkipNullFn VALUE_OBJ_CLASS_SPEC {
+class OopStorage::SkipNullFn {
 public:
   SkipNullFn(F f) : _f(f) {}
 
--- a/src/hotspot/share/gc/shared/oopStorageParState.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/oopStorageParState.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -26,7 +26,6 @@
 #define SHARE_GC_SHARED_OOPSTORAGEPARSTATE_HPP
 
 #include "gc/shared/oopStorage.hpp"
-#include "memory/allocation.hpp"
 #include "utilities/macros.hpp"
 
 #if INCLUDE_ALL_GCS
@@ -140,7 +139,7 @@
 //   If is_alive->do_object_b(*p) is false, then cl will not be
 //   invoked on p.
 
-class OopStorage::BasicParState VALUE_OBJ_CLASS_SPEC {
+class OopStorage::BasicParState {
   OopStorage* _storage;
   void* volatile _next_block;
   bool _concurrent;
@@ -164,7 +163,7 @@
 };
 
 template<bool concurrent, bool is_const>
-class OopStorage::ParState VALUE_OBJ_CLASS_SPEC {
+class OopStorage::ParState {
   BasicParState _basic_state;
 
 public:
@@ -178,7 +177,7 @@
 };
 
 template<>
-class OopStorage::ParState<false, false> VALUE_OBJ_CLASS_SPEC {
+class OopStorage::ParState<false, false> {
   BasicParState _basic_state;
 
 public:
--- a/src/hotspot/share/gc/shared/oopStorageParState.inline.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/oopStorageParState.inline.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -27,14 +27,13 @@
 
 #include "gc/shared/oopStorage.inline.hpp"
 #include "gc/shared/oopStorageParState.hpp"
-#include "memory/allocation.hpp"
 #include "metaprogramming/conditional.hpp"
 #include "utilities/macros.hpp"
 
 #if INCLUDE_ALL_GCS
 
 template<typename F>
-class OopStorage::BasicParState::AlwaysTrueFn VALUE_OBJ_CLASS_SPEC {
+class OopStorage::BasicParState::AlwaysTrueFn {
   F _f;
 
 public:
--- a/src/hotspot/share/gc/shared/preservedMarks.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/preservedMarks.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -33,9 +33,9 @@
 class PreservedMarksSet;
 class WorkGang;
 
-class PreservedMarks VALUE_OBJ_CLASS_SPEC {
+class PreservedMarks {
 private:
-  class OopAndMarkOop VALUE_OBJ_CLASS_SPEC {
+  class OopAndMarkOop {
   private:
     oop _o;
     markOop _m;
--- a/src/hotspot/share/gc/shared/workgroup.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/gc/shared/workgroup.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -54,7 +54,7 @@
 
 // An abstract task to be worked on by a gang.
 // You subclass this to supply your own work() method
-class AbstractGangTask VALUE_OBJ_CLASS_SPEC {
+class AbstractGangTask {
   const char* _name;
   const uint _gc_id;
 
--- a/src/hotspot/share/memory/allocation.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/memory/allocation.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -45,11 +45,6 @@
 void* StackObj::operator new [](size_t size)  throw() { ShouldNotCallThis(); return 0; }
 void  StackObj::operator delete [](void* p)           { ShouldNotCallThis(); }
 
-void* _ValueObj::operator new(size_t size)    throw() { ShouldNotCallThis(); return 0; }
-void  _ValueObj::operator delete(void* p)             { ShouldNotCallThis(); }
-void* _ValueObj::operator new [](size_t size) throw() { ShouldNotCallThis(); return 0; }
-void  _ValueObj::operator delete [](void* p)          { ShouldNotCallThis(); }
-
 void* MetaspaceObj::operator new(size_t size, ClassLoaderData* loader_data,
                                  size_t word_size,
                                  MetaspaceObj::Type type, TRAPS) throw() {
--- a/src/hotspot/share/memory/allocation.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/memory/allocation.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -37,21 +37,24 @@
 };
 typedef AllocFailStrategy::AllocFailEnum AllocFailType;
 
-// All classes in the virtual machine must be subclassed
-// by one of the following allocation classes:
+// The virtual machine must never call one of the implicitly declared
+// global allocation or deletion functions.  (Such calls may result in
+// link-time or run-time errors.)  For convenience and documentation of
+// intended use, classes in the virtual machine may be derived from one
+// of the following allocation classes, some of which define allocation
+// and deletion functions.
+// Note: std::malloc and std::free should never called directly.
+
 //
 // For objects allocated in the resource area (see resourceArea.hpp).
 // - ResourceObj
 //
-// For objects allocated in the C-heap (managed by: free & malloc).
+// For objects allocated in the C-heap (managed by: free & malloc and tracked with NMT)
 // - CHeapObj
 //
 // For objects allocated on the stack.
 // - StackObj
 //
-// For embedded objects.
-// - ValueObj
-//
 // For classes used as name spaces.
 // - AllStatic
 //
@@ -84,15 +87,10 @@
 //   char* AllocateHeap(size_t size, const char* name);
 //   void  FreeHeap(void* p);
 //
-// C-heap allocation can be traced using +PrintHeapAllocation.
-// malloc and free should therefore never called directly.
-
-// Base class for objects allocated in the C-heap.
 
 // In non product mode we introduce a super class for all allocation classes
 // that supports printing.
-// We avoid the superclass in product mode since some C++ compilers add
-// a word overhead for empty super classes.
+// We avoid the superclass in product mode to save space.
 
 #ifdef PRODUCT
 #define ALLOCATION_SUPER_CLASS_SPEC
@@ -188,31 +186,6 @@
   void  operator delete [](void* p);
 };
 
-// Base class for objects used as value objects.
-// Calling new or delete will result in fatal error.
-//
-// Portability note: Certain compilers (e.g. gcc) will
-// always make classes bigger if it has a superclass, even
-// if the superclass does not have any virtual methods or
-// instance fields. The HotSpot implementation relies on this
-// not to happen. So never make a ValueObj class a direct subclass
-// like this:
-//
-//   class A {
-//     ...
-//   }
-//
-// be defined as a an empty string "".
-//
-class _ValueObj {
- private:
-  void* operator new(size_t size) throw();
-  void  operator delete(void* p);
-  void* operator new [](size_t size) throw();
-  void  operator delete [](void* p);
-};
-
-
 // Base class for objects stored in Metaspace.
 // Calling delete will result in fatal error.
 //
--- a/src/hotspot/share/memory/memRegion.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/memory/memRegion.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -34,7 +34,7 @@
 
 // Note that MemRegions are passed by value, not by reference.
 // The intent is that they remain very small and contain no
-// objects. _ValueObj should never be allocated in heap but we do
+// objects. These should never be allocated in heap but we do
 // create MemRegions (in CardTableModRefBS) in heap so operator
 // new and operator new [] added for this special case.
 
--- a/src/hotspot/share/prims/jvmtiEnvThreadState.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/prims/jvmtiEnvThreadState.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -42,9 +42,9 @@
 //
 // Wrapper class for FramePop, used in the JvmtiFramePops class.
 //
-// Two problems: 1) this isn't being used as a ValueObj class, in
+// Two problems: 1) this isn't being used as a value class, in
 // several places there are constructors for it. 2) It seems like
-// overkill as a means to get an assert and name the geater than
+// overkill as a means to get an assert and name the greater than
 // operator.  I'm trying to to rewrite everything.
 
 class JvmtiFramePop {
--- a/src/hotspot/share/runtime/handles.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/runtime/handles.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -37,7 +37,7 @@
 // allocated and passed around via Handles within the VM. A handle is
 // simply an extra indirection allocated in a thread local handle area.
 //
-// A handle is a ValueObj, so it can be passed around as a value, can
+// A handle is a value object, so it can be passed around as a value, can
 // be used as a parameter w/o using &-passing, and can be returned as a
 // return value.
 //
--- a/src/hotspot/share/runtime/osThread.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/runtime/osThread.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -53,11 +53,6 @@
   ZOMBIE                        // All done, but not reclaimed yet
 };
 
-// I'd make OSThread a ValueObj embedded in Thread to avoid an indirection, but
-// the assembler test in java.cpp expects that it can install the OSThread of
-// the main thread into its own Thread at will.
-
-
 class OSThread: public CHeapObj<mtThread> {
   friend class VMStructs;
   friend class JVMCIVMStructs;
--- a/src/hotspot/share/runtime/vframeArray.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/runtime/vframeArray.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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,6 +25,7 @@
 #ifndef SHARE_VM_RUNTIME_VFRAMEARRAY_HPP
 #define SHARE_VM_RUNTIME_VFRAMEARRAY_HPP
 
+#include "memory/allocation.hpp"
 #include "oops/arrayOop.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/frame.inline.hpp"
@@ -46,7 +47,7 @@
 // A vframeArrayElement is an element of a vframeArray. Each element
 // represent an interpreter frame which will eventually be created.
 
-class vframeArrayElement : public _ValueObj {
+class vframeArrayElement {
   friend class VMStructs;
 
   private:
--- a/src/hotspot/share/utilities/globalDefinitions_gcc.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/utilities/globalDefinitions_gcc.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -230,7 +230,6 @@
 // Portability macros
 #define PRAGMA_INTERFACE             #pragma interface
 #define PRAGMA_IMPLEMENTATION        #pragma implementation
-#define VALUE_OBJ_CLASS_SPEC
 
 #if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
 #define TEMPLATE_TABLE_BUG
--- a/src/hotspot/share/utilities/globalDefinitions_sparcWorks.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/utilities/globalDefinitions_sparcWorks.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -240,7 +240,6 @@
 #define PRAGMA_INTERFACE
 #define PRAGMA_IMPLEMENTATION
 #define PRAGMA_IMPLEMENTATION_(arg)
-#define VALUE_OBJ_CLASS_SPEC    : public _ValueObj
 
 // Formatting.
 #ifdef _LP64
--- a/src/hotspot/share/utilities/globalDefinitions_visCPP.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/utilities/globalDefinitions_visCPP.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -151,7 +151,6 @@
 #define PRAGMA_INTERFACE
 #define PRAGMA_IMPLEMENTATION
 #define PRAGMA_IMPLEMENTATION_(arg)
-#define VALUE_OBJ_CLASS_SPEC    : public _ValueObj
 
 // Formatting.
 #define FORMAT64_MODIFIER "I64"
--- a/src/hotspot/share/utilities/globalDefinitions_xlc.hpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/src/hotspot/share/utilities/globalDefinitions_xlc.hpp	Wed Mar 14 07:27:19 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, 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.
  *
@@ -129,7 +129,6 @@
 // Portability macros
 #define PRAGMA_INTERFACE             #pragma interface
 #define PRAGMA_IMPLEMENTATION        #pragma implementation
-#define VALUE_OBJ_CLASS_SPEC
 
 // Formatting.
 #ifdef _LP64
--- a/test/hotspot/gtest/gc/shared/test_oopStorage.cpp	Wed Mar 14 07:07:18 2018 -0400
+++ b/test/hotspot/gtest/gc/shared/test_oopStorage.cpp	Wed Mar 14 07:27:19 2018 -0400
@@ -530,7 +530,7 @@
 }
 #endif // DISABLE_GARBAGE_ALLOCATION_STATUS_TESTS
 
-class OopStorageTest::CountingIterateClosure VALUE_OBJ_CLASS_SPEC {
+class OopStorageTest::CountingIterateClosure {
 public:
   size_t _const_count;
   size_t _const_non_null;
@@ -672,7 +672,7 @@
 const unsigned char OopStorageTestIteration::mark_const;
 const unsigned char OopStorageTestIteration::mark_non_const;
 
-class OopStorageTestIteration::VerifyState VALUE_OBJ_CLASS_SPEC {
+class OopStorageTestIteration::VerifyState {
 public:
   unsigned char _expected_mark;
   const oop* const* _entries;
@@ -742,7 +742,7 @@
   }
 };
 
-class OopStorageTestIteration::VerifyFn VALUE_OBJ_CLASS_SPEC {
+class OopStorageTestIteration::VerifyFn {
 public:
   VerifyFn(VerifyState* state, uint worker_id = 0) :
     _state(state),
@@ -762,7 +762,7 @@
   uint _worker_id;
 };
 
-class OopStorageTestIteration::VerifyClosure VALUE_OBJ_CLASS_SPEC {
+class OopStorageTestIteration::VerifyClosure {
 public:
   VerifyClosure(VerifyState* state, uint worker_id = 0) :
     _state(state),