Mercurial > hg > truffle
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 |