330
331 const char* name() const /* override */;
332 HeapWord* allocate_new_tlab(size_t word_size) /* override */;
333 void print_on(outputStream* st) const /* override */;
334 void print_extended_on(outputStream *st) const /* override */;
335
336 ShenandoahHeap::Name kind() const /* override */{
337 return CollectedHeap::Shenandoah;
338 }
339
340 jint initialize() /* override */;
341 void post_initialize() /* override */;
342 size_t capacity() const /* override */;
343 size_t used() const /* override */;
344 size_t committed() const;
345 bool is_maximal_no_gc() const /* override */;
346 size_t max_capacity() const /* override */;
347 size_t initial_capacity() const /* override */;
348 bool is_in(const void* p) const /* override */;
349 bool is_scavengable(oop obj) /* override */;
350 HeapWord* mem_allocate(size_t size, bool* what) /* override */;
351 bool can_elide_tlab_store_barriers() const /* override */;
352 oop new_store_pre_barrier(JavaThread* thread, oop new_obj) /* override */;
353 bool can_elide_initializing_store_barrier(oop new_obj) /* override */;
354 bool card_mark_must_follow_store() const /* override */;
355 void collect(GCCause::Cause cause) /* override */;
356 void do_full_collection(bool clear_all_soft_refs) /* override */;
357 AdaptiveSizePolicy* size_policy() /* override */;
358 CollectorPolicy* collector_policy() const /* override */;
359 SoftRefPolicy* soft_ref_policy() /* override */;
360 void ensure_parsability(bool retire_tlabs) /* override */;
361 HeapWord* block_start(const void* addr) const /* override */;
362 size_t block_size(const HeapWord* addr) const /* override */;
363 bool block_is_obj(const HeapWord* addr) const /* override */;
364 jlong millis_since_last_gc() /* override */;
365 void prepare_for_verify() /* override */;
366 void print_gc_threads_on(outputStream* st) const /* override */;
367 void gc_threads_do(ThreadClosure* tcl) const /* override */;
368 void print_tracing_info() const /* override */;
369 void verify(VerifyOption vo) /* override */;
370 bool supports_tlab_allocation() const /* override */;
371 size_t tlab_capacity(Thread *thr) const /* override */;
372 void object_iterate(ObjectClosure* cl) /* override */;
373 void safe_object_iterate(ObjectClosure* cl) /* override */;
374 size_t unsafe_max_tlab_alloc(Thread *thread) const /* override */;
375 size_t max_tlab_size() const /* override */;
376 void resize_all_tlabs() /* override */;
377 void accumulate_statistics_all_gclabs() /* override */;
378 HeapWord* tlab_post_allocation_setup(HeapWord* obj) /* override */;
379 uint oop_extra_words() /* override */;
380 size_t tlab_used(Thread* ignored) const /* override */;
381 void stop() /* override */;
382 virtual void safepoint_synchronize_begin();
383 virtual void safepoint_synchronize_end();
384
385 WorkGang* get_safepoint_workers() { return _safepoint_workers; }
386
387 #ifndef CC_INTERP
388 void compile_prepare_oop(MacroAssembler* masm, Register obj) /* override */;
389 #endif
390
391 void register_nmethod(nmethod* nm);
392 void unregister_nmethod(nmethod* nm);
393
394 /* override: object pinning support */
395 bool supports_object_pinning() const { return true; }
396 oop pin_object(JavaThread* thread, oop obj);
397 void unpin_object(JavaThread* thread, oop obj);
398
|
330
331 const char* name() const /* override */;
332 HeapWord* allocate_new_tlab(size_t word_size) /* override */;
333 void print_on(outputStream* st) const /* override */;
334 void print_extended_on(outputStream *st) const /* override */;
335
336 ShenandoahHeap::Name kind() const /* override */{
337 return CollectedHeap::Shenandoah;
338 }
339
340 jint initialize() /* override */;
341 void post_initialize() /* override */;
342 size_t capacity() const /* override */;
343 size_t used() const /* override */;
344 size_t committed() const;
345 bool is_maximal_no_gc() const /* override */;
346 size_t max_capacity() const /* override */;
347 size_t initial_capacity() const /* override */;
348 bool is_in(const void* p) const /* override */;
349 bool is_scavengable(oop obj) /* override */;
350 HeapWord* mem_allocate(size_t size, Klass* klass, Thread* thread, bool* what) /* override */;
351 void fill_with_object_impl(HeapWord* start, size_t words, bool zap = true) /* override */;
352 bool can_elide_tlab_store_barriers() const /* override */;
353 oop new_store_pre_barrier(JavaThread* thread, oop new_obj) /* override */;
354 bool can_elide_initializing_store_barrier(oop new_obj) /* override */;
355 bool card_mark_must_follow_store() const /* override */;
356 void collect(GCCause::Cause cause) /* override */;
357 void do_full_collection(bool clear_all_soft_refs) /* override */;
358 AdaptiveSizePolicy* size_policy() /* override */;
359 CollectorPolicy* collector_policy() const /* override */;
360 SoftRefPolicy* soft_ref_policy() /* override */;
361 void ensure_parsability(bool retire_tlabs) /* override */;
362 HeapWord* block_start(const void* addr) const /* override */;
363 size_t block_size(const HeapWord* addr) const /* override */;
364 bool block_is_obj(const HeapWord* addr) const /* override */;
365 jlong millis_since_last_gc() /* override */;
366 void prepare_for_verify() /* override */;
367 void print_gc_threads_on(outputStream* st) const /* override */;
368 void gc_threads_do(ThreadClosure* tcl) const /* override */;
369 void print_tracing_info() const /* override */;
370 void verify(VerifyOption vo) /* override */;
371 bool supports_tlab_allocation() const /* override */;
372 size_t tlab_capacity(Thread *thr) const /* override */;
373 void object_iterate(ObjectClosure* cl) /* override */;
374 void safe_object_iterate(ObjectClosure* cl) /* override */;
375 size_t unsafe_max_tlab_alloc(Thread *thread) const /* override */;
376 size_t max_tlab_size() const /* override */;
377 void resize_all_tlabs() /* override */;
378 void accumulate_statistics_all_gclabs() /* override */;
379 uint oop_extra_words() /* override */;
380 size_t tlab_used(Thread* ignored) const /* override */;
381 void stop() /* override */;
382 virtual void safepoint_synchronize_begin();
383 virtual void safepoint_synchronize_end();
384
385 WorkGang* get_safepoint_workers() { return _safepoint_workers; }
386
387 #ifndef CC_INTERP
388 void compile_prepare_oop(MacroAssembler* masm, Register obj) /* override */;
389 #endif
390
391 void register_nmethod(nmethod* nm);
392 void unregister_nmethod(nmethod* nm);
393
394 /* override: object pinning support */
395 bool supports_object_pinning() const { return true; }
396 oop pin_object(JavaThread* thread, oop obj);
397 void unpin_object(JavaThread* thread, oop obj);
398
|