src/share/vm/opto/type.hpp

changeset 1444
03b336640699
parent 1427
6a8ccac44f41
child 1515
7c57aead6d3e
equal deleted inserted replaced
1443:e90521d61f9a 1444:03b336640699
166 int higher_equal( const Type *t ) const { return !cmp(meet(t),t); } 166 int higher_equal( const Type *t ) const { return !cmp(meet(t),t); }
167 167
168 // MEET operation; lower in lattice. 168 // MEET operation; lower in lattice.
169 const Type *meet( const Type *t ) const; 169 const Type *meet( const Type *t ) const;
170 // WIDEN: 'widens' for Ints and other range types 170 // WIDEN: 'widens' for Ints and other range types
171 virtual const Type *widen( const Type *old ) const { return this; } 171 virtual const Type *widen( const Type *old, const Type* limit ) const { return this; }
172 // NARROW: complement for widen, used by pessimistic phases 172 // NARROW: complement for widen, used by pessimistic phases
173 virtual const Type *narrow( const Type *old ) const { return this; } 173 virtual const Type *narrow( const Type *old ) const { return this; }
174 174
175 // DUAL operation: reflect around lattice centerline. Used instead of 175 // DUAL operation: reflect around lattice centerline. Used instead of
176 // join to ensure my lattice is symmetric up and down. 176 // join to ensure my lattice is symmetric up and down.
407 407
408 virtual bool is_finite() const; // Has a finite value 408 virtual bool is_finite() const; // Has a finite value
409 409
410 virtual const Type *xmeet( const Type *t ) const; 410 virtual const Type *xmeet( const Type *t ) const;
411 virtual const Type *xdual() const; // Compute dual right now. 411 virtual const Type *xdual() const; // Compute dual right now.
412 virtual const Type *widen( const Type *t ) const; 412 virtual const Type *widen( const Type *t, const Type* limit_type ) const;
413 virtual const Type *narrow( const Type *t ) const; 413 virtual const Type *narrow( const Type *t ) const;
414 // Do not kill _widen bits. 414 // Do not kill _widen bits.
415 virtual const Type *filter( const Type *kills ) const; 415 virtual const Type *filter( const Type *kills ) const;
416 // Convenience common pre-built types. 416 // Convenience common pre-built types.
417 static const TypeInt *MINUS_1; 417 static const TypeInt *MINUS_1;
463 463
464 virtual bool is_finite() const; // Has a finite value 464 virtual bool is_finite() const; // Has a finite value
465 465
466 virtual const Type *xmeet( const Type *t ) const; 466 virtual const Type *xmeet( const Type *t ) const;
467 virtual const Type *xdual() const; // Compute dual right now. 467 virtual const Type *xdual() const; // Compute dual right now.
468 virtual const Type *widen( const Type *t ) const; 468 virtual const Type *widen( const Type *t, const Type* limit_type ) const;
469 virtual const Type *narrow( const Type *t ) const; 469 virtual const Type *narrow( const Type *t ) const;
470 // Do not kill _widen bits. 470 // Do not kill _widen bits.
471 virtual const Type *filter( const Type *kills ) const; 471 virtual const Type *filter( const Type *kills ) const;
472 // Convenience common pre-built types. 472 // Convenience common pre-built types.
473 static const TypeLong *MINUS_1; 473 static const TypeLong *MINUS_1;

mercurial