src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp
changeset 53439 4b42f828e0c3
parent 53223 df6cbf676c70
child 54327 a4d19817609c
equal deleted inserted replaced
53438:9a88ffdc2f43 53439:4b42f828e0c3
    29 #include "opto/node.hpp"
    29 #include "opto/node.hpp"
    30 #include "utilities/growableArray.hpp"
    30 #include "utilities/growableArray.hpp"
    31 
    31 
    32 class LoadBarrierNode : public MultiNode {
    32 class LoadBarrierNode : public MultiNode {
    33 private:
    33 private:
    34   bool _weak;
    34   bool _weak;               // On strong or weak oop reference
    35   bool _writeback;          // Controls if the barrier writes the healed oop back to memory
    35   bool _writeback;          // Controls if the barrier writes the healed oop back to memory
    36                             // A swap on a memory location must never write back the healed oop
    36                             // A swap on a memory location must never write back the healed oop
    37   bool _oop_reload_allowed; // Controls if the barrier are allowed to reload the oop from memory
    37   bool _oop_reload_allowed; // Controls if the barrier are allowed to reload the oop from memory
    38                             // before healing, otherwise both the oop and the address must be
    38                             // before healing, otherwise both the oop and the address must be
    39                             // passed to the barrier from the oop
    39                             // passed to the barrier from the oop
   102                          Node *mem,
   102                          Node *mem,
   103                          Node *adr,
   103                          Node *adr,
   104                          const TypePtr *at,
   104                          const TypePtr *at,
   105                          const TypePtr* t,
   105                          const TypePtr* t,
   106                          MemOrd mo,
   106                          MemOrd mo,
   107                          ControlDependency control_dependency = DependsOnlyOnTest)
   107                          ControlDependency control_dependency = DependsOnlyOnTest) :
   108     : LoadPNode(c, mem, adr, at, t, mo, control_dependency) {
   108       LoadPNode(c, mem, adr, at, t, mo, control_dependency) {
   109     init_class_id(Class_LoadBarrierSlowReg);
   109     init_class_id(Class_LoadBarrierSlowReg);
   110   }
   110   }
   111 
   111 
   112   virtual const char * name() {
   112   virtual const char * name() {
   113     return "LoadBarrierSlowRegNode";
   113     return "LoadBarrierSlowRegNode";
   126                              Node *mem,
   126                              Node *mem,
   127                              Node *adr,
   127                              Node *adr,
   128                              const TypePtr *at,
   128                              const TypePtr *at,
   129                              const TypePtr* t,
   129                              const TypePtr* t,
   130                              MemOrd mo,
   130                              MemOrd mo,
   131                              ControlDependency control_dependency = DependsOnlyOnTest)
   131                              ControlDependency control_dependency = DependsOnlyOnTest) :
   132     : LoadPNode(c, mem, adr, at, t, mo, control_dependency) {
   132       LoadPNode(c, mem, adr, at, t, mo, control_dependency) {
   133     init_class_id(Class_LoadBarrierWeakSlowReg);
   133     init_class_id(Class_LoadBarrierWeakSlowReg);
   134   }
   134   }
   135 
   135 
   136   virtual const char * name() {
   136   virtual const char * name() {
   137     return "LoadBarrierWeakSlowRegNode";
   137     return "LoadBarrierWeakSlowRegNode";
   219   virtual void verify_gc_barriers(Compile* compile, CompilePhase phase) const;
   219   virtual void verify_gc_barriers(Compile* compile, CompilePhase phase) const;
   220 #endif
   220 #endif
   221 
   221 
   222   virtual bool escape_add_to_con_graph(ConnectionGraph* conn_graph, PhaseGVN* gvn, Unique_Node_List* delayed_worklist, Node* n, uint opcode) const;
   222   virtual bool escape_add_to_con_graph(ConnectionGraph* conn_graph, PhaseGVN* gvn, Unique_Node_List* delayed_worklist, Node* n, uint opcode) const;
   223   virtual bool escape_add_final_edges(ConnectionGraph* conn_graph, PhaseGVN* gvn, Node* n, uint opcode) const;
   223   virtual bool escape_add_final_edges(ConnectionGraph* conn_graph, PhaseGVN* gvn, Node* n, uint opcode) const;
   224 
       
   225 };
   224 };
   226 
   225 
   227 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP
   226 #endif // SHARE_GC_Z_C2_ZBARRIERSETC2_HPP