comparison src/share/vm/graal/graalCompilerToVM.cpp @ 10639:08e06d4a9e73

Removed API to access method invocation count from Graal.
author Christian Haeubl <haeubl@ssw.jku.at>
date Mon, 08 Jul 2013 12:01:51 +0200
parents 72d0ea03635b
children 28dc33dc4565 ec8ee1c2ad7a
comparison
equal deleted inserted replaced
10629:3c2a77f01e89 10639:08e06d4a9e73
295 } 295 }
296 } 296 }
297 return NULL; 297 return NULL;
298 C2V_END 298 C2V_END
299 299
300 C2V_ENTRY(jint, getInvocationCount, (JNIEnv *, jobject, jlong metaspace_method))
301 Method* method = asMethod(metaspace_method);
302 return method->invocation_count();
303 C2V_END
304
305 C2V_VMENTRY(void, initializeMethod,(JNIEnv *, jobject, jlong metaspace_method, jobject hotspot_method)) 300 C2V_VMENTRY(void, initializeMethod,(JNIEnv *, jobject, jlong metaspace_method, jobject hotspot_method))
306 methodHandle method = asMethod(metaspace_method); 301 methodHandle method = asMethod(metaspace_method);
307 Handle name = java_lang_String::create_from_symbol(method->name(), CHECK); 302 Handle name = java_lang_String::create_from_symbol(method->name(), CHECK);
308 InstanceKlass::cast(HotSpotResolvedJavaMethod::klass())->initialize(CHECK); 303 InstanceKlass::cast(HotSpotResolvedJavaMethod::klass())->initialize(CHECK);
309 HotSpotResolvedJavaMethod::set_name(hotspot_method, name()); 304 HotSpotResolvedJavaMethod::set_name(hotspot_method, name());
323 C2V_VMENTRY(void, initializeMethodData,(JNIEnv *, jobject, jlong metaspace_method_data, jobject hotspot_method_data)) 318 C2V_VMENTRY(void, initializeMethodData,(JNIEnv *, jobject, jlong metaspace_method_data, jobject hotspot_method_data))
324 MethodData* method_data = asMethodData(metaspace_method_data); 319 MethodData* method_data = asMethodData(metaspace_method_data);
325 HotSpotMethodData::set_normalDataSize(hotspot_method_data, method_data->data_size()); 320 HotSpotMethodData::set_normalDataSize(hotspot_method_data, method_data->data_size());
326 HotSpotMethodData::set_extraDataSize(hotspot_method_data, method_data->extra_data_size()); 321 HotSpotMethodData::set_extraDataSize(hotspot_method_data, method_data->extra_data_size());
327 C2V_END 322 C2V_END
328 323
329 // ------------------------------------------------------------------
330 // Adjust a CounterData count to be commensurate with
331 // interpreter_invocation_count. If the MDO exists for
332 // only 25% of the time the method exists, then the
333 // counts in the MDO should be scaled by 4X, so that
334 // they can be usefully and stably compared against the
335 // invocation counts in methods.
336 int scale_count(MethodData* method_data, int count) {
337 if (count > 0) {
338 int counter_life;
339 int method_life = method_data->method()->interpreter_invocation_count();
340 int current_mileage = MethodData::mileage_of(method_data->method());
341 int creation_mileage = method_data->creation_mileage();
342 counter_life = current_mileage - creation_mileage;
343
344 // counter_life due to backedge_counter could be > method_life
345 if (counter_life > method_life)
346 counter_life = method_life;
347 if (0 < counter_life && counter_life <= method_life) {
348 count = (int)((double)count * method_life / counter_life + 0.5);
349 count = (count > 0) ? count : 1;
350 }
351 }
352 return count;
353 }
354
355 C2V_ENTRY(jint, getCompiledCodeSize, (JNIEnv *env, jobject, jlong metaspace_method)) 324 C2V_ENTRY(jint, getCompiledCodeSize, (JNIEnv *env, jobject, jlong metaspace_method))
356 nmethod* code = (asMethod(metaspace_method))->code(); 325 nmethod* code = (asMethod(metaspace_method))->code();
357 return code == NULL ? 0 : code->insts_size(); 326 return code == NULL ? 0 : code->insts_size();
358 C2V_END 327 C2V_END
359 328
1260 {CC"getUniqueImplementor", CC"("HS_RESOLVED_TYPE")"RESOLVED_TYPE, FN_PTR(getUniqueImplementor)}, 1229 {CC"getUniqueImplementor", CC"("HS_RESOLVED_TYPE")"RESOLVED_TYPE, FN_PTR(getUniqueImplementor)},
1261 {CC"getStackTraceElement", CC"("METASPACE_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)}, 1230 {CC"getStackTraceElement", CC"("METASPACE_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)},
1262 {CC"initializeMethod", CC"("METASPACE_METHOD HS_RESOLVED_METHOD")V", FN_PTR(initializeMethod)}, 1231 {CC"initializeMethod", CC"("METASPACE_METHOD HS_RESOLVED_METHOD")V", FN_PTR(initializeMethod)},
1263 {CC"initializeMethodData", CC"("METASPACE_METHOD_DATA METHOD_DATA")V", FN_PTR(initializeMethodData)}, 1232 {CC"initializeMethodData", CC"("METASPACE_METHOD_DATA METHOD_DATA")V", FN_PTR(initializeMethodData)},
1264 {CC"isMethodCompilable", CC"("METASPACE_METHOD")Z", FN_PTR(isMethodCompilable)}, 1233 {CC"isMethodCompilable", CC"("METASPACE_METHOD")Z", FN_PTR(isMethodCompilable)},
1265 {CC"getInvocationCount", CC"("METASPACE_METHOD")I", FN_PTR(getInvocationCount)},
1266 {CC"getCompiledCodeSize", CC"("METASPACE_METHOD")I", FN_PTR(getCompiledCodeSize)}, 1234 {CC"getCompiledCodeSize", CC"("METASPACE_METHOD")I", FN_PTR(getCompiledCodeSize)},
1267 {CC"getVtableEntryOffset", CC"("METASPACE_METHOD")I", FN_PTR(getVtableEntryOffset)}, 1235 {CC"getVtableEntryOffset", CC"("METASPACE_METHOD")I", FN_PTR(getVtableEntryOffset)},
1268 {CC"hasVtableEntry", CC"("METASPACE_METHOD")Z", FN_PTR(hasVtableEntry)}, 1236 {CC"hasVtableEntry", CC"("METASPACE_METHOD")Z", FN_PTR(hasVtableEntry)},
1269 {CC"constantPoolLength", CC"("HS_RESOLVED_TYPE")I", FN_PTR(constantPoolLength)}, 1237 {CC"constantPoolLength", CC"("HS_RESOLVED_TYPE")I", FN_PTR(constantPoolLength)},
1270 {CC"lookupType", CC"("STRING HS_RESOLVED_TYPE"Z)"TYPE, FN_PTR(lookupType)}, 1238 {CC"lookupType", CC"("STRING HS_RESOLVED_TYPE"Z)"TYPE, FN_PTR(lookupType)},