213 214 215 ciType* LoadField::declared_type() const { 216 return field()->type(); 217 } 218 219 220 ciType* NewTypeArray::exact_type() const { 221 return ciTypeArrayKlass::make(elt_type()); 222 } 223 224 ciType* NewObjectArray::exact_type() const { 225 ciKlass* element_klass = klass(); 226 if (element_klass->is_valuetype()) { 227 return ciValueArrayKlass::make(element_klass); 228 } else { 229 return ciObjArrayKlass::make(element_klass); 230 } 231 } 232 233 ciType* NewArray::declared_type() const { 234 return exact_type(); 235 } 236 237 ciType* NewInstance::exact_type() const { 238 return klass(); 239 } 240 241 ciType* NewInstance::declared_type() const { 242 return exact_type(); 243 } 244 245 Value NewValueTypeInstance::depends_on() { 246 if (_depends_on != this) { 247 if (_depends_on->as_NewValueTypeInstance() != NULL) { 248 return _depends_on->as_NewValueTypeInstance()->depends_on(); 249 } 250 } 251 return _depends_on; 252 } | 213 214 215 ciType* LoadField::declared_type() const { 216 return field()->type(); 217 } 218 219 220 ciType* NewTypeArray::exact_type() const { 221 return ciTypeArrayKlass::make(elt_type()); 222 } 223 224 ciType* NewObjectArray::exact_type() const { 225 ciKlass* element_klass = klass(); 226 if (element_klass->is_valuetype()) { 227 return ciValueArrayKlass::make(element_klass); 228 } else { 229 return ciObjArrayKlass::make(element_klass); 230 } 231 } 232 233 ciType* NewMultiArray::exact_type() const { 234 return _klass; 235 } 236 237 ciType* NewArray::declared_type() const { 238 return exact_type(); 239 } 240 241 ciType* NewInstance::exact_type() const { 242 return klass(); 243 } 244 245 ciType* NewInstance::declared_type() const { 246 return exact_type(); 247 } 248 249 Value NewValueTypeInstance::depends_on() { 250 if (_depends_on != this) { 251 if (_depends_on->as_NewValueTypeInstance() != NULL) { 252 return _depends_on->as_NewValueTypeInstance()->depends_on(); 253 } 254 } 255 return _depends_on; 256 } |