summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2025-02-03 13:17:20 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2025-02-03 07:54:49 -0800
commitcfb4bdbe116ede352effce5462ccf7e998b78255 (patch)
tree8f5ff86032683248e51379d3835c620a260209bc /compiler
parentc8e37ce90de025c6db5c8f519a93b611681ef5a4 (diff)
Optimizing: New statistic for diamond removal.
Do not count diamond removal towards generated `HSelect` instruction. Introduce a separate statistic for this case. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: Ic397d21bf0e7ffec266be9536446646442a6320e
Diffstat (limited to 'compiler')
-rw-r--r--compiler/optimizing/control_flow_simplifier.cc3
-rw-r--r--compiler/optimizing/optimizing_compiler_stats.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/compiler/optimizing/control_flow_simplifier.cc b/compiler/optimizing/control_flow_simplifier.cc
index 3e1c0ac0fc..35efed59da 100644
--- a/compiler/optimizing/control_flow_simplifier.cc
+++ b/compiler/optimizing/control_flow_simplifier.cc
@@ -198,7 +198,8 @@ bool HControlFlowSimplifier::TryGenerateSelectSimpleDiamondPattern(
block->MergeWith(merge_block);
}
- MaybeRecordStat(stats_, MethodCompilationStat::kSelectGenerated);
+ MaybeRecordStat(stats_, select != nullptr ? MethodCompilationStat::kControlFlowSelectGenerated
+ : MethodCompilationStat::kControlFlowDiamondRemoved);
// Very simple way of finding common subexpressions in the generated HSelect statements
// (since this runs after GVN). Lookup by condition, and reuse latest one if possible
diff --git a/compiler/optimizing/optimizing_compiler_stats.h b/compiler/optimizing/optimizing_compiler_stats.h
index c149eaba9d..62ed2359a2 100644
--- a/compiler/optimizing/optimizing_compiler_stats.h
+++ b/compiler/optimizing/optimizing_compiler_stats.h
@@ -79,13 +79,14 @@ enum class MethodCompilationStat {
kLoopInvariantMoved,
kLoopVectorized,
kLoopVectorizedIdiom,
- kSelectGenerated,
kRemovedInstanceOf,
kPropagatedIfValue,
kInlinedInvokeVirtualOrInterface,
kInlinedLastInvokeVirtualOrInterface,
kImplicitNullCheckGenerated,
kExplicitNullCheckGenerated,
+ kControlFlowSelectGenerated,
+ kControlFlowDiamondRemoved,
kSimplifyIf,
kSimplifyIfAddedPhi,
kSimplifyThrowingInvoke,