< prev index next >

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

Print this page




 103   Node*             _base;
 104   C2AccessValuePtr& _addr;
 105   Node*             _raw_access;
 106 
 107   void fixup_decorators();
 108 
 109 public:
 110   C2Access(DecoratorSet decorators,
 111            BasicType type, Node* base, C2AccessValuePtr& addr) :
 112     _decorators(decorators),
 113     _type(type),
 114     _base(base),
 115     _addr(addr),
 116     _raw_access(NULL)
 117   {}
 118 
 119   DecoratorSet decorators() const { return _decorators; }
 120   Node* base() const              { return _base; }
 121   C2AccessValuePtr& addr() const  { return _addr; }
 122   BasicType type() const          { return _type; }
 123   bool is_oop() const             { return _type == T_OBJECT || _type == T_ARRAY; }
 124   bool is_raw() const             { return (_decorators & AS_RAW) != 0; }
 125   Node* raw_access() const        { return _raw_access; }
 126 
 127   void set_raw_access(Node* raw_access) { _raw_access = raw_access; }
 128   virtual void set_memory() {} // no-op for normal accesses, but not for atomic accesses.
 129 
 130   MemNode::MemOrd mem_node_mo() const;
 131   bool needs_cpu_membar() const;
 132 
 133   virtual PhaseGVN& gvn() const = 0;
 134   virtual bool is_parse_access() const { return false; }
 135   virtual bool is_opt_access() const { return false; }
 136 };
 137 
 138 // C2Access for parse time calls to the BarrierSetC2 backend.
 139 class C2ParseAccess: public C2Access {
 140 protected:
 141   GraphKit*         _kit;
 142 
 143   void* barrier_set_state() const;




 103   Node*             _base;
 104   C2AccessValuePtr& _addr;
 105   Node*             _raw_access;
 106 
 107   void fixup_decorators();
 108 
 109 public:
 110   C2Access(DecoratorSet decorators,
 111            BasicType type, Node* base, C2AccessValuePtr& addr) :
 112     _decorators(decorators),
 113     _type(type),
 114     _base(base),
 115     _addr(addr),
 116     _raw_access(NULL)
 117   {}
 118 
 119   DecoratorSet decorators() const { return _decorators; }
 120   Node* base() const              { return _base; }
 121   C2AccessValuePtr& addr() const  { return _addr; }
 122   BasicType type() const          { return _type; }
 123   bool is_oop() const             { return is_reference_type(_type); }
 124   bool is_raw() const             { return (_decorators & AS_RAW) != 0; }
 125   Node* raw_access() const        { return _raw_access; }
 126 
 127   void set_raw_access(Node* raw_access) { _raw_access = raw_access; }
 128   virtual void set_memory() {} // no-op for normal accesses, but not for atomic accesses.
 129 
 130   MemNode::MemOrd mem_node_mo() const;
 131   bool needs_cpu_membar() const;
 132 
 133   virtual PhaseGVN& gvn() const = 0;
 134   virtual bool is_parse_access() const { return false; }
 135   virtual bool is_opt_access() const { return false; }
 136 };
 137 
 138 // C2Access for parse time calls to the BarrierSetC2 backend.
 139 class C2ParseAccess: public C2Access {
 140 protected:
 141   GraphKit*         _kit;
 142 
 143   void* barrier_set_state() const;


< prev index next >