src/share/vm/opto/connode.hpp

changeset 8285
535618ab1c04
parent 7789
eb8b5cc64669
child 8604
04d83ba48607
     1.1 --- a/src/share/vm/opto/connode.hpp	Mon Jan 25 08:46:19 2016 +0000
     1.2 +++ b/src/share/vm/opto/connode.hpp	Wed Jan 27 09:02:51 2016 +0100
     1.3 @@ -244,19 +244,31 @@
     1.4    private:
     1.5    // Can this node be removed post CCP or does it carry a required dependency?
     1.6    const bool _carry_dependency;
     1.7 +  // Is this node dependent on a range check?
     1.8 +  const bool _range_check_dependency;
     1.9  
    1.10    protected:
    1.11    virtual uint cmp( const Node &n ) const;
    1.12    virtual uint size_of() const;
    1.13  
    1.14  public:
    1.15 -  CastIINode(Node *n, const Type *t, bool carry_dependency = false)
    1.16 -    : ConstraintCastNode(n,t), _carry_dependency(carry_dependency) {}
    1.17 +  CastIINode(Node *n, const Type *t, bool carry_dependency = false, bool range_check_dependency = false)
    1.18 +    : ConstraintCastNode(n,t), _carry_dependency(carry_dependency), _range_check_dependency(range_check_dependency) {
    1.19 +    init_class_id(Class_CastII);
    1.20 +  }
    1.21    virtual int Opcode() const;
    1.22    virtual uint ideal_reg() const { return Op_RegI; }
    1.23    virtual Node *Identity( PhaseTransform *phase );
    1.24    virtual const Type *Value( PhaseTransform *phase ) const;
    1.25    virtual Node *Ideal_DU_postCCP( PhaseCCP * );
    1.26 +  const bool has_range_check() {
    1.27 + #ifdef _LP64
    1.28 +     return _range_check_dependency;
    1.29 + #else
    1.30 +     assert(!_range_check_dependency, "Should not have range check dependency");
    1.31 +     return false;
    1.32 + #endif
    1.33 +   }
    1.34  #ifndef PRODUCT
    1.35    virtual void dump_spec(outputStream *st) const;
    1.36  #endif

mercurial