< prev index next >

src/hotspot/share/opto/locknode.hpp

Print this page

 76   RTMLockingCounters*       _rtm_counters; // RTM lock counters for inflated locks
 77   RTMLockingCounters* _stack_rtm_counters; // RTM lock counters for stack locks
 78 
 79 public:
 80   FastLockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) {
 81     init_req(0,ctrl);
 82     init_class_id(Class_FastLock);
 83     _rtm_counters = NULL;
 84     _stack_rtm_counters = NULL;
 85   }
 86   Node* obj_node() const { return in(1); }
 87   Node* box_node() const { return in(2); }
 88   void  set_box_node(Node* box) { set_req(2, box); }
 89 
 90   // FastLock and FastUnlockNode do not hash, we need one for each correspoding
 91   // LockNode/UnLockNode to avoid creating Phi's.
 92   virtual uint hash() const ;                  // { return NO_HASH; }
 93   virtual uint size_of() const;
 94   virtual bool cmp( const Node &n ) const ;    // Always fail, except on self
 95   virtual int Opcode() const;
 96   virtual const Type* Value(PhaseGVN* phase) const { return TypeInt::CC; }
 97   const Type *sub(const Type *t1, const Type *t2) const { return TypeInt::CC;}
 98 
 99   void create_rtm_lock_counter(JVMState* state);
100   RTMLockingCounters*       rtm_counters() const { return _rtm_counters; }
101   RTMLockingCounters* stack_rtm_counters() const { return _stack_rtm_counters; }
102 };
103 
104 
105 //------------------------------FastUnlockNode---------------------------------
106 class FastUnlockNode: public CmpNode {
107 public:
108   FastUnlockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) {
109     init_req(0,ctrl);
110     init_class_id(Class_FastUnlock);
111   }
112   Node* obj_node() const { return in(1); }
113   Node* box_node() const { return in(2); }
114 
115 
116   // FastLock and FastUnlockNode do not hash, we need one for each correspoding

 76   RTMLockingCounters*       _rtm_counters; // RTM lock counters for inflated locks
 77   RTMLockingCounters* _stack_rtm_counters; // RTM lock counters for stack locks
 78 
 79 public:
 80   FastLockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) {
 81     init_req(0,ctrl);
 82     init_class_id(Class_FastLock);
 83     _rtm_counters = NULL;
 84     _stack_rtm_counters = NULL;
 85   }
 86   Node* obj_node() const { return in(1); }
 87   Node* box_node() const { return in(2); }
 88   void  set_box_node(Node* box) { set_req(2, box); }
 89 
 90   // FastLock and FastUnlockNode do not hash, we need one for each correspoding
 91   // LockNode/UnLockNode to avoid creating Phi's.
 92   virtual uint hash() const ;                  // { return NO_HASH; }
 93   virtual uint size_of() const;
 94   virtual bool cmp( const Node &n ) const ;    // Always fail, except on self
 95   virtual int Opcode() const;
 96   virtual const Type* Value(PhaseGVN* phase) const;
 97   const Type *sub(const Type *t1, const Type *t2) const { return TypeInt::CC;}
 98 
 99   void create_rtm_lock_counter(JVMState* state);
100   RTMLockingCounters*       rtm_counters() const { return _rtm_counters; }
101   RTMLockingCounters* stack_rtm_counters() const { return _stack_rtm_counters; }
102 };
103 
104 
105 //------------------------------FastUnlockNode---------------------------------
106 class FastUnlockNode: public CmpNode {
107 public:
108   FastUnlockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) {
109     init_req(0,ctrl);
110     init_class_id(Class_FastUnlock);
111   }
112   Node* obj_node() const { return in(1); }
113   Node* box_node() const { return in(2); }
114 
115 
116   // FastLock and FastUnlockNode do not hash, we need one for each correspoding
< prev index next >