From cfb4bdbe116ede352effce5462ccf7e998b78255 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Mon, 3 Feb 2025 13:17:20 +0000 Subject: 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 --- compiler/optimizing/control_flow_simplifier.cc | 3 ++- compiler/optimizing/optimizing_compiler_stats.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'compiler/optimizing') 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, -- cgit v1.2.3-59-g8ed1b