comparison src/share/vm/opto/type.cpp @ 17795:a9becfeecd1b

Merge
author kvn
date Wed, 22 Jan 2014 17:42:23 -0800
parents 5231c2210388 15120a36272d
children 45467c53f178
comparison
equal deleted inserted replaced
17794:3514ee402842 17795:a9becfeecd1b
3816 // This must fall to bottom, not (int[-128..65535])[int+]. 3816 // This must fall to bottom, not (int[-128..65535])[int+].
3817 instance_id = InstanceBot; 3817 instance_id = InstanceBot;
3818 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); 3818 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable);
3819 } 3819 }
3820 } else // Non integral arrays. 3820 } else // Non integral arrays.
3821 // Must fall to bottom if exact klasses in upper lattice 3821 // Must fall to bottom if exact klasses in upper lattice
3822 // are not equal or super klass is exact. 3822 // are not equal or super klass is exact.
3823 if ( above_centerline(ptr) && klass() != tap->klass() && 3823 if ((above_centerline(ptr) || ptr == Constant) && klass() != tap->klass() &&
3824 // meet with top[] and bottom[] are processed further down: 3824 // meet with top[] and bottom[] are processed further down:
3825 tap ->_klass != NULL && this->_klass != NULL && 3825 tap->_klass != NULL && this->_klass != NULL &&
3826 // both are exact and not equal: 3826 // both are exact and not equal:
3827 ((tap ->_klass_is_exact && this->_klass_is_exact) || 3827 ((tap->_klass_is_exact && this->_klass_is_exact) ||
3828 // 'tap' is exact and super or unrelated: 3828 // 'tap' is exact and super or unrelated:
3829 (tap ->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) || 3829 (tap->_klass_is_exact && !tap->klass()->is_subtype_of(klass())) ||
3830 // 'this' is exact and super or unrelated: 3830 // 'this' is exact and super or unrelated:
3831 (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) { 3831 (this->_klass_is_exact && !klass()->is_subtype_of(tap->klass())))) {
3832 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); 3832 tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable);
3833 return make(NotNull, NULL, tary, lazy_klass, false, off, InstanceBot); 3833 return make(NotNull, NULL, tary, lazy_klass, false, off, InstanceBot);
3834 } 3834 }
3835 3835
3836 bool xk = false; 3836 bool xk = false;