Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalCompilerToVM.cpp @ 11852:d7964e96b0b0
move benchmark counters into separate class and make them correct for multithreaded applications
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Mon, 30 Sep 2013 18:32:26 +0200 |
parents | 7cca436d600b |
children | 359f7e70ae7f |
comparison
equal
deleted
inserted
replaced
11828:1d64bfb3f481 | 11852:d7964e96b0b0 |
---|---|
873 break; | 873 break; |
874 } | 874 } |
875 | 875 |
876 set_int("arrayClassElementOffset", in_bytes(ObjArrayKlass::element_klass_offset())); | 876 set_int("arrayClassElementOffset", in_bytes(ObjArrayKlass::element_klass_offset())); |
877 | 877 |
878 set_int("graalCountersThreadOffset", in_bytes(JavaThread::graal_counters_offset())); | |
879 set_int("graalCountersSize", (jint) GRAAL_COUNTERS_SIZE); | |
880 | |
878 #undef set_boolean | 881 #undef set_boolean |
879 #undef set_int | 882 #undef set_int |
880 #undef set_long | 883 #undef set_long |
881 #undef set_object | 884 #undef set_object |
882 | 885 |
1141 | 1144 |
1142 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv *env, jobject, jobject o)) | 1145 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv *env, jobject, jobject o)) |
1143 oop resolved_o = JNIHandles::resolve(o); | 1146 oop resolved_o = JNIHandles::resolve(o); |
1144 jlong klass = (jlong)(address)resolved_o->klass(); | 1147 jlong klass = (jlong)(address)resolved_o->klass(); |
1145 return klass; | 1148 return klass; |
1149 C2V_END | |
1150 | |
1151 C2V_VMENTRY(jlongArray, collectCounters, (JNIEnv *env, jobject)) | |
1152 typeArrayOop arrayOop = oopFactory::new_longArray(GRAAL_COUNTERS_SIZE, CHECK_NULL); | |
1153 JavaThread::collect_counters(arrayOop); | |
1154 return (jlongArray) JNIHandles::make_local(arrayOop); | |
1146 C2V_END | 1155 C2V_END |
1147 | 1156 |
1148 #define CC (char*) /*cast a literal from (const char*)*/ | 1157 #define CC (char*) /*cast a literal from (const char*)*/ |
1149 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f)) | 1158 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f)) |
1150 | 1159 |
1222 {CC"getFileName", CC"("HS_RESOLVED_JAVA_TYPE")"STRING, FN_PTR(getFileName)}, | 1231 {CC"getFileName", CC"("HS_RESOLVED_JAVA_TYPE")"STRING, FN_PTR(getFileName)}, |
1223 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)}, | 1232 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)}, |
1224 {CC"invalidateInstalledCode", CC"("HS_INSTALLED_CODE")V", FN_PTR(invalidateInstalledCode)}, | 1233 {CC"invalidateInstalledCode", CC"("HS_INSTALLED_CODE")V", FN_PTR(invalidateInstalledCode)}, |
1225 {CC"readUnsafeUncompressedPointer", CC"("OBJECT"J)"OBJECT, FN_PTR(readUnsafeUncompressedPointer)}, | 1234 {CC"readUnsafeUncompressedPointer", CC"("OBJECT"J)"OBJECT, FN_PTR(readUnsafeUncompressedPointer)}, |
1226 {CC"readUnsafeKlassPointer", CC"("OBJECT")J", FN_PTR(readUnsafeKlassPointer)}, | 1235 {CC"readUnsafeKlassPointer", CC"("OBJECT")J", FN_PTR(readUnsafeKlassPointer)}, |
1236 {CC"collectCounters", CC"()[J", FN_PTR(collectCounters)}, | |
1227 }; | 1237 }; |
1228 | 1238 |
1229 int CompilerToVM_methods_count() { | 1239 int CompilerToVM_methods_count() { |
1230 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod); | 1240 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod); |
1231 } | 1241 } |