< prev index next >

src/share/vm/opto/subnode.hpp

Print this page
rev 10800 : JDK8u-only: Use WB-based acmp barrier


 149   CmpINode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 150   virtual int Opcode() const;
 151   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 152   virtual const Type *sub( const Type *, const Type * ) const;
 153 };
 154 
 155 //------------------------------CmpUNode---------------------------------------
 156 // Compare 2 unsigned values (integer or pointer), returning condition codes (-1, 0 or 1).
 157 class CmpUNode : public CmpNode {
 158 public:
 159   CmpUNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 160   virtual int Opcode() const;
 161   virtual const Type *sub( const Type *, const Type * ) const;
 162   const Type *Value( PhaseTransform *phase ) const;
 163   bool is_index_range_check() const;
 164 };
 165 
 166 //------------------------------CmpPNode---------------------------------------
 167 // Compare 2 pointer values, returning condition codes (-1, 0 or 1).
 168 class CmpPNode : public CmpNode {
 169 private:
 170   bool shenandoah_optimize_java_mirror_cmp(PhaseGVN *phase, bool can_reshape);
 171 
 172 public:
 173   CmpPNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 174   virtual int Opcode() const;
 175   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 176   virtual const Type *sub( const Type *, const Type * ) const;
 177 };
 178 
 179 //------------------------------CmpNNode--------------------------------------
 180 // Compare 2 narrow oop values, returning condition codes (-1, 0 or 1).
 181 class CmpNNode : public CmpNode {
 182 public:
 183   CmpNNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 184   virtual int Opcode() const;
 185   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 186   virtual const Type *sub( const Type *, const Type * ) const;
 187 };
 188 
 189 //------------------------------CmpLNode---------------------------------------
 190 // Compare 2 long values, returning condition codes (-1, 0 or 1).
 191 class CmpLNode : public CmpNode {




 149   CmpINode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 150   virtual int Opcode() const;
 151   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 152   virtual const Type *sub( const Type *, const Type * ) const;
 153 };
 154 
 155 //------------------------------CmpUNode---------------------------------------
 156 // Compare 2 unsigned values (integer or pointer), returning condition codes (-1, 0 or 1).
 157 class CmpUNode : public CmpNode {
 158 public:
 159   CmpUNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 160   virtual int Opcode() const;
 161   virtual const Type *sub( const Type *, const Type * ) const;
 162   const Type *Value( PhaseTransform *phase ) const;
 163   bool is_index_range_check() const;
 164 };
 165 
 166 //------------------------------CmpPNode---------------------------------------
 167 // Compare 2 pointer values, returning condition codes (-1, 0 or 1).
 168 class CmpPNode : public CmpNode {



 169 public:
 170   CmpPNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 171   virtual int Opcode() const;
 172   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 173   virtual const Type *sub( const Type *, const Type * ) const;
 174 };
 175 
 176 //------------------------------CmpNNode--------------------------------------
 177 // Compare 2 narrow oop values, returning condition codes (-1, 0 or 1).
 178 class CmpNNode : public CmpNode {
 179 public:
 180   CmpNNode( Node *in1, Node *in2 ) : CmpNode(in1,in2) {}
 181   virtual int Opcode() const;
 182   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 183   virtual const Type *sub( const Type *, const Type * ) const;
 184 };
 185 
 186 //------------------------------CmpLNode---------------------------------------
 187 // Compare 2 long values, returning condition codes (-1, 0 or 1).
 188 class CmpLNode : public CmpNode {


< prev index next >