< prev index next >

src/share/vm/opto/type.hpp

Print this page




 676 
 677 public:
 678   virtual bool eq( const Type *t ) const;
 679   virtual int  hash() const;             // Type specific hashing
 680   virtual bool singleton(void) const;    // TRUE if type is a singleton
 681   virtual bool empty(void) const;        // TRUE if type is vacuous
 682 
 683   // Accessors:
 684   uint cnt() const { return _cnt; }
 685   const Type* field_at(uint i) const {
 686     assert(i < _cnt, "oob");
 687     return _fields[i];
 688   }
 689   void set_field_at(uint i, const Type* t) {
 690     assert(i < _cnt, "oob");
 691     _fields[i] = t;
 692   }
 693 
 694   static const TypeTuple *make( uint cnt, const Type **fields );
 695   static const TypeTuple *make_range(ciSignature *sig, bool ret_vt_fields = false);

 696   static const TypeTuple *make_domain(ciInstanceKlass* recv, ciSignature *sig, bool vt_fields_as_args = false);
 697 
 698   // Subroutine call type with space allocated for argument types
 699   // Memory for Control, I_O, Memory, FramePtr, and ReturnAdr is allocated implicitly
 700   static const Type **fields( uint arg_cnt );
 701 
 702   virtual const Type *xmeet( const Type *t ) const;
 703   virtual const Type *xdual() const;    // Compute dual right now.
 704   // Convenience common pre-built types.
 705   static const TypeTuple *IFBOTH;
 706   static const TypeTuple *IFFALSE;
 707   static const TypeTuple *IFTRUE;
 708   static const TypeTuple *IFNEITHER;
 709   static const TypeTuple *LOOPBODY;
 710   static const TypeTuple *MEMBAR;
 711   static const TypeTuple *STORECONDITIONAL;
 712   static const TypeTuple *START_I2C;
 713   static const TypeTuple *INT_PAIR;
 714   static const TypeTuple *LONG_PAIR;
 715   static const TypeTuple *INT_CC_PAIR;




 676 
 677 public:
 678   virtual bool eq( const Type *t ) const;
 679   virtual int  hash() const;             // Type specific hashing
 680   virtual bool singleton(void) const;    // TRUE if type is a singleton
 681   virtual bool empty(void) const;        // TRUE if type is vacuous
 682 
 683   // Accessors:
 684   uint cnt() const { return _cnt; }
 685   const Type* field_at(uint i) const {
 686     assert(i < _cnt, "oob");
 687     return _fields[i];
 688   }
 689   void set_field_at(uint i, const Type* t) {
 690     assert(i < _cnt, "oob");
 691     _fields[i] = t;
 692   }
 693 
 694   static const TypeTuple *make( uint cnt, const Type **fields );
 695   static const TypeTuple *make_range(ciSignature *sig, bool ret_vt_fields = false);
 696   static const TypeTuple *make_range(ciType *ret_type, bool ret_vt_fields = false);
 697   static const TypeTuple *make_domain(ciInstanceKlass* recv, ciSignature *sig, bool vt_fields_as_args = false);
 698 
 699   // Subroutine call type with space allocated for argument types
 700   // Memory for Control, I_O, Memory, FramePtr, and ReturnAdr is allocated implicitly
 701   static const Type **fields( uint arg_cnt );
 702 
 703   virtual const Type *xmeet( const Type *t ) const;
 704   virtual const Type *xdual() const;    // Compute dual right now.
 705   // Convenience common pre-built types.
 706   static const TypeTuple *IFBOTH;
 707   static const TypeTuple *IFFALSE;
 708   static const TypeTuple *IFTRUE;
 709   static const TypeTuple *IFNEITHER;
 710   static const TypeTuple *LOOPBODY;
 711   static const TypeTuple *MEMBAR;
 712   static const TypeTuple *STORECONDITIONAL;
 713   static const TypeTuple *START_I2C;
 714   static const TypeTuple *INT_PAIR;
 715   static const TypeTuple *LONG_PAIR;
 716   static const TypeTuple *INT_CC_PAIR;


< prev index next >