Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalCompiler.cpp @ 7084:9ba90252ce08
HotSpotResolvedJavaType is now the HotSpot implementation of ResolvedJavaType,
Renamed old HotSpotResolvedJavaType to HotSpotResolvedObjectType
Renamed HotSpotTypePrimitive to HotSpotResolvedPrimitiveType
Renamed HotSpotTypeUnresolved to HotSpotUnresolvedJavaType
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 28 Nov 2012 14:07:25 +0100 |
parents | 41938af2b3d8 |
children | eec7173947a1 |
comparison
equal
deleted
inserted
replaced
7083:fa3c8913d674 | 7084:9ba90252ce08 |
---|---|
162 assert(_initialized, "must already be initialized"); | 162 assert(_initialized, "must already be initialized"); |
163 ResourceMark rm; | 163 ResourceMark rm; |
164 ciEnv* current_env = JavaThread::current()->env(); | 164 ciEnv* current_env = JavaThread::current()->env(); |
165 JavaThread::current()->set_env(NULL); | 165 JavaThread::current()->set_env(NULL); |
166 JavaThread::current()->set_compiling(true); | 166 JavaThread::current()->set_compiling(true); |
167 Handle holder = GraalCompiler::createHotSpotResolvedJavaType(method, CHECK); | 167 Handle holder = GraalCompiler::createHotSpotResolvedObjectType(method, CHECK); |
168 jboolean success = VMToCompiler::compileMethod(method(), holder, entry_bci, blocking, method->graal_priority()); | 168 jboolean success = VMToCompiler::compileMethod(method(), holder, entry_bci, blocking, method->graal_priority()); |
169 JavaThread::current()->set_compiling(false); | 169 JavaThread::current()->set_compiling(false); |
170 JavaThread::current()->set_env(current_env); | 170 JavaThread::current()->set_env(current_env); |
171 if (success != JNI_TRUE) { | 171 if (success != JNI_TRUE) { |
172 method->clear_queued_for_compilation(); | 172 method->clear_queued_for_compilation(); |
251 BasicType basicType = java_lang_Class::primitive_type(java_class()); | 251 BasicType basicType = java_lang_Class::primitive_type(java_class()); |
252 return VMToCompiler::createPrimitiveJavaType((int) basicType, THREAD); | 252 return VMToCompiler::createPrimitiveJavaType((int) basicType, THREAD); |
253 } else { | 253 } else { |
254 KlassHandle klass = java_lang_Class::as_Klass(java_class()); | 254 KlassHandle klass = java_lang_Class::as_Klass(java_class()); |
255 Handle name = java_lang_String::create_from_symbol(klass->name(), CHECK_NULL); | 255 Handle name = java_lang_String::create_from_symbol(klass->name(), CHECK_NULL); |
256 return GraalCompiler::createHotSpotResolvedJavaType(klass, name, CHECK_NULL); | 256 return GraalCompiler::createHotSpotResolvedObjectType(klass, name, CHECK_NULL); |
257 } | 257 } |
258 } | 258 } |
259 | 259 |
260 Handle GraalCompiler::get_JavaType(KlassHandle klass, TRAPS) { | 260 Handle GraalCompiler::get_JavaType(KlassHandle klass, TRAPS) { |
261 Handle name = VmIds::toString<Handle>(klass->name(), THREAD); | 261 Handle name = VmIds::toString<Handle>(klass->name(), THREAD); |
262 return createHotSpotResolvedJavaType(klass, name, CHECK_NULL); | 262 return createHotSpotResolvedObjectType(klass, name, CHECK_NULL); |
263 } | 263 } |
264 | 264 |
265 Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, TRAPS) { | 265 Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, TRAPS) { |
266 Handle name = VmIds::toString<Handle>(field_name, CHECK_NULL); | 266 Handle name = VmIds::toString<Handle>(field_name, CHECK_NULL); |
267 return VMToCompiler::createJavaField(field_holder, name, field_type, offset, flags, false, CHECK_NULL); | 267 return VMToCompiler::createJavaField(field_holder, name, field_type, offset, flags, false, CHECK_NULL); |
268 } | 268 } |
269 | 269 |
270 Handle GraalCompiler::createHotSpotResolvedJavaType(methodHandle method, TRAPS) { | 270 Handle GraalCompiler::createHotSpotResolvedObjectType(methodHandle method, TRAPS) { |
271 KlassHandle klass = method->method_holder(); | 271 KlassHandle klass = method->method_holder(); |
272 oop java_class = klass->java_mirror(); | 272 oop java_class = klass->java_mirror(); |
273 oop graal_mirror = java_lang_Class::graal_mirror(java_class); | 273 oop graal_mirror = java_lang_Class::graal_mirror(java_class); |
274 if (graal_mirror != NULL) { | 274 if (graal_mirror != NULL) { |
275 assert(graal_mirror->is_a(HotSpotResolvedJavaType::klass()), "unexpected class..."); | 275 assert(graal_mirror->is_a(HotSpotResolvedObjectType::klass()), "unexpected class..."); |
276 return graal_mirror; | 276 return graal_mirror; |
277 } | 277 } |
278 Handle name = java_lang_String::create_from_symbol(klass->name(), CHECK_NULL); | 278 Handle name = java_lang_String::create_from_symbol(klass->name(), CHECK_NULL); |
279 return GraalCompiler::createHotSpotResolvedJavaType(klass, name, CHECK_NULL); | 279 return GraalCompiler::createHotSpotResolvedObjectType(klass, name, CHECK_NULL); |
280 } | 280 } |
281 | 281 |
282 Handle GraalCompiler::createHotSpotResolvedJavaType(KlassHandle klass, Handle name, TRAPS) { | 282 Handle GraalCompiler::createHotSpotResolvedObjectType(KlassHandle klass, Handle name, TRAPS) { |
283 oop java_class = klass->java_mirror(); | 283 oop java_class = klass->java_mirror(); |
284 oop graal_mirror = java_lang_Class::graal_mirror(java_class); | 284 oop graal_mirror = java_lang_Class::graal_mirror(java_class); |
285 if (graal_mirror != NULL) { | 285 if (graal_mirror != NULL) { |
286 assert(graal_mirror->is_a(HotSpotResolvedJavaType::klass()), "unexpected class..."); | 286 assert(graal_mirror->is_a(HotSpotResolvedObjectType::klass()), "unexpected class..."); |
287 return graal_mirror; | 287 return graal_mirror; |
288 } | 288 } |
289 | 289 |
290 Handle simpleName = name; | 290 Handle simpleName = name; |
291 if (klass->oop_is_instance()) { | 291 if (klass->oop_is_instance()) { |
297 // TODO replace this with the correct value | 297 // TODO replace this with the correct value |
298 bool hasFinalizableSubclass = false; | 298 bool hasFinalizableSubclass = false; |
299 | 299 |
300 int sizeOrSpecies; | 300 int sizeOrSpecies; |
301 if (klass->is_interface()) { | 301 if (klass->is_interface()) { |
302 sizeOrSpecies = (int) 0x80000000; // see HotSpotResolvedJavaType.INTERFACE_SPECIES_VALUE | 302 sizeOrSpecies = (int) 0x80000000; // see HotSpotResolvedObjectType.INTERFACE_SPECIES_VALUE |
303 } else if (klass->oop_is_array()) { | 303 } else if (klass->oop_is_array()) { |
304 sizeOrSpecies = (int) 0x7fffffff; // see HotSpotResolvedJavaType.ARRAY_SPECIES_VALUE | 304 sizeOrSpecies = (int) 0x7fffffff; // see HotSpotResolvedObjectType.ARRAY_SPECIES_VALUE |
305 } else { | 305 } else { |
306 sizeOrSpecies = InstanceKlass::cast(klass())->size_helper() * HeapWordSize; | 306 sizeOrSpecies = InstanceKlass::cast(klass())->size_helper() * HeapWordSize; |
307 if (!InstanceKlass::cast(klass())->can_be_fastpath_allocated()) { | 307 if (!InstanceKlass::cast(klass())->can_be_fastpath_allocated()) { |
308 sizeOrSpecies = -sizeOrSpecies; | 308 sizeOrSpecies = -sizeOrSpecies; |
309 } | 309 } |