< prev index next >

src/hotspot/share/gc/shared/c2/barrierSetC2.hpp

Print this page
@@ -145,22 +145,26 @@
  
  // C2Access for parse time calls to the BarrierSetC2 backend.
  class C2ParseAccess: public C2Access {
  protected:
    GraphKit*         _kit;
+   Node* _ctl;
  
    void* barrier_set_state() const;
  
  public:
    C2ParseAccess(GraphKit* kit, DecoratorSet decorators,
-                 BasicType type, Node* base, C2AccessValuePtr& addr) :
+                 BasicType type, Node* base, C2AccessValuePtr& addr,
+                 Node* ctl = nullptr) :
      C2Access(decorators, type, base, addr),
-     _kit(kit) {
+     _kit(kit),
+     _ctl(ctl) {
      fixup_decorators();
    }
  
    GraphKit* kit() const           { return _kit; }
+   Node* control() const;
  
    virtual PhaseGVN& gvn() const;
    virtual bool is_parse_access() const { return true; }
  };
  

@@ -295,11 +299,11 @@
    virtual Node* atomic_cmpxchg_bool_at(C2AtomicParseAccess& access, Node* expected_val,
                                         Node* new_val, const Type* val_type) const;
    virtual Node* atomic_xchg_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;
    virtual Node* atomic_add_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;
  
-   virtual void clone(GraphKit* kit, Node* src, Node* dst, Node* size, bool is_array) const;
+   virtual void clone(GraphKit* kit, Node* src_base, Node* dst_base, Node* size, bool is_array) const;
  
    virtual Node* obj_allocate(PhaseMacroExpand* macro, Node* mem, Node* toobig_false, Node* size_in_bytes,
                               Node*& i_o, Node*& needgc_ctrl,
                               Node*& fast_oop_ctrl, Node*& fast_oop_rawmem,
                               intx prefetch_lines) const;

@@ -323,11 +327,11 @@
    virtual Node* step_over_gc_barrier(Node* c) const { return c; }
  
    // Support for macro expanded GC barriers
    virtual void register_potential_barrier_node(Node* node) const { }
    virtual void unregister_potential_barrier_node(Node* node) const { }
-   virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const { }
+   virtual void eliminate_gc_barrier(PhaseIterGVN* igvn, Node* node) const { }
    virtual void eliminate_gc_barrier_data(Node* node) const { }
    virtual void enqueue_useful_gc_barrier(PhaseIterGVN* igvn, Node* node) const {}
    virtual void eliminate_useless_gc_barriers(Unique_Node_List &useful, Compile* C) const {}
  
    // Allow barrier sets to have shared state that is preserved across a compilation unit.
< prev index next >