From 6ef45677305048c2bf0600f1c4b98a11b2cfaffb Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Tue, 8 Aug 2017 13:59:55 -0700 Subject: optimizing: Add statistics for # of constructor fences added/removed Statistics are attributed as follows: Added because: * HNewInstances requires a HConstructorFence following it. * HReturn requires a HConstructorFence (for final fields) preceding it. Removed because: * Optimized in Load-Store-Elimination. * Optimized in Prepare-For-Register-Allocation. Test: art/test.py Bug: 36656456 Change-Id: Ic119441c5151a5a840fc6532b411340e2d68e5eb --- compiler/optimizing/optimizing_compiler_stats.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'compiler/optimizing/optimizing_compiler_stats.h') diff --git a/compiler/optimizing/optimizing_compiler_stats.h b/compiler/optimizing/optimizing_compiler_stats.h index 098d23dac1..d6da73cc1c 100644 --- a/compiler/optimizing/optimizing_compiler_stats.h +++ b/compiler/optimizing/optimizing_compiler_stats.h @@ -23,6 +23,7 @@ #include #include "atomic.h" +#include "globals.h" namespace art { @@ -86,6 +87,10 @@ enum MethodCompilationStat { kNotInlinedWont, kNotInlinedRecursiveBudget, kNotInlinedProxy, + kConstructorFenceGeneratedNew, + kConstructorFenceGeneratedFinal, + kConstructorFenceRemovedLSE, + kConstructorFenceRemovedPFRA, kLastStat }; @@ -202,6 +207,10 @@ class OptimizingCompilerStats { case kNotInlinedWont: name = "NotInlinedWont"; break; case kNotInlinedRecursiveBudget: name = "NotInlinedRecursiveBudget"; break; case kNotInlinedProxy: name = "NotInlinedProxy"; break; + case kConstructorFenceGeneratedNew: name = "ConstructorFenceGeneratedNew"; break; + case kConstructorFenceGeneratedFinal: name = "ConstructorFenceGeneratedFinal"; break; + case kConstructorFenceRemovedLSE: name = "ConstructorFenceRemovedLSE"; break; + case kConstructorFenceRemovedPFRA: name = "ConstructorFenceRemovedPFRA"; break; case kLastStat: LOG(FATAL) << "invalid stat " -- cgit v1.2.3-59-g8ed1b