diff -r a21cad3fa448 -r 80abf702eed8 src/hotspot/share/gc/shared/collectedHeap.hpp --- a/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Jun 28 15:17:44 2018 +0200 +++ b/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Jun 28 14:22:28 2018 +0200 @@ -95,6 +95,7 @@ friend class VMStructs; friend class JVMCIVMStructs; friend class IsGCActiveMark; // Block structured external access to _is_gc_active + friend class MemAllocator; private: #ifdef ASSERT @@ -141,13 +142,6 @@ // Reinitialize tlabs before resuming mutators. virtual void resize_all_tlabs(); - // Allocate from the current thread's TLAB, with broken-out slow path. - inline static HeapWord* allocate_from_tlab(Klass* klass, size_t size, TRAPS); - static HeapWord* allocate_from_tlab_slow(Klass* klass, size_t size, TRAPS); - - inline static HeapWord* allocate_outside_tlab(Klass* klass, size_t size, - bool* gc_overhead_limit_was_exceeded, TRAPS); - // Raw memory allocation facilities // The obj and array allocate methods are covers for these methods. // mem_allocate() should never be @@ -155,29 +149,6 @@ virtual HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded) = 0; - // Allocate an uninitialized block of the given size, or returns NULL if - // this is impossible. - inline static HeapWord* common_mem_allocate_noinit(Klass* klass, size_t size, TRAPS); - - // Like allocate_init, but the block returned by a successful allocation - // is guaranteed initialized to zeros. - inline static HeapWord* common_mem_allocate_init(Klass* klass, size_t size, TRAPS); - - // Helper functions for (VM) allocation. - inline static void post_allocation_setup_common(Klass* klass, HeapWord* obj); - inline static void post_allocation_setup_no_klass_install(Klass* klass, - HeapWord* objPtr); - - inline static void post_allocation_setup_obj(Klass* klass, HeapWord* obj, int size); - - inline static void post_allocation_setup_array(Klass* klass, - HeapWord* obj, int length); - - inline static void post_allocation_setup_class(Klass* klass, HeapWord* obj, int size); - - // Clears an allocated object. - inline static void init_obj(HeapWord* obj, size_t size); - // Filler object utilities. static inline size_t filler_array_hdr_size(); static inline size_t filler_array_min_size(); @@ -194,21 +165,7 @@ virtual void trace_heap(GCWhen::Type when, const GCTracer* tracer); - // Internal allocation methods. - inline static HeapWord* common_allocate_memory(Klass* klass, int size, - void (*post_setup)(Klass*, HeapWord*, int), - int size_for_post, bool init_memory, - TRAPS); - - // Internal allocation method for common obj/class/array allocations. - inline static HeapWord* allocate_memory(Klass* klass, int size, - void (*post_setup)(Klass*, HeapWord*, int), - int size_for_post, bool init_memory, - TRAPS); - // Verification functions - virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) - PRODUCT_RETURN; virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) PRODUCT_RETURN; debug_only(static void check_for_valid_allocation_state();) @@ -328,18 +285,9 @@ } GCCause::Cause gc_cause() { return _gc_cause; } - // General obj/array allocation facilities. - inline static oop obj_allocate(Klass* klass, int size, TRAPS); - inline static oop array_allocate(Klass* klass, int size, int length, TRAPS); - inline static oop array_allocate_nozero(Klass* klass, int size, int length, TRAPS); - inline static oop class_allocate(Klass* klass, int size, TRAPS); - - // Raw memory allocation. This may or may not use TLAB allocations to satisfy the - // allocation. A GC implementation may override this function to satisfy the allocation - // in any way. But the default is to try a TLAB allocation, and otherwise perform - // mem_allocate. - virtual HeapWord* obj_allocate_raw(Klass* klass, size_t size, - bool* gc_overhead_limit_was_exceeded, TRAPS); + virtual oop obj_allocate(Klass* klass, int size, TRAPS); + virtual oop array_allocate(Klass* klass, int size, int length, bool do_zero, TRAPS); + virtual oop class_allocate(Klass* klass, int size, TRAPS); // Utilities for turning raw memory into filler objects. //