< prev index next >

src/hotspot/share/opto/type.cpp

Print this page

        

*** 2107,2117 **** case Array: { // Meeting 2 arrays? const TypeAry *a = t->is_ary(); return TypeAry::make(_elem->meet_speculative(a->_elem), _size->xmeet(a->_size)->is_int(), ! _stable && a->_stable); } case Top: break; } return this; // Return the double constant --- 2107,2117 ---- case Array: { // Meeting 2 arrays? const TypeAry *a = t->is_ary(); return TypeAry::make(_elem->meet_speculative(a->_elem), _size->xmeet(a->_size)->is_int(), ! _stable & a->_stable); } case Top: break; } return this; // Return the double constant
*** 3877,3887 **** // Check for subtyping: ciKlass *subtype = NULL; bool subtype_exact = false; if( tinst_klass->equals(this_klass) ) { subtype = this_klass; ! subtype_exact = below_centerline(ptr) ? (this_xk && tinst_xk) : (this_xk || tinst_xk); } else if( !tinst_xk && this_klass->is_subtype_of( tinst_klass ) ) { subtype = this_klass; // Pick subtyping class subtype_exact = this_xk; } else if( !this_xk && tinst_klass->is_subtype_of( this_klass ) ) { subtype = tinst_klass; // Pick subtyping class --- 3877,3887 ---- // Check for subtyping: ciKlass *subtype = NULL; bool subtype_exact = false; if( tinst_klass->equals(this_klass) ) { subtype = this_klass; ! subtype_exact = below_centerline(ptr) ? (this_xk & tinst_xk) : (this_xk | tinst_xk); } else if( !tinst_xk && this_klass->is_subtype_of( tinst_klass ) ) { subtype = this_klass; // Pick subtyping class subtype_exact = this_xk; } else if( !this_xk && tinst_klass->is_subtype_of( this_klass ) ) { subtype = tinst_klass; // Pick subtyping class
*** 4359,4369 **** case TopPTR: // Compute new klass on demand, do not use tap->_klass if (below_centerline(this->_ptr)) { xk = this->_klass_is_exact; } else { ! xk = (tap->_klass_is_exact || this->_klass_is_exact); } return make(ptr, const_oop(), tary, lazy_klass, xk, off, instance_id, speculative, depth); case Constant: { ciObject* o = const_oop(); if( _ptr == Constant ) { --- 4359,4369 ---- case TopPTR: // Compute new klass on demand, do not use tap->_klass if (below_centerline(this->_ptr)) { xk = this->_klass_is_exact; } else { ! xk = (tap->_klass_is_exact | this->_klass_is_exact); } return make(ptr, const_oop(), tary, lazy_klass, xk, off, instance_id, speculative, depth); case Constant: { ciObject* o = const_oop(); if( _ptr == Constant ) {
< prev index next >