123 Node* expected_val,
124 Node* new_val,
125 const Type* value_type) const;
126 virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access,
127 Node* new_val,
128 const Type* val_type) const;
129
130 public:
131 virtual void* create_barrier_state(Arena* comp_arena) const;
132 virtual bool array_copy_requires_gc_barriers(bool tightly_coupled_alloc,
133 BasicType type,
134 bool is_clone,
135 bool is_clone_instance,
136 ArrayCopyPhase phase) const;
137 virtual void clone_at_expansion(PhaseMacroExpand* phase,
138 ArrayCopyNode* ac) const;
139
140 virtual void late_barrier_analysis() const;
141 virtual int estimate_stub_size() const;
142 virtual void emit_stubs(CodeBuffer& cb) const;
143 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const;
144 virtual void eliminate_gc_barrier_data(Node* node) const;
145
146 #ifndef PRODUCT
147 virtual void dump_barrier_data(const MachNode* mach, outputStream* st) const;
148 #endif
149 };
150
151 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP
|
123 Node* expected_val,
124 Node* new_val,
125 const Type* value_type) const;
126 virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access,
127 Node* new_val,
128 const Type* val_type) const;
129
130 public:
131 virtual void* create_barrier_state(Arena* comp_arena) const;
132 virtual bool array_copy_requires_gc_barriers(bool tightly_coupled_alloc,
133 BasicType type,
134 bool is_clone,
135 bool is_clone_instance,
136 ArrayCopyPhase phase) const;
137 virtual void clone_at_expansion(PhaseMacroExpand* phase,
138 ArrayCopyNode* ac) const;
139
140 virtual void late_barrier_analysis() const;
141 virtual int estimate_stub_size() const;
142 virtual void emit_stubs(CodeBuffer& cb) const;
143 virtual void eliminate_gc_barrier(PhaseIterGVN* igvn, Node* node) const;
144 virtual void eliminate_gc_barrier_data(Node* node) const;
145
146 #ifndef PRODUCT
147 virtual void dump_barrier_data(const MachNode* mach, outputStream* st) const;
148 #endif
149 };
150
151 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP
|