comparison src/share/vm/opto/parse2.cpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents 73970d8c0b27
children c0939256690b
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
65 const TypeAryPtr* arytype = _gvn.type(ary)->is_aryptr(); 65 const TypeAryPtr* arytype = _gvn.type(ary)->is_aryptr();
66 const TypeInt* sizetype = arytype->size(); 66 const TypeInt* sizetype = arytype->size();
67 const Type* elemtype = arytype->elem(); 67 const Type* elemtype = arytype->elem();
68 68
69 if (UseUniqueSubclasses && result2 != NULL) { 69 if (UseUniqueSubclasses && result2 != NULL) {
70 const TypeInstPtr* toop = elemtype->isa_instptr(); 70 const Type* el = elemtype;
71 if (elemtype->isa_narrowoop()) {
72 el = elemtype->is_narrowoop()->make_oopptr();
73 }
74 const TypeInstPtr* toop = el->isa_instptr();
71 if (toop) { 75 if (toop) {
72 if (toop->klass()->as_instance_klass()->unique_concrete_subklass()) { 76 if (toop->klass()->as_instance_klass()->unique_concrete_subklass()) {
73 // If we load from "AbstractClass[]" we must see "ConcreteSubClass". 77 // If we load from "AbstractClass[]" we must see "ConcreteSubClass".
74 const Type* subklass = Type::get_const_type(toop->klass()); 78 const Type* subklass = Type::get_const_type(toop->klass());
75 elemtype = subklass->join(elemtype); 79 elemtype = subklass->join(el);
76 } 80 }
77 } 81 }
78 } 82 }
79 83
80 // Check for big class initializers with all constant offsets 84 // Check for big class initializers with all constant offsets