summaryrefslogtreecommitdiffstats
path: root/vm/interp/Jit.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/interp/Jit.c')
-rw-r--r--vm/interp/Jit.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/vm/interp/Jit.c b/vm/interp/Jit.c
index 3c0082b7e..185182f53 100644
--- a/vm/interp/Jit.c
+++ b/vm/interp/Jit.c
@@ -367,7 +367,7 @@ void dvmJitStopTranslationRequests()
gDvmJit.pProfTable = NULL;
}
-#if defined(EXIT_STATS)
+#if defined(JIT_STATS)
/* Convenience function to increment counter from assembly code */
void dvmBumpNoChain(int from)
{
@@ -409,11 +409,14 @@ void dvmJitStats()
if (gDvmJit.pJitEntryTable[i].u.info.chain != gDvmJit.jitTableSize)
chains++;
}
+ LOGD("size if %d, entries used is %d",
+ gDvmJit.jitTableSize, gDvmJit.jitTableEntriesUsed);
LOGD(
- "JIT: %d traces, %d slots, %d chains, %d maxQ, %d thresh, %s",
- hit, not_hit + hit, chains, gDvmJit.compilerMaxQueued,
- gDvmJit.threshold, gDvmJit.blockingMode ? "Blocking" : "Non-blocking");
-#if defined(EXIT_STATS)
+ "JIT: %d traces, %d slots, %d chains, %d thresh, %s",
+ hit, not_hit + hit, chains, gDvmJit.threshold,
+ gDvmJit.blockingMode ? "Blocking" : "Non-blocking");
+
+#if defined(JIT_STATS)
LOGD(
"JIT: Lookups: %d hits, %d misses; %d normal, %d punt",
gDvmJit.addrLookupsFound, gDvmJit.addrLookupsNotFound,
@@ -423,15 +426,17 @@ void dvmJitStats()
gDvmJit.noChainExit[kInlineCacheMiss],
gDvmJit.noChainExit[kCallsiteInterpreted],
gDvmJit.noChainExit[kSwitchOverflow]);
+
+ LOGD("JIT: Invoke: %d mono, %d poly, %d native, %d return",
+ gDvmJit.invokeMonomorphic, gDvmJit.invokePolymorphic,
+ gDvmJit.invokeNative, gDvmJit.returnOp);
+ LOGD("JIT: Total compilation time: %llu ms", gDvmJit.jitTime / 1000);
+ LOGD("JIT: Avg unit compilation time: %llu us",
+ gDvmJit.jitTime / gDvmJit.numCompilations);
#endif
+
LOGD("JIT: %d Translation chains, %d interp stubs",
gDvmJit.translationChains, stubs);
-#if defined(INVOKE_STATS)
- LOGD("JIT: Invoke: %d chainable, %d pred. chain, %d native, "
- "%d return",
- gDvmJit.invokeChain, gDvmJit.invokePredictedChain,
- gDvmJit.invokeNative, gDvmJit.returnOp);
-#endif
if (gDvmJit.profile) {
dvmCompilerSortAndPrintTraceProfiles();
}
@@ -818,7 +823,7 @@ void* dvmJitGetCodeAddr(const u2* dPC)
(gDvmJit.pProfTable == NULL);
if (npc == dPC) {
-#if defined(EXIT_STATS)
+#if defined(JIT_STATS)
gDvmJit.addrLookupsFound++;
#endif
return hideTranslation ?
@@ -828,7 +833,7 @@ void* dvmJitGetCodeAddr(const u2* dPC)
while (gDvmJit.pJitEntryTable[idx].u.info.chain != chainEndMarker) {
idx = gDvmJit.pJitEntryTable[idx].u.info.chain;
if (gDvmJit.pJitEntryTable[idx].dPC == dPC) {
-#if defined(EXIT_STATS)
+#if defined(JIT_STATS)
gDvmJit.addrLookupsFound++;
#endif
return hideTranslation ?
@@ -837,7 +842,7 @@ void* dvmJitGetCodeAddr(const u2* dPC)
}
}
}
-#if defined(EXIT_STATS)
+#if defined(JIT_STATS)
gDvmJit.addrLookupsNotFound++;
#endif
return NULL;
@@ -914,9 +919,9 @@ bool dvmJitCheckTraceRequest(Thread* self, InterpState* interpState)
if (res || (gDvmJit.compilerQueueLength >= gDvmJit.compilerHighWater)
|| gDvm.debuggerActive || self->suspendCount
#if defined(WITH_PROFILER)
- || gDvm.activeProfilers
+ || gDvm.activeProfilers
#endif
- ) {
+ ) {
if (interpState->jitState != kJitOff) {
interpState->jitState = kJitNormal;
}