diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2013-11-22 11:13:31 -0800 |
---|---|---|
committer | Conley Owens <cco3@android.com> | 2013-11-22 13:30:18 -0800 |
commit | 04094ebea8da0a20763f9fe709a818602854689a (patch) | |
tree | 5ea8d192ccd5bd696761d521bc86e29569ffdab3 /vm/compiler/codegen/arm | |
parent | 1a01301b838759188d6646ceac6c285335504b65 (diff) | |
parent | b75a263239ff48c87b826f5d62a53c0efd22b507 (diff) | |
download | android_dalvik-04094ebea8da0a20763f9fe709a818602854689a.tar.gz android_dalvik-04094ebea8da0a20763f9fe709a818602854689a.tar.bz2 android_dalvik-04094ebea8da0a20763f9fe709a818602854689a.zip |
Merge commit 'b75a263239ff48c87b826f5d62a53c0efd22b507' into HEAD
Change-Id: Ia37a6c18e09e6bbfab4beadc5ed86f92b766fe21
Diffstat (limited to 'vm/compiler/codegen/arm')
-rw-r--r-- | vm/compiler/codegen/arm/Assemble.cpp | 2 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.cpp | 8 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv5te/ArchVariant.cpp | 8 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv7-a-neon/ArchVariant.cpp | 8 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv7-a/ArchVariant.cpp | 8 |
5 files changed, 30 insertions, 4 deletions
diff --git a/vm/compiler/codegen/arm/Assemble.cpp b/vm/compiler/codegen/arm/Assemble.cpp index a729dc589..10572eb5f 100644 --- a/vm/compiler/codegen/arm/Assemble.cpp +++ b/vm/compiler/codegen/arm/Assemble.cpp @@ -2153,6 +2153,8 @@ void dvmCompilerSortAndPrintTraceProfiles() } ALOGD("JIT: Average execution count -> %d",(int)(sum / numTraces)); + // How efficiently are we using code cache memory? Bigger is better. + ALOGD("JIT: CodeCache efficiency -> %.2f",(float)sum / (float)gDvmJit.codeCacheByteUsed); /* Dump the sorted entries. The count of each trace will be reset to 0. */ for (i=0; i < gDvmJit.jitTableSize; i++) { diff --git a/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.cpp b/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.cpp index 713ecfa10..6c89b11e9 100644 --- a/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.cpp +++ b/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.cpp @@ -55,7 +55,13 @@ bool dvmCompilerArchVariantInit(void) if (gDvmJit.threshold == 0) { gDvmJit.threshold = 200; } - gDvmJit.codeCacheSize = 512*1024; + if (gDvmJit.codeCacheSize == DEFAULT_CODE_CACHE_SIZE) { + gDvmJit.codeCacheSize = 512 * 1024; + } else if ((gDvmJit.codeCacheSize == 0) && (gDvm.executionMode == kExecutionModeJit)) { + gDvm.executionMode = kExecutionModeInterpFast; + } + /* Hard limit for Arm of 2M */ + assert(gDvmJit.codeCacheSize <= 2 * 1024 * 1024); #if defined(WITH_SELF_VERIFICATION) /* Force into blocking mode */ diff --git a/vm/compiler/codegen/arm/armv5te/ArchVariant.cpp b/vm/compiler/codegen/arm/armv5te/ArchVariant.cpp index 25d650e6d..5c7fbbe41 100644 --- a/vm/compiler/codegen/arm/armv5te/ArchVariant.cpp +++ b/vm/compiler/codegen/arm/armv5te/ArchVariant.cpp @@ -55,7 +55,13 @@ bool dvmCompilerArchVariantInit(void) if (gDvmJit.threshold == 0) { gDvmJit.threshold = 200; } - gDvmJit.codeCacheSize = 512*1024; + if (gDvmJit.codeCacheSize == DEFAULT_CODE_CACHE_SIZE) { + gDvmJit.codeCacheSize = 512 * 1024; + } else if ((gDvmJit.codeCacheSize == 0) && (gDvm.executionMode == kExecutionModeJit)) { + gDvm.executionMode = kExecutionModeInterpFast; + } + /* Hard limit for Arm of 2M */ + assert(gDvmJit.codeCacheSize <= 2 * 1024 * 1024); #if defined(WITH_SELF_VERIFICATION) /* Force into blocking mode */ diff --git a/vm/compiler/codegen/arm/armv7-a-neon/ArchVariant.cpp b/vm/compiler/codegen/arm/armv7-a-neon/ArchVariant.cpp index 0b1e0cdeb..a81a2e735 100644 --- a/vm/compiler/codegen/arm/armv7-a-neon/ArchVariant.cpp +++ b/vm/compiler/codegen/arm/armv7-a-neon/ArchVariant.cpp @@ -50,7 +50,13 @@ bool dvmCompilerArchVariantInit(void) if (gDvmJit.threshold == 0) { gDvmJit.threshold = 40; } - gDvmJit.codeCacheSize = 1024*1024; + if (gDvmJit.codeCacheSize == DEFAULT_CODE_CACHE_SIZE) { + gDvmJit.codeCacheSize = 1500 * 1024; + } else if ((gDvmJit.codeCacheSize == 0) && (gDvm.executionMode == kExecutionModeJit)) { + gDvm.executionMode = kExecutionModeInterpFast; + } + /* Hard limit for Arm of 2M */ + assert(gDvmJit.codeCacheSize <= 2 * 1024 * 1024); #if defined(WITH_SELF_VERIFICATION) /* Force into blocking */ diff --git a/vm/compiler/codegen/arm/armv7-a/ArchVariant.cpp b/vm/compiler/codegen/arm/armv7-a/ArchVariant.cpp index c698f6267..72ae3ce9c 100644 --- a/vm/compiler/codegen/arm/armv7-a/ArchVariant.cpp +++ b/vm/compiler/codegen/arm/armv7-a/ArchVariant.cpp @@ -50,7 +50,13 @@ bool dvmCompilerArchVariantInit(void) if (gDvmJit.threshold == 0) { gDvmJit.threshold = 40; } - gDvmJit.codeCacheSize = 1024*1024; + if (gDvmJit.codeCacheSize == DEFAULT_CODE_CACHE_SIZE) { + gDvmJit.codeCacheSize = 1500 * 1024; + } else if ((gDvmJit.codeCacheSize == 0) && (gDvm.executionMode == kExecutionModeJit)) { + gDvm.executionMode = kExecutionModeInterpFast; + } + /* Hard limit for Arm of 2M */ + assert(gDvmJit.codeCacheSize <= 2 * 1024 * 1024); #if defined(WITH_SELF_VERIFICATION) /* Force into blocking */ |