summaryrefslogtreecommitdiff
path: root/compiler/optimizing/builder.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2014-12-17 11:55:20 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-12-17 11:55:21 +0000
commit4acdae34d7529dcd757cc62ef18b75021dbc2cb0 (patch)
treed418b4a488390d718144bf5a5a180d965d1d762e /compiler/optimizing/builder.cc
parent240016da1d6615b26c8342bdeb4bae381570ac47 (diff)
parent390f59f9bec64fd81b05e796dfaeb03ab6d4cc81 (diff)
Merge "Small optimization for recursive calls: avoid dex cache."
Diffstat (limited to 'compiler/optimizing/builder.cc')
-rw-r--r--compiler/optimizing/builder.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc
index f9054e0133..ef93b8c10e 100644
--- a/compiler/optimizing/builder.cc
+++ b/compiler/optimizing/builder.cc
@@ -613,9 +613,11 @@ bool HGraphBuilder::BuildInvoke(const Instruction& instruction,
// Sharpening to kDirect only works if we compile PIC.
DCHECK((optimized_invoke_type == invoke_type) || (optimized_invoke_type != kDirect)
|| compiler_driver_->GetCompilerOptions().GetCompilePic());
+ bool is_recursive =
+ (target_method.dex_method_index == dex_compilation_unit_->GetDexMethodIndex());
invoke = new (arena_) HInvokeStaticOrDirect(
arena_, number_of_arguments, return_type, dex_pc, target_method.dex_method_index,
- optimized_invoke_type);
+ is_recursive, optimized_invoke_type);
}
size_t start_index = 0;