< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp

Print this page

 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
 26 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
 27 
 28 #include "gc/shared/accessBarrierSupport.hpp"
 29 #include "gc/shared/barrierSet.hpp"
 30 #include "gc/shenandoah/shenandoahHeap.hpp"
 31 #include "gc/shenandoah/shenandoahSATBMarkQueueSet.hpp"
 32 
 33 class ShenandoahBarrierSetAssembler;
 34 
 35 class ShenandoahBarrierSet: public BarrierSet {
 36 public:
 37   enum ArrayCopyStoreValMode {
 38     NONE,
 39     RESOLVE_BARRIER,
 40     EVAC_BARRIER
 41   };
 42 private:
 43 
 44   ShenandoahHeap* _heap;
 45   BufferNode::Allocator _satb_mark_queue_buffer_allocator;
 46   ShenandoahSATBMarkQueueSet _satb_mark_queue_set;
 47 
 48 public:
 49   ShenandoahBarrierSet(ShenandoahHeap* heap);
 50 
 51   static ShenandoahBarrierSetAssembler* assembler();
 52 
 53   inline static ShenandoahBarrierSet* barrier_set() {
 54     return barrier_set_cast<ShenandoahBarrierSet>(BarrierSet::barrier_set());
 55   }
 56 
 57   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
 58     return barrier_set()->_satb_mark_queue_set;
 59   }
 60 
 61   static bool need_load_reference_barrier(DecoratorSet decorators, BasicType type);

 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
 26 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSET_HPP
 27 
 28 #include "gc/shared/accessBarrierSupport.hpp"
 29 #include "gc/shared/barrierSet.hpp"
 30 #include "gc/shenandoah/shenandoahHeap.hpp"
 31 #include "gc/shenandoah/shenandoahSATBMarkQueueSet.hpp"
 32 
 33 class ShenandoahBarrierSetAssembler;
 34 
 35 class ShenandoahBarrierSet: public BarrierSet {






 36 private:
 37 
 38   ShenandoahHeap* _heap;
 39   BufferNode::Allocator _satb_mark_queue_buffer_allocator;
 40   ShenandoahSATBMarkQueueSet _satb_mark_queue_set;
 41 
 42 public:
 43   ShenandoahBarrierSet(ShenandoahHeap* heap);
 44 
 45   static ShenandoahBarrierSetAssembler* assembler();
 46 
 47   inline static ShenandoahBarrierSet* barrier_set() {
 48     return barrier_set_cast<ShenandoahBarrierSet>(BarrierSet::barrier_set());
 49   }
 50 
 51   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
 52     return barrier_set()->_satb_mark_queue_set;
 53   }
 54 
 55   static bool need_load_reference_barrier(DecoratorSet decorators, BasicType type);
< prev index next >