src/share/vm/opto/connode.hpp

changeset 7394
5b8e0f84f00f
parent 6429
606acabe7b5c
child 7535
7ae4e26cb1e0
child 7789
eb8b5cc64669
     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-------------------------------------

mercurial