diff options
author | Bill Buzbee <buzbee@google.com> | 2010-01-12 15:48:32 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-01-12 15:48:32 -0800 |
commit | 1b32de7d8a6a425d4a387906be5471ffddfb35c4 (patch) | |
tree | bdd2c083822fd78c679556223c8e9f4120fec21e /vm/compiler | |
parent | d028bd15d5c5dfe2b4cbc66e7c4d6d4c716795de (diff) | |
parent | 9797a237b48e880c33e2a2f497f48fb6f67c7a16 (diff) | |
download | android_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.c | 12 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv5te/ArchVariant.c | 12 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/armv7-a/ArchVariant.c | 12 |
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); |