1.1 --- a/src/share/vm/opto/connode.hpp Mon Dec 01 09:38:52 2014 -0500 1.2 +++ b/src/share/vm/opto/connode.hpp Mon Dec 01 22:27:00 2014 +0100 1.3 @@ -241,10 +241,25 @@ 1.4 //------------------------------CastIINode------------------------------------- 1.5 // cast integer to integer (different range) 1.6 class CastIINode: public ConstraintCastNode { 1.7 + private: 1.8 + // Can this node be removed post CCP or does it carry a required dependency? 1.9 + const bool _carry_dependency; 1.10 + 1.11 + protected: 1.12 + virtual uint cmp( const Node &n ) const; 1.13 + virtual uint size_of() const; 1.14 + 1.15 public: 1.16 - CastIINode (Node *n, const Type *t ): ConstraintCastNode(n,t) {} 1.17 + CastIINode(Node *n, const Type *t, bool carry_dependency = false) 1.18 + : ConstraintCastNode(n,t), _carry_dependency(carry_dependency) {} 1.19 virtual int Opcode() const; 1.20 virtual uint ideal_reg() const { return Op_RegI; } 1.21 + virtual Node *Identity( PhaseTransform *phase ); 1.22 + virtual const Type *Value( PhaseTransform *phase ) const; 1.23 + virtual Node *Ideal_DU_postCCP( PhaseCCP * ); 1.24 +#ifndef PRODUCT 1.25 + virtual void dump_spec(outputStream *st) const; 1.26 +#endif 1.27 }; 1.28 1.29 //------------------------------CastPPNode-------------------------------------