--- old/src/share/vm/gc/shared/collectedHeap.hpp 2015-10-14 13:54:00.991209321 +0200 +++ new/src/share/vm/gc/shared/collectedHeap.hpp 2015-10-14 13:54:00.852212682 +0200 @@ -77,6 +77,7 @@ // CollectedHeap // GenCollectedHeap // G1CollectedHeap +// ShenandoahHeap // ParallelScavengeHeap // class CollectedHeap : public CHeapObj { @@ -185,7 +186,8 @@ enum Name { GenCollectedHeap, ParallelScavengeHeap, - G1CollectedHeap + G1CollectedHeap, + ShenandoahHeap }; static inline size_t filler_array_max_size() { @@ -194,6 +196,8 @@ virtual Name kind() const = 0; + virtual HeapWord* tlab_post_allocation_setup(HeapWord* obj); + /** * Returns JNI error code JNI_ENOMEM if memory could not be allocated, * and JNI_OK on success. @@ -298,6 +302,12 @@ inline static void post_allocation_install_obj_klass(KlassHandle klass, oop obj); + virtual uint oop_extra_words(); + +#ifndef CC_INTERP + virtual void compile_prepare_oop(MacroAssembler* masm, Register obj); +#endif + // Raw memory allocation facilities // The obj and array allocate methods are covers for these methods. // mem_allocate() should never be @@ -570,6 +580,12 @@ // Heap verification virtual void verify(bool silent, VerifyOption option) = 0; + // Shut down all GC workers and other GC related threads. + virtual void shutdown(); + + // Accumulate additional statistics from GCLABs. + virtual void accumulate_statistics_all_gclabs(); + // Non product verification and debugging. #ifndef PRODUCT // Support for PromotionFailureALot. Return true if it's time to cause a @@ -603,6 +619,10 @@ return false; } + virtual bool is_obj_ill(const oop obj) const { + return true; + } + /////////////// Unit tests /////////////// NOT_PRODUCT(static void test_is_in();)