< prev index next >

src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp

Print this page

 50                                    BasicType bt, uint adr_idx) const;
 51   void satb_write_barrier_pre(GraphKit* kit, bool do_load,
 52                               Node* obj,
 53                               Node* adr,
 54                               uint alias_idx,
 55                               Node* val,
 56                               const TypeOopPtr* val_type,
 57                               Node* pre_val,
 58                               BasicType bt) const;
 59 
 60   void shenandoah_write_barrier_pre(GraphKit* kit,
 61                                     bool do_load,
 62                                     Node* obj,
 63                                     Node* adr,
 64                                     uint alias_idx,
 65                                     Node* val,
 66                                     const TypeOopPtr* val_type,
 67                                     Node* pre_val,
 68                                     BasicType bt) const;
 69 












 70   void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset,
 71                           Node* pre_val, bool need_mem_bar) const;
 72 
 73   static bool clone_needs_barrier(Node* src, PhaseGVN& gvn);
 74 
 75 protected:
 76   virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
 77   virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;
 78   virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
 79                                                Node* new_val, const Type* val_type) const;
 80   virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
 81                                                 Node* new_val, const Type* value_type) const;
 82   virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* val_type) const;
 83 
 84 public:
 85   static ShenandoahBarrierSetC2* bsc2();
 86 
 87   static bool is_shenandoah_wb_pre_call(Node* call);
 88   static bool is_shenandoah_clone_call(Node* call);
 89   static bool is_shenandoah_lrb_call(Node* call);

 50                                    BasicType bt, uint adr_idx) const;
 51   void satb_write_barrier_pre(GraphKit* kit, bool do_load,
 52                               Node* obj,
 53                               Node* adr,
 54                               uint alias_idx,
 55                               Node* val,
 56                               const TypeOopPtr* val_type,
 57                               Node* pre_val,
 58                               BasicType bt) const;
 59 
 60   void shenandoah_write_barrier_pre(GraphKit* kit,
 61                                     bool do_load,
 62                                     Node* obj,
 63                                     Node* adr,
 64                                     uint alias_idx,
 65                                     Node* val,
 66                                     const TypeOopPtr* val_type,
 67                                     Node* pre_val,
 68                                     BasicType bt) const;
 69 
 70   Node* byte_map_base_node(GraphKit* kit) const;
 71 
 72   void post_barrier(GraphKit* kit,
 73                     Node* ctl,
 74                     Node* store,
 75                     Node* obj,
 76                     Node* adr,
 77                     uint adr_idx,
 78                     Node* val,
 79                     BasicType bt,
 80                     bool use_precise) const;
 81 
 82   void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset,
 83                           Node* pre_val, bool need_mem_bar) const;
 84 
 85   static bool clone_needs_barrier(Node* src, PhaseGVN& gvn);
 86 
 87 protected:
 88   virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
 89   virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;
 90   virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
 91                                                Node* new_val, const Type* val_type) const;
 92   virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
 93                                                 Node* new_val, const Type* value_type) const;
 94   virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* val_type) const;
 95 
 96 public:
 97   static ShenandoahBarrierSetC2* bsc2();
 98 
 99   static bool is_shenandoah_wb_pre_call(Node* call);
100   static bool is_shenandoah_clone_call(Node* call);
101   static bool is_shenandoah_lrb_call(Node* call);
< prev index next >