summaryrefslogtreecommitdiffstats
path: root/vm/compiler
diff options
context:
space:
mode:
authorBill Buzbee <buzbee@google.com>2010-01-12 15:48:32 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-01-12 15:48:32 -0800
commit1b32de7d8a6a425d4a387906be5471ffddfb35c4 (patch)
treebdd2c083822fd78c679556223c8e9f4120fec21e /vm/compiler
parentd028bd15d5c5dfe2b4cbc66e7c4d6d4c716795de (diff)
parent9797a237b48e880c33e2a2f497f48fb6f67c7a16 (diff)
downloadandroid_dalvik-1b32de7d8a6a425d4a387906be5471ffddfb35c4.tar.gz
android_dalvik-1b32de7d8a6a425d4a387906be5471ffddfb35c4.tar.bz2
android_dalvik-1b32de7d8a6a425d4a387906be5471ffddfb35c4.zip
Merge "Performance tweak for Jit lookup & adjust table sizes for better performance"
Diffstat (limited to 'vm/compiler')
-rw-r--r--vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c12
-rw-r--r--vm/compiler/codegen/arm/armv5te/ArchVariant.c12
-rw-r--r--vm/compiler/codegen/arm/armv7-a/ArchVariant.c12
3 files changed, 36 insertions, 0 deletions
diff --git a/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c b/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c
index a76372074..2a8bde100 100644
--- a/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c
+++ b/vm/compiler/codegen/arm/armv5te-vfp/ArchVariant.c
@@ -48,6 +48,18 @@ bool dvmCompilerArchVariantInit(void)
#include "../../../template/armv5te-vfp/TemplateOpList.h"
#undef JIT_TEMPLATE
+ /* Target-specific configuration */
+ gDvmJit.blockingMode = false;
+ gDvmJit.jitTableSize = 1 << 9; // 512
+ gDvmJit.jitTableMask = gDvmJit.jitTableSize - 1;
+ gDvmJit.threshold = 200;
+
+#if defined(WITH_SELF_VERIFICATION)
+ /* Force into blocking, translate everything mode */
+ gDvmJit.blockingMode = true;
+ gDvmJit.threshold = 1;
+#endif
+
/* Codegen-specific assumptions */
assert(offsetof(ClassObject, vtable) < 128 &&
(offsetof(ClassObject, vtable) & 0x3) == 0);
diff --git a/vm/compiler/codegen/arm/armv5te/ArchVariant.c b/vm/compiler/codegen/arm/armv5te/ArchVariant.c
index 106703721..6dff45aa9 100644
--- a/vm/compiler/codegen/arm/armv5te/ArchVariant.c
+++ b/vm/compiler/codegen/arm/armv5te/ArchVariant.c
@@ -48,6 +48,18 @@ bool dvmCompilerArchVariantInit(void)
#include "../../../template/armv5te/TemplateOpList.h"
#undef JIT_TEMPLATE
+ /* Target-specific configuration */
+ gDvmJit.blockingMode = false;
+ gDvmJit.jitTableSize = 1 << 9; // 512
+ gDvmJit.jitTableMask = gDvmJit.jitTableSize - 1;
+ gDvmJit.threshold = 200;
+
+#if defined(WITH_SELF_VERIFICATION)
+ /* Force into blocking, translate everything mode */
+ gDvmJit.blockingMode = true;
+ gDvmJit.threshold = 1;
+#endif
+
/* Codegen-specific assumptions */
assert(offsetof(ClassObject, vtable) < 128 &&
(offsetof(ClassObject, vtable) & 0x3) == 0);
diff --git a/vm/compiler/codegen/arm/armv7-a/ArchVariant.c b/vm/compiler/codegen/arm/armv7-a/ArchVariant.c
index 645af567b..0e4cc2b03 100644
--- a/vm/compiler/codegen/arm/armv7-a/ArchVariant.c
+++ b/vm/compiler/codegen/arm/armv7-a/ArchVariant.c
@@ -44,6 +44,18 @@ bool dvmCompilerArchVariantInit(void)
#include "../../../template/armv5te-vfp/TemplateOpList.h"
#undef JIT_TEMPLATE
+ /* Target-specific configuration */
+ gDvmJit.blockingMode = false;
+ gDvmJit.jitTableSize = 1 << 12; // 4096
+ gDvmJit.jitTableMask = gDvmJit.jitTableSize - 1;
+ gDvmJit.threshold = 40;
+
+#if defined(WITH_SELF_VERIFICATION)
+ /* Force into blocking, translate everything mode */
+ gDvmJit.blockingMode = true;
+ gDvmJit.threshold = 1;
+#endif
+
/* Codegen-specific assumptions */
assert(offsetof(ClassObject, vtable) < 128 &&
(offsetof(ClassObject, vtable) & 0x3) == 0);