< prev index next >

src/share/vm/gc/shared/genCollectedHeap.hpp

Print this page
rev 12906 : [mq]: gc_interface

@@ -24,10 +24,11 @@
 
 #ifndef SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
 #define SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
 
 #include "gc/shared/adaptiveSizePolicy.hpp"
+#include "gc/shared/cardTableModRefBS.hpp"
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/collectorPolicy.hpp"
 #include "gc/shared/generation.hpp"
 
 class StrongRootsScope;

@@ -268,30 +269,10 @@
   virtual size_t tlab_capacity(Thread* thr) const;
   virtual size_t tlab_used(Thread* thr) const;
   virtual size_t unsafe_max_tlab_alloc(Thread* thr) const;
   virtual HeapWord* allocate_new_tlab(size_t size);
 
-  // Can a compiler initialize a new object without store barriers?
-  // This permission only extends from the creation of a new object
-  // via a TLAB up to the first subsequent safepoint.
-  virtual bool can_elide_tlab_store_barriers() const {
-    return true;
-  }
-
-  virtual bool card_mark_must_follow_store() const {
-    return UseConcMarkSweepGC;
-  }
-
-  // We don't need barriers for stores to objects in the
-  // young gen and, a fortiori, for initializing stores to
-  // objects therein. This applies to DefNew+Tenured and ParNew+CMS
-  // only and may need to be re-examined in case other
-  // kinds of collectors are implemented in the future.
-  virtual bool can_elide_initializing_store_barrier(oop new_obj) {
-    return is_in_young(new_obj);
-  }
-
   // The "requestor" generation is performing some garbage collection
   // action for which it would be useful to have scratch space.  The
   // requestor promises to allocate no more than "max_alloc_words" in any
   // older generation (via promotion say.)   Any blocks of space that can
   // be provided are returned as a list of ScratchBlocks, sorted by

@@ -513,8 +494,14 @@
   void gc_prologue(bool full);
   void gc_epilogue(bool full);
 
 public:
   void stop();
+  void safepoint_synchronize_begin();
+  void safepoint_synchronize_end();
+
+  CardTableModRefBS *barrier_set() {
+    return barrier_set_cast<CardTableModRefBS>(CollectedHeap::barrier_set());
+  }
 };
 
 #endif // SHARE_VM_GC_SHARED_GENCOLLECTEDHEAP_HPP
< prev index next >