summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/optimizing/inliner.cc6
-rw-r--r--compiler/optimizing/optimizing_compiler_stats.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc
index 6331a70dd5..3abbbae573 100644
--- a/compiler/optimizing/inliner.cc
+++ b/compiler/optimizing/inliner.cc
@@ -469,6 +469,9 @@ bool HInliner::TryInline(HInvoke* invoke_instruction) {
/* do_rtp= */ true);
if (result) {
MaybeRecordStat(stats_, MethodCompilationStat::kInlinedInvokeVirtualOrInterface);
+ if (outermost_graph_ == graph_) {
+ MaybeRecordStat(stats_, MethodCompilationStat::kInlinedLastInvokeVirtualOrInterface);
+ }
} else {
HInvoke* invoke_to_analyze = nullptr;
if (TryDevirtualize(invoke_instruction, actual_method, &invoke_to_analyze)) {
@@ -1483,6 +1486,9 @@ bool HInliner::TryBuildAndInline(HInvoke* invoke_instruction,
LOG_SUCCESS() << method->PrettyMethod();
MaybeRecordStat(stats_, MethodCompilationStat::kInlinedInvoke);
+ if (outermost_graph_ == graph_) {
+ MaybeRecordStat(stats_, MethodCompilationStat::kInlinedLastInvoke);
+ }
return true;
}
diff --git a/compiler/optimizing/optimizing_compiler_stats.h b/compiler/optimizing/optimizing_compiler_stats.h
index 24d01539df..58d65bb97d 100644
--- a/compiler/optimizing/optimizing_compiler_stats.h
+++ b/compiler/optimizing/optimizing_compiler_stats.h
@@ -37,6 +37,7 @@ enum class MethodCompilationStat {
kCompiledBytecode,
kCHAInline,
kInlinedInvoke,
+ kInlinedLastInvoke,
kReplacedInvokeWithSimplePattern,
kInstructionSimplifications,
kInstructionSimplificationsArch,
@@ -73,6 +74,7 @@ enum class MethodCompilationStat {
kSelectGenerated,
kRemovedInstanceOf,
kInlinedInvokeVirtualOrInterface,
+ kInlinedLastInvokeVirtualOrInterface,
kImplicitNullCheckGenerated,
kExplicitNullCheckGenerated,
kSimplifyIf,