equal
deleted
inserted
replaced
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 |