< prev index next > src/hotspot/share/gc/shared/c2/barrierSetC2.hpp
Print this page
// Preserve the value in reg across runtime calls in this barrier.
void preserve(Register reg);
// Do not preserve the value in reg across runtime calls in this barrier.
void dont_preserve(Register reg);
+ // Check if register is in preserved set
+ bool is_preserved(Register reg);
// Set of registers whose value needs to be preserved across runtime calls in this barrier.
const RegMask& preserve_set() const;
};
// This is the top-level class for the backend of the Access API in C2.
virtual bool matcher_is_store_load_barrier(Node* x, uint xop) const { return false; }
// Whether the given phi node joins OOPs from fast and slow allocation paths.
static bool is_allocation(const Node* node);
// Elide GC barriers from a Mach node according to elide_dominated_barriers().
! virtual void elide_dominated_barrier(MachNode* mach) const { }
// Elide GC barriers from instructions in 'accesses' if they are dominated by
// instructions in 'access_dominators' (according to elide_mach_barrier()) and
// there is no safepoint poll in between.
void elide_dominated_barriers(Node_List& accesses, Node_List& access_dominators) const;
virtual void late_barrier_analysis() const { }
virtual bool matcher_is_store_load_barrier(Node* x, uint xop) const { return false; }
// Whether the given phi node joins OOPs from fast and slow allocation paths.
static bool is_allocation(const Node* node);
// Elide GC barriers from a Mach node according to elide_dominated_barriers().
! virtual void elide_dominated_barrier(MachNode* mach, MachNode* dominator) const { }
// Elide GC barriers from instructions in 'accesses' if they are dominated by
// instructions in 'access_dominators' (according to elide_mach_barrier()) and
// there is no safepoint poll in between.
void elide_dominated_barriers(Node_List& accesses, Node_List& access_dominators) const;
virtual void late_barrier_analysis() const { }
< prev index next >