From 9d4b6da934934c322536ee3309b63ce402740f49 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Fri, 29 Jul 2016 09:51:58 -0700 Subject: jni: Fast path for @FastNative annotated java methods Adds a faster path for java methods annotated with dalvik.annotation.optimization.FastNative . Intended to replace usage of fast JNI (registering with "!(FOO)BAR" descriptors). Performance Microbenchmark Results (Angler): * Regular JNI cost in nanoseconds: 115 * Fast JNI cost in nanoseconds: 60 * @FastNative cost in nanoseconds: 36 Summary: Up to 67% faster (vs fast jni) JNI transition cost Change-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e --- compiler/optimizing/optimizing_compiler.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'compiler/optimizing/optimizing_compiler.cc') diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index f7c82d1987..6aaa15fa02 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -283,8 +283,13 @@ class OptimizingCompiler FINAL : public Compiler { CompiledMethod* JniCompile(uint32_t access_flags, uint32_t method_idx, - const DexFile& dex_file) const OVERRIDE { - return ArtQuickJniCompileMethod(GetCompilerDriver(), access_flags, method_idx, dex_file); + const DexFile& dex_file, + JniOptimizationFlags optimization_flags) const OVERRIDE { + return ArtQuickJniCompileMethod(GetCompilerDriver(), + access_flags, + method_idx, + dex_file, + optimization_flags); } uintptr_t GetEntryPointOf(ArtMethod* method) const OVERRIDE -- cgit v1.2.3-59-g8ed1b