Mercurial > hg > graal-compiler
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)}, |