comparison src/share/vm/opto/locknode.hpp @ 17810:62c54fcc0a35

Merge
author kvn
date Tue, 25 Mar 2014 17:07:36 -0700
parents d2907f74462e 606acabe7b5c
children 52b4284cb496
comparison
equal deleted inserted replaced
17809:a433eb716ce1 17810:62c54fcc0a35
90 }; 90 };
91 91
92 //------------------------------FastLockNode----------------------------------- 92 //------------------------------FastLockNode-----------------------------------
93 class FastLockNode: public CmpNode { 93 class FastLockNode: public CmpNode {
94 private: 94 private:
95 BiasedLockingCounters* _counters; 95 BiasedLockingCounters* _counters;
96 RTMLockingCounters* _rtm_counters; // RTM lock counters for inflated locks
97 RTMLockingCounters* _stack_rtm_counters; // RTM lock counters for stack locks
96 98
97 public: 99 public:
98 FastLockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) { 100 FastLockNode(Node *ctrl, Node *oop, Node *box) : CmpNode(oop,box) {
99 init_req(0,ctrl); 101 init_req(0,ctrl);
100 init_class_id(Class_FastLock); 102 init_class_id(Class_FastLock);
101 _counters = NULL; 103 _counters = NULL;
104 _rtm_counters = NULL;
105 _stack_rtm_counters = NULL;
102 } 106 }
103 Node* obj_node() const { return in(1); } 107 Node* obj_node() const { return in(1); }
104 Node* box_node() const { return in(2); } 108 Node* box_node() const { return in(2); }
105 void set_box_node(Node* box) { set_req(2, box); } 109 void set_box_node(Node* box) { set_req(2, box); }
106 110
107 // FastLock and FastUnlockNode do not hash, we need one for each correspoding 111 // FastLock and FastUnlockNode do not hash, we need one for each correspoding
108 // LockNode/UnLockNode to avoid creating Phi's. 112 // LockNode/UnLockNode to avoid creating Phi's.
109 virtual uint hash() const ; // { return NO_HASH; } 113 virtual uint hash() const ; // { return NO_HASH; }
114 virtual uint size_of() const;
110 virtual uint cmp( const Node &n ) const ; // Always fail, except on self 115 virtual uint cmp( const Node &n ) const ; // Always fail, except on self
111 virtual int Opcode() const; 116 virtual int Opcode() const;
112 virtual const Type *Value( PhaseTransform *phase ) const { return TypeInt::CC; } 117 virtual const Type *Value( PhaseTransform *phase ) const { return TypeInt::CC; }
113 const Type *sub(const Type *t1, const Type *t2) const { return TypeInt::CC;} 118 const Type *sub(const Type *t1, const Type *t2) const { return TypeInt::CC;}
114 119
115 void create_lock_counter(JVMState* s); 120 void create_lock_counter(JVMState* s);
116 BiasedLockingCounters* counters() const { return _counters; } 121 void create_rtm_lock_counter(JVMState* state);
122 BiasedLockingCounters* counters() const { return _counters; }
123 RTMLockingCounters* rtm_counters() const { return _rtm_counters; }
124 RTMLockingCounters* stack_rtm_counters() const { return _stack_rtm_counters; }
117 }; 125 };
118 126
119 127
120 //------------------------------FastUnlockNode--------------------------------- 128 //------------------------------FastUnlockNode---------------------------------
121 class FastUnlockNode: public CmpNode { 129 class FastUnlockNode: public CmpNode {