diff options
author | 2025-02-03 13:17:20 +0000 | |
---|---|---|
committer | 2025-02-03 07:54:49 -0800 | |
commit | cfb4bdbe116ede352effce5462ccf7e998b78255 (patch) | |
tree | 8f5ff86032683248e51379d3835c620a260209bc /compiler | |
parent | c8e37ce90de025c6db5c8f519a93b611681ef5a4 (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.cc | 3 | ||||
-rw-r--r-- | compiler/optimizing/optimizing_compiler_stats.h | 3 |
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, |