diff options
author | mikaelpeltier <mikaelpeltier@google.com> | 2014-09-26 17:36:17 +0200 |
---|---|---|
committer | mikaelpeltier <mikaelpeltier@google.com> | 2014-09-26 17:38:58 +0200 |
commit | 29259326f9bf7874ca2b4935b4f0c05aef2f931e (patch) | |
tree | 2a0cad8ada3e68595e886a8a0c18a6f0ff981dfb /jack | |
parent | b07070a1e0b10ffd24eee9b6a597e94840fa9604 (diff) | |
download | toolchain_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.java | 10 | ||||
-rw-r--r-- | jack/src/com/android/jack/statistics/BinaryOperationWithCst.java | 2 | ||||
-rw-r--r-- | jack/src/com/android/jack/statistics/CodeStats.java | 27 |
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 { +} |