comparison src/share/vm/opto/memnode.cpp @ 17799:752ba2e5f6d0

Merge
author kvn
date Tue, 25 Feb 2014 15:11:18 -0800
parents a9becfeecd1b de95063c0e34
children 75ad4240c15c
comparison
equal deleted inserted replaced
17798:f040cf9fc9c0 17799:752ba2e5f6d0
655 "must stay in the original alias category"); 655 "must stay in the original alias category");
656 // The type of the address must be contained in the adr_type, 656 // The type of the address must be contained in the adr_type,
657 // disregarding "null"-ness. 657 // disregarding "null"-ness.
658 // (We make an exception for TypeRawPtr::BOTTOM, which is a bit bucket.) 658 // (We make an exception for TypeRawPtr::BOTTOM, which is a bit bucket.)
659 const TypePtr* tp_notnull = tp->join(TypePtr::NOTNULL)->is_ptr(); 659 const TypePtr* tp_notnull = tp->join(TypePtr::NOTNULL)->is_ptr();
660 assert(cross_check->meet(tp_notnull) == cross_check, 660 assert(cross_check->meet(tp_notnull) == cross_check->remove_speculative(),
661 "real address must not escape from expected memory type"); 661 "real address must not escape from expected memory type");
662 } 662 }
663 #endif 663 #endif
664 return tp; 664 return tp;
665 } 665 }
1683 && (_type->isa_vect() == NULL) 1683 && (_type->isa_vect() == NULL)
1684 && Opcode() != Op_LoadKlass && Opcode() != Op_LoadNKlass) { 1684 && Opcode() != Op_LoadKlass && Opcode() != Op_LoadNKlass) {
1685 // t might actually be lower than _type, if _type is a unique 1685 // t might actually be lower than _type, if _type is a unique
1686 // concrete subclass of abstract class t. 1686 // concrete subclass of abstract class t.
1687 if (off_beyond_header) { // is the offset beyond the header? 1687 if (off_beyond_header) { // is the offset beyond the header?
1688 const Type* jt = t->join(_type); 1688 const Type* jt = t->join_speculative(_type);
1689 // In any case, do not allow the join, per se, to empty out the type. 1689 // In any case, do not allow the join, per se, to empty out the type.
1690 if (jt->empty() && !t->empty()) { 1690 if (jt->empty() && !t->empty()) {
1691 // This can happen if a interface-typed array narrows to a class type. 1691 // This can happen if a interface-typed array narrows to a class type.
1692 jt = _type; 1692 jt = _type;
1693 } 1693 }