hotspot/src/share/vm/opto/type.hpp
changeset 3173 c15503e54406
parent 2154 72a9b7284ccf
child 3180 c589129153a4
equal deleted inserted replaced
3172:ad4ba6ce75a5 3173:c15503e54406
   187 
   187 
   188   // Modified version of JOIN adapted to the needs Node::Value.
   188   // Modified version of JOIN adapted to the needs Node::Value.
   189   // Normalizes all empty values to TOP.  Does not kill _widen bits.
   189   // Normalizes all empty values to TOP.  Does not kill _widen bits.
   190   // Currently, it also works around limitations involving interface types.
   190   // Currently, it also works around limitations involving interface types.
   191   virtual const Type *filter( const Type *kills ) const;
   191   virtual const Type *filter( const Type *kills ) const;
       
   192 
       
   193 #ifdef ASSERT
       
   194   // One type is interface, the other is oop
       
   195   virtual bool interface_vs_oop(const Type *t) const;
       
   196 #endif
   192 
   197 
   193   // Returns true if this pointer points at memory which contains a
   198   // Returns true if this pointer points at memory which contains a
   194   // compressed oop references.
   199   // compressed oop references.
   195   bool is_ptr_to_narrowoop() const;
   200   bool is_ptr_to_narrowoop() const;
   196 
   201 
   544   static const TypeAry *make(  const Type *elem, const TypeInt *size);
   549   static const TypeAry *make(  const Type *elem, const TypeInt *size);
   545 
   550 
   546   virtual const Type *xmeet( const Type *t ) const;
   551   virtual const Type *xmeet( const Type *t ) const;
   547   virtual const Type *xdual() const;    // Compute dual right now.
   552   virtual const Type *xdual() const;    // Compute dual right now.
   548   bool ary_must_be_exact() const;  // true if arrays of such are never generic
   553   bool ary_must_be_exact() const;  // true if arrays of such are never generic
       
   554 #ifdef ASSERT
       
   555   // One type is interface, the other is oop
       
   556   virtual bool interface_vs_oop(const Type *t) const;
       
   557 #endif
   549 #ifndef PRODUCT
   558 #ifndef PRODUCT
   550   virtual void dump2( Dict &d, uint, outputStream *st  ) const; // Specialized per-Type dumping
   559   virtual void dump2( Dict &d, uint, outputStream *st  ) const; // Specialized per-Type dumping
   551 #endif
   560 #endif
   552 };
   561 };
   553 
   562 
   865     assert((uint)elem <= T_CONFLICT && _array_body_type[elem] != NULL, "bad elem type");
   874     assert((uint)elem <= T_CONFLICT && _array_body_type[elem] != NULL, "bad elem type");
   866     return _array_body_type[elem];
   875     return _array_body_type[elem];
   867   }
   876   }
   868   static const TypeAryPtr *_array_body_type[T_CONFLICT+1];
   877   static const TypeAryPtr *_array_body_type[T_CONFLICT+1];
   869   // sharpen the type of an int which is used as an array size
   878   // sharpen the type of an int which is used as an array size
       
   879 #ifdef ASSERT
       
   880   // One type is interface, the other is oop
       
   881   virtual bool interface_vs_oop(const Type *t) const;
       
   882 #endif
   870 #ifndef PRODUCT
   883 #ifndef PRODUCT
   871   virtual void dump2( Dict &d, uint depth, outputStream *st ) const; // Specialized per-Type dumping
   884   virtual void dump2( Dict &d, uint depth, outputStream *st ) const; // Specialized per-Type dumping
   872 #endif
   885 #endif
   873 };
   886 };
   874 
   887