summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2014-09-26 17:36:17 +0200
committermikaelpeltier <mikaelpeltier@google.com>2014-09-26 17:38:58 +0200
commit29259326f9bf7874ca2b4935b4f0c05aef2f931e (patch)
tree2a0cad8ada3e68595e886a8a0c18a6f0ff981dfb /jack
parentb07070a1e0b10ffd24eee9b6a597e94840fa9604 (diff)
downloadtoolchain_jack-29259326f9bf7874ca2b4935b4f0c05aef2f931e.zip
toolchain_jack-29259326f9bf7874ca2b4935b4f0c05aef2f931e.tar.gz
toolchain_jack-29259326f9bf7874ca2b4935b4f0c05aef2f931e.tar.bz2
Compute binary with cst statistics only when it is needed
Change-Id: I17647ec09c145a83b78c45088a0dc3b9c8546ab4
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/Jack.java10
-rw-r--r--jack/src/com/android/jack/statistics/BinaryOperationWithCst.java2
-rw-r--r--jack/src/com/android/jack/statistics/CodeStats.java27
3 files changed, 37 insertions, 2 deletions
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java
index 1a0602b..858aef7 100644
--- a/jack/src/com/android/jack/Jack.java
+++ b/jack/src/com/android/jack/Jack.java
@@ -163,6 +163,7 @@ import com.android.jack.shrob.shrink.remover.MethodKeepMarkerRemover;
import com.android.jack.shrob.shrink.remover.TypeShrinkMarkerRemover;
import com.android.jack.shrob.spec.Flags;
import com.android.jack.statistics.BinaryOperationWithCst;
+import com.android.jack.statistics.CodeStats;
import com.android.jack.statistics.FieldStats;
import com.android.jack.statistics.MethodStats;
import com.android.jack.transformations.AssertionTransformer;
@@ -411,6 +412,7 @@ public abstract class Jack {
if (config.get(Options.ENABLE_COMPILED_FILES_STATISTICS).booleanValue()) {
request.addFeature(CompiledTypeStats.class);
+ request.addFeature(CodeStats.class);
}
if (options.hasSanityChecks()) {
@@ -1030,7 +1032,9 @@ public abstract class Jack {
methodPlan.append(TypeLegalizer.class);
methodPlan.append(RopCastLegalizer.class);
methodPlan.append(UselessCastRemover.class);
- methodPlan.append(BinaryOperationWithCst.class);
+ if (features.contains(CodeStats.class)) {
+ methodPlan.append(BinaryOperationWithCst.class);
+ }
methodPlan.append(UselessCaseRemover.class);
methodPlan.append(UselessSwitchesRemover.class);
if (hasSanityChecks) {
@@ -1456,7 +1460,9 @@ public abstract class Jack {
methodPlan3.append(TypeLegalizer.class);
methodPlan3.append(RopCastLegalizer.class);
methodPlan3.append(UselessCastRemover.class);
- methodPlan3.append(BinaryOperationWithCst.class);
+ if (features.contains(CodeStats.class)) {
+ methodPlan3.append(BinaryOperationWithCst.class);
+ }
methodPlan3.append(UselessCaseRemover.class);
methodPlan3.append(UselessSwitchesRemover.class);
if (hasSanityChecks) {
diff --git a/jack/src/com/android/jack/statistics/BinaryOperationWithCst.java b/jack/src/com/android/jack/statistics/BinaryOperationWithCst.java
index 143afad..09599c5 100644
--- a/jack/src/com/android/jack/statistics/BinaryOperationWithCst.java
+++ b/jack/src/com/android/jack/statistics/BinaryOperationWithCst.java
@@ -35,6 +35,7 @@ import com.android.jack.util.filter.Filter;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
+import com.android.sched.schedulable.Support;
import com.android.sched.util.config.ThreadConfig;
import com.android.sched.util.log.Tracer;
import com.android.sched.util.log.TracerFactory;
@@ -50,6 +51,7 @@ import javax.annotation.Nonnull;
@Description("Compute number of binary operations using constant value.")
@Constraint(no = {JConcatOperation.class, ImplicitCast.class, ImplicitBoxingAndUnboxing.class,
ThreeAddressCodeForm.class, CompoundAssignment.class})
+@Support(CodeStats.class)
public class BinaryOperationWithCst implements RunnableSchedulable<JMethod> {
@Nonnull
diff --git a/jack/src/com/android/jack/statistics/CodeStats.java b/jack/src/com/android/jack/statistics/CodeStats.java
new file mode 100644
index 0000000..c30afff
--- /dev/null
+++ b/jack/src/com/android/jack/statistics/CodeStats.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.statistics;
+
+import com.android.sched.item.Description;
+import com.android.sched.item.Feature;
+
+/**
+ * A {@link Feature} that gives statistics about compiled code.
+ */
+@Description("Stats on compiled code")
+public class CodeStats implements Feature {
+}