91 |
91 |
92 public: |
92 public: |
93 static ShenandoahBarrierSetC2* bsc2(); |
93 static ShenandoahBarrierSetC2* bsc2(); |
94 |
94 |
95 static bool is_shenandoah_wb_pre_call(Node* call); |
95 static bool is_shenandoah_wb_pre_call(Node* call); |
96 static bool is_shenandoah_wb_call(Node* call); |
96 static bool is_shenandoah_lrb_call(Node* call); |
97 static bool is_shenandoah_marking_if(PhaseTransform *phase, Node* n); |
97 static bool is_shenandoah_marking_if(PhaseTransform *phase, Node* n); |
98 static bool is_shenandoah_state_load(Node* n); |
98 static bool is_shenandoah_state_load(Node* n); |
99 static bool has_only_shenandoah_wb_pre_uses(Node* n); |
99 static bool has_only_shenandoah_wb_pre_uses(Node* n); |
100 |
100 |
101 ShenandoahBarrierSetC2State* state() const; |
101 ShenandoahBarrierSetC2State* state() const; |
102 |
102 |
103 static const TypeFunc* write_ref_field_pre_entry_Type(); |
103 static const TypeFunc* write_ref_field_pre_entry_Type(); |
104 static const TypeFunc* shenandoah_clone_barrier_Type(); |
104 static const TypeFunc* shenandoah_clone_barrier_Type(); |
105 static const TypeFunc* shenandoah_write_barrier_Type(); |
105 static const TypeFunc* shenandoah_load_reference_barrier_Type(); |
106 virtual bool has_load_barriers() const { return true; } |
106 virtual bool has_load_barriers() const { return true; } |
107 |
107 |
108 // This is the entry-point for the backend to perform accesses through the Access API. |
108 // This is the entry-point for the backend to perform accesses through the Access API. |
109 virtual void clone(GraphKit* kit, Node* src, Node* dst, Node* size, bool is_array) const; |
109 virtual void clone(GraphKit* kit, Node* src, Node* dst, Node* size, bool is_array) const; |
110 |
110 |