61
62 bool g1_can_remove_post_barrier(GraphKit* kit,
63 PhaseTransform* phase, Node* store,
64 Node* adr) const;
65
66 void g1_mark_card(GraphKit* kit,
67 IdealKit& ideal,
68 Node* card_adr,
69 Node* oop_store,
70 uint oop_alias_idx,
71 Node* index,
72 Node* index_adr,
73 Node* buffer,
74 const TypeFunc* tf) const;
75
76 // Helper for unsafe accesses, that may or may not be on the referent field.
77 // Generates the guards that check whether the result of
78 // Unsafe.getObject should be recorded in an SATB log buffer.
79 void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset, Node* pre_val, bool need_mem_bar) const;
80
81 static const TypeFunc* g1_wb_pre_Type();
82 static const TypeFunc* g1_wb_post_Type();
83
84 virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
85
86 public:
87 virtual bool is_gc_barrier_node(Node* node) const;
88 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const;
89 virtual Node* step_over_gc_barrier(Node* c) const;
90 };
91
92 #endif // SHARE_GC_SHARED_C2_G1BARRIERSETC2_HPP
|
61
62 bool g1_can_remove_post_barrier(GraphKit* kit,
63 PhaseTransform* phase, Node* store,
64 Node* adr) const;
65
66 void g1_mark_card(GraphKit* kit,
67 IdealKit& ideal,
68 Node* card_adr,
69 Node* oop_store,
70 uint oop_alias_idx,
71 Node* index,
72 Node* index_adr,
73 Node* buffer,
74 const TypeFunc* tf) const;
75
76 // Helper for unsafe accesses, that may or may not be on the referent field.
77 // Generates the guards that check whether the result of
78 // Unsafe.getObject should be recorded in an SATB log buffer.
79 void insert_pre_barrier(GraphKit* kit, Node* base_oop, Node* offset, Node* pre_val, bool need_mem_bar) const;
80
81 static const TypeFunc* write_ref_field_pre_entry_Type();
82 static const TypeFunc* write_ref_field_post_entry_Type();
83
84 virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const;
85
86 public:
87 virtual bool is_gc_barrier_node(Node* node) const;
88 virtual void eliminate_gc_barrier(PhaseMacroExpand* macro, Node* node) const;
89 virtual Node* step_over_gc_barrier(Node* c) const;
90 };
91
92 #endif // SHARE_GC_SHARED_C2_G1BARRIERSETC2_HPP
|