91 PhaseValues* phase,
92 Node* adr,
93 BasicType bt,
94 uint adr_idx) const;
95
96 bool g1_can_remove_post_barrier(GraphKit* kit,
97 PhaseValues* phase, Node* store,
98 Node* adr) const;
99
100 int get_store_barrier(C2Access& access) const;
101
102 virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
103 virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;
104 virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
105 Node* new_val, const Type* value_type) const;
106 virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
107 Node* new_val, const Type* value_type) const;
108 virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;
109
110 public:
111 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const;
112 virtual void eliminate_gc_barrier_data(Node* node) const;
113 virtual bool expand_barriers(Compile* C, PhaseIterGVN& igvn) const;
114 virtual uint estimated_barrier_size(const Node* node) const;
115 virtual bool can_initialize_object(const StoreNode* store) const;
116 virtual void clone_at_expansion(PhaseMacroExpand* phase,
117 ArrayCopyNode* ac) const;
118 virtual void* create_barrier_state(Arena* comp_arena) const;
119 virtual void emit_stubs(CodeBuffer& cb) const;
120 virtual void late_barrier_analysis() const;
121
122 #ifndef PRODUCT
123 virtual void dump_barrier_data(const MachNode* mach, outputStream* st) const;
124 #endif
125 };
126
127 #endif // SHARE_GC_G1_C2_G1BARRIERSETC2_HPP
|
91 PhaseValues* phase,
92 Node* adr,
93 BasicType bt,
94 uint adr_idx) const;
95
96 bool g1_can_remove_post_barrier(GraphKit* kit,
97 PhaseValues* phase, Node* store,
98 Node* adr) const;
99
100 int get_store_barrier(C2Access& access) const;
101
102 virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
103 virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;
104 virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
105 Node* new_val, const Type* value_type) const;
106 virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
107 Node* new_val, const Type* value_type) const;
108 virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;
109
110 public:
111 virtual void eliminate_gc_barrier(PhaseIterGVN* igvn, Node* node) const;
112 virtual void eliminate_gc_barrier_data(Node* node) const;
113 virtual bool expand_barriers(Compile* C, PhaseIterGVN& igvn) const;
114 virtual uint estimated_barrier_size(const Node* node) const;
115 virtual bool can_initialize_object(const StoreNode* store) const;
116 virtual void clone_at_expansion(PhaseMacroExpand* phase,
117 ArrayCopyNode* ac) const;
118 virtual void* create_barrier_state(Arena* comp_arena) const;
119 virtual void emit_stubs(CodeBuffer& cb) const;
120 virtual void late_barrier_analysis() const;
121
122 #ifndef PRODUCT
123 virtual void dump_barrier_data(const MachNode* mach, outputStream* st) const;
124 #endif
125 };
126
127 #endif // SHARE_GC_G1_C2_G1BARRIERSETC2_HPP
|