summaryrefslogtreecommitdiff
path: root/compiler/optimizing/optimizing_compiler_stats.h
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2017-08-08 13:59:55 -0700
committerIgor Murashkin <iam@google.com>2017-08-11 10:23:30 -0700
commit6ef45677305048c2bf0600f1c4b98a11b2cfaffb (patch)
tree9a8df6a3bebe4a6120403562c21817d775a6ef36 /compiler/optimizing/optimizing_compiler_stats.h
parent1e065a54845da12541572f4f149e6ab0dcd20180 (diff)
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
Diffstat (limited to 'compiler/optimizing/optimizing_compiler_stats.h')
-rw-r--r--compiler/optimizing/optimizing_compiler_stats.h9
1 files changed, 9 insertions, 0 deletions
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 <type_traits>
#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 "