341 virtual bool singleton(void) const; 342 343 // TRUE if type is above the lattice centerline, and is therefore vacuous 344 virtual bool empty(void) const; 345 346 // Return a hash for this type. The hash function is public so ConNode 347 // (constants) can hash on their constant, which is represented by a Type. 348 virtual int hash() const; 349 350 // Map ideal registers (machine types) to ideal types 351 static const Type *mreg2type[]; 352 353 // Printing, statistics 354 #ifndef PRODUCT 355 void dump_on(outputStream *st) const; 356 void dump() const { 357 dump_on(tty); 358 } 359 virtual void dump2( Dict &d, uint depth, outputStream *st ) const; 360 static void dump_stats(); 361 #endif 362 void typerr(const Type *t) const; // Mixing types error 363 364 // Create basic type 365 static const Type* get_const_basic_type(BasicType type) { 366 assert((uint)type <= T_CONFLICT && _const_basic_type[type] != NULL, "bad type"); 367 return _const_basic_type[type]; 368 } 369 370 // For two instance arrays of same dimension, return the base element types. 371 // Otherwise or if the arrays have different dimensions, return NULL. 372 static void get_arrays_base_elements(const Type *a1, const Type *a2, 373 const TypeInstPtr **e1, const TypeInstPtr **e2); 374 375 // Mapping to the array element's basic type. 376 BasicType array_element_basic_type() const; 377 378 // Create standard type for a ciType: 379 static const Type* get_const_type(ciType* type); 380 | 341 virtual bool singleton(void) const; 342 343 // TRUE if type is above the lattice centerline, and is therefore vacuous 344 virtual bool empty(void) const; 345 346 // Return a hash for this type. The hash function is public so ConNode 347 // (constants) can hash on their constant, which is represented by a Type. 348 virtual int hash() const; 349 350 // Map ideal registers (machine types) to ideal types 351 static const Type *mreg2type[]; 352 353 // Printing, statistics 354 #ifndef PRODUCT 355 void dump_on(outputStream *st) const; 356 void dump() const { 357 dump_on(tty); 358 } 359 virtual void dump2( Dict &d, uint depth, outputStream *st ) const; 360 static void dump_stats(); 361 362 static const char* str(const Type* t); 363 #endif 364 void typerr(const Type *t) const; // Mixing types error 365 366 // Create basic type 367 static const Type* get_const_basic_type(BasicType type) { 368 assert((uint)type <= T_CONFLICT && _const_basic_type[type] != NULL, "bad type"); 369 return _const_basic_type[type]; 370 } 371 372 // For two instance arrays of same dimension, return the base element types. 373 // Otherwise or if the arrays have different dimensions, return NULL. 374 static void get_arrays_base_elements(const Type *a1, const Type *a2, 375 const TypeInstPtr **e1, const TypeInstPtr **e2); 376 377 // Mapping to the array element's basic type. 378 BasicType array_element_basic_type() const; 379 380 // Create standard type for a ciType: 381 static const Type* get_const_type(ciType* type); 382 |