< prev index next >

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

Print this page
@@ -29,21 +29,15 @@
  #include "gc/shenandoah/c2/shenandoahSupport.hpp"
  #include "utilities/growableArray.hpp"
  
  class ShenandoahBarrierSetC2State : public ArenaObj {
  private:
-   GrowableArray<ShenandoahIUBarrierNode*>* _iu_barriers;
    GrowableArray<ShenandoahLoadReferenceBarrierNode*>* _load_reference_barriers;
  
  public:
    ShenandoahBarrierSetC2State(Arena* comp_arena);
  
-   int iu_barriers_count() const;
-   ShenandoahIUBarrierNode* iu_barrier(int idx) const;
-   void add_iu_barrier(ShenandoahIUBarrierNode* n);
-   void remove_iu_barrier(ShenandoahIUBarrierNode * n);
- 
    int load_reference_barriers_count() const;
    ShenandoahLoadReferenceBarrierNode* load_reference_barrier(int idx) const;
    void add_load_reference_barrier(ShenandoahLoadReferenceBarrierNode* n);
    void remove_load_reference_barrier(ShenandoahLoadReferenceBarrierNode * n);
  };

@@ -71,11 +65,21 @@
                                      Node* val,
                                      const TypeOopPtr* val_type,
                                      Node* pre_val,
                                      BasicType bt) const;
  
-   Node* shenandoah_iu_barrier(GraphKit* kit, Node* obj) const;
+   Node* byte_map_base_node(GraphKit* kit) const;
+ 
+   void post_barrier(GraphKit* kit,
+                     Node* ctl,
+                     Node* store,
+                     Node* obj,
+                     Node* adr,
+                     uint adr_idx,
+                     Node* val,
+                     BasicType bt,
+                     bool use_precise) const;
  
    void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset,
                            Node* pre_val, bool need_mem_bar) const;
  
    static bool clone_needs_barrier(Node* src, PhaseGVN& gvn);

@@ -91,10 +95,11 @@
  
  public:
    static ShenandoahBarrierSetC2* bsc2();
  
    static bool is_shenandoah_wb_pre_call(Node* call);
+   static bool is_shenandoah_clone_call(Node* call);
    static bool is_shenandoah_lrb_call(Node* call);
    static bool is_shenandoah_marking_if(PhaseValues* phase, Node* n);
    static bool is_shenandoah_state_load(Node* n);
    static bool has_only_shenandoah_wb_pre_uses(Node* n);
  
< prev index next >