Mercurial > hg > graal-jvmci-8
comparison src/share/vm/graal/graalVMEntries.cpp @ 3055:fecdb0a65fb2
runtime profiles exceptions at the call site
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Tue, 21 Jun 2011 11:13:52 +0200 |
parents | 9fed07e4a375 |
children | 536528f48708 |
comparison
equal
deleted
inserted
replaced
3024:abcc480f3bd5 | 3055:fecdb0a65fb2 |
---|---|
181 TRACE_graal_3("VMEntries::RiMethod_invocationCount"); | 181 TRACE_graal_3("VMEntries::RiMethod_invocationCount"); |
182 methodOop method = getMethodFromHotSpotMethod(hotspot_method); | 182 methodOop method = getMethodFromHotSpotMethod(hotspot_method); |
183 return method->invocation_count(); | 183 return method->invocation_count(); |
184 } | 184 } |
185 | 185 |
186 // public native int RiMethod_throwoutCount(long vmId); | |
187 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_2exceptionProbability(JNIEnv *, jobject, jobject hotspot_method, jint bci) { | |
188 TRACE_graal_3("VMEntries::RiMethod_exceptionProbability"); | |
189 ciMethod* cimethod; | |
190 { | |
191 VM_ENTRY_MARK; | |
192 methodOop method = getMethodFromHotSpotMethod(hotspot_method); | |
193 cimethod = (ciMethod*)CURRENT_ENV->get_object(method); | |
194 } | |
195 | |
196 ciMethodData* method_data = cimethod->method_data_or_null(); | |
197 if (method_data == NULL) { | |
198 return -1; | |
199 } else { | |
200 ciProfileData* profile = method_data->bci_to_data(bci); | |
201 if (profile == NULL) { | |
202 return 0; | |
203 } | |
204 uint trap = method_data->trap_recompiled_at(profile); | |
205 if (trap > 0) { | |
206 return 100; | |
207 } else { | |
208 return trap; | |
209 } | |
210 } | |
211 } | |
212 | |
186 // public native RiTypeProfile RiMethod_typeProfile(long vmId, int bci); | 213 // public native RiTypeProfile RiMethod_typeProfile(long vmId, int bci); |
187 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1typeProfile(JNIEnv *, jobject, jobject hotspot_method, jint bci) { | 214 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_2typeProfile(JNIEnv *, jobject, jobject hotspot_method, jint bci) { |
188 TRACE_graal_3("VMEntries::RiMethod_typeProfile"); | 215 TRACE_graal_3("VMEntries::RiMethod_typeProfile"); |
189 ciMethod* cimethod; | 216 ciMethod* cimethod; |
190 { | 217 { |
191 VM_ENTRY_MARK; | 218 VM_ENTRY_MARK; |
192 methodOop method = getMethodFromHotSpotMethod(hotspot_method); | 219 methodOop method = getMethodFromHotSpotMethod(hotspot_method); |
223 | 250 |
224 return JNIHandles::make_local(obj()); | 251 return JNIHandles::make_local(obj()); |
225 } | 252 } |
226 | 253 |
227 // public native RiTypeProfile RiMethod_branchProfile(long vmId, int bci); | 254 // public native RiTypeProfile RiMethod_branchProfile(long vmId, int bci); |
228 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1branchProbability(JNIEnv *, jobject, jobject hotspot_method, jint bci) { | 255 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_2branchProbability(JNIEnv *, jobject, jobject hotspot_method, jint bci) { |
229 TRACE_graal_3("VMEntries::RiMethod_typeProfile"); | 256 TRACE_graal_3("VMEntries::RiMethod_typeProfile"); |
230 ciMethodData* method_data; | 257 ciMethodData* method_data; |
231 ciMethod* cimethod; | 258 ciMethod* cimethod; |
232 { | 259 { |
233 VM_ENTRY_MARK; | 260 VM_ENTRY_MARK; |
801 {CC"RiMethod_code", CC"("RESOLVED_METHOD")[B", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1code)}, | 828 {CC"RiMethod_code", CC"("RESOLVED_METHOD")[B", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1code)}, |
802 {CC"RiMethod_signature", CC"("RESOLVED_METHOD")"STRING, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1signature)}, | 829 {CC"RiMethod_signature", CC"("RESOLVED_METHOD")"STRING, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1signature)}, |
803 {CC"RiMethod_exceptionHandlers", CC"("RESOLVED_METHOD")"EXCEPTION_HANDLERS, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1exceptionHandlers)}, | 830 {CC"RiMethod_exceptionHandlers", CC"("RESOLVED_METHOD")"EXCEPTION_HANDLERS, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1exceptionHandlers)}, |
804 {CC"RiMethod_hasBalancedMonitors", CC"("RESOLVED_METHOD")Z", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1hasBalancedMonitors)}, | 831 {CC"RiMethod_hasBalancedMonitors", CC"("RESOLVED_METHOD")Z", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1hasBalancedMonitors)}, |
805 {CC"RiMethod_uniqueConcreteMethod", CC"("RESOLVED_METHOD")"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1uniqueConcreteMethod)}, | 832 {CC"RiMethod_uniqueConcreteMethod", CC"("RESOLVED_METHOD")"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1uniqueConcreteMethod)}, |
806 {CC"RiMethod_typeProfile", CC"("RESOLVED_METHOD"I)"TYPE_PROFILE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1typeProfile)}, | 833 {CC"RiMethod_typeProfile", CC"("RESOLVED_METHOD"I)"TYPE_PROFILE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_2typeProfile)}, |
807 {CC"RiMethod_branchProbability", CC"("RESOLVED_METHOD"I)I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1branchProbability)}, | 834 {CC"RiMethod_branchProbability", CC"("RESOLVED_METHOD"I)I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_2branchProbability)}, |
808 {CC"RiMethod_invocationCount", CC"("RESOLVED_METHOD")I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1invocationCount)}, | 835 {CC"RiMethod_invocationCount", CC"("RESOLVED_METHOD")I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1invocationCount)}, |
836 {CC"RiMethod_exceptionProbability", CC"("RESOLVED_METHOD"I)I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_2exceptionProbability)}, | |
809 {CC"RiSignature_lookupType", CC"("STRING RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiSignature_1lookupType)}, | 837 {CC"RiSignature_lookupType", CC"("STRING RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiSignature_1lookupType)}, |
810 {CC"RiConstantPool_lookupConstant", CC"("PROXY"I)"OBJECT, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupConstant)}, | 838 {CC"RiConstantPool_lookupConstant", CC"("PROXY"I)"OBJECT, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupConstant)}, |
811 {CC"RiConstantPool_lookupMethod", CC"("PROXY"IB)"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupMethod)}, | 839 {CC"RiConstantPool_lookupMethod", CC"("PROXY"IB)"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupMethod)}, |
812 {CC"RiConstantPool_lookupSignature", CC"("PROXY"I)"SIGNATURE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupSignature)}, | 840 {CC"RiConstantPool_lookupSignature", CC"("PROXY"I)"SIGNATURE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupSignature)}, |
813 {CC"RiConstantPool_lookupType", CC"("PROXY"I)"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupType)}, | 841 {CC"RiConstantPool_lookupType", CC"("PROXY"I)"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupType)}, |