summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2014-06-02 14:16:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-06-02 14:16:15 +0000
commitd40e651996402252572cc3677ebefbc7a4b40a95 (patch)
tree99572c588a1088032833dabf59c80f9eb929a14f
parent8cefadecfa309bf4183b39f2a06b95e342f406f0 (diff)
parent9cac2d04cc49efcbd7abc31ec487fe8ac22619bf (diff)
downloadtoolchain_jack-d40e651996402252572cc3677ebefbc7a4b40a95.zip
toolchain_jack-d40e651996402252572cc3677ebefbc7a4b40a95.tar.gz
toolchain_jack-d40e651996402252572cc3677ebefbc7a4b40a95.tar.bz2
Merge "Fix regressions in block statistics computation" into jack-wip-dev
-rw-r--r--jack/src/com/android/jack/statistics/BlockStatistics.java7
-rw-r--r--jack/tests/com/android/jack/statistics/BlockStatisticsOnCore.java6
2 files changed, 7 insertions, 6 deletions
diff --git a/jack/src/com/android/jack/statistics/BlockStatistics.java b/jack/src/com/android/jack/statistics/BlockStatistics.java
index 1d9ea42..db646f3 100644
--- a/jack/src/com/android/jack/statistics/BlockStatistics.java
+++ b/jack/src/com/android/jack/statistics/BlockStatistics.java
@@ -22,12 +22,15 @@ import com.android.jack.ir.ast.JForStatement;
import com.android.jack.ir.ast.JIfStatement;
import com.android.jack.ir.ast.JLabeledStatement;
import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JMethodBody;
import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JSession;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.ast.JWhileStatement;
import com.android.sched.item.Description;
import com.android.sched.item.Name;
+import com.android.sched.item.Synchronized;
+import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
@@ -38,7 +41,9 @@ import javax.annotation.Nonnull;
*/
@Description("Compute the number of block and extra block created to manage stand alone statement.")
@Name("BlockStatistics")
+@Constraint(need = {JMethodBody.class})
@Transform(add = BlockCountMarker.class)
+@Synchronized
public class BlockStatistics implements RunnableSchedulable<JMethod> {
private static class BlockStatisticsVisitor extends JVisitor {
@@ -109,7 +114,7 @@ public class BlockStatistics implements RunnableSchedulable<JMethod> {
}
@Override
- public void run(@Nonnull JMethod method) throws Exception {
+ public synchronized void run(@Nonnull JMethod method) throws Exception {
if (method.getEnclosingType().isExternal() || method.isNative() || method.isAbstract()) {
return;
}
diff --git a/jack/tests/com/android/jack/statistics/BlockStatisticsOnCore.java b/jack/tests/com/android/jack/statistics/BlockStatisticsOnCore.java
index 7ebb474..36762f4 100644
--- a/jack/tests/com/android/jack/statistics/BlockStatisticsOnCore.java
+++ b/jack/tests/com/android/jack/statistics/BlockStatisticsOnCore.java
@@ -30,7 +30,6 @@ import com.android.sched.scheduler.Request;
import com.android.sched.scheduler.SchedulableManager;
import com.android.sched.scheduler.Scheduler;
import com.android.sched.scheduler.SubPlanBuilder;
-import com.android.sched.util.findbugs.SuppressFBWarnings;
import junit.framework.Assert;
@@ -46,8 +45,6 @@ public class BlockStatisticsOnCore {
BlockStatisticsOnCore.class.getClassLoader().setDefaultAssertionStatus(true);
}
- // Ignore: "Nullcheck of value previously dereferenced"
- @SuppressFBWarnings("RCN")
@Test
public void computeBlockStatOnCore() throws Exception {
Options compilerArgs = TestTools.buildCommandLineArgs(null, null,
@@ -58,7 +55,6 @@ public class BlockStatisticsOnCore {
BlockCountMarker bcm = session.getMarker(BlockCountMarker.class);
Assert.assertNotNull(bcm);
- assert bcm != null; // Find Bugs will be happy
System.out.println("Existing block : " + bcm.getExistingBlockCount());
System.out.println("Extra block : " + bcm.getExtraBlockCount());
@@ -73,7 +69,7 @@ public class BlockStatisticsOnCore {
@Nonnull
private static JSession buildSession(@Nonnull Options options) throws Exception {
- JSession session = TestTools.buildSession(options);
+ JSession session = TestTools.buildJAst(options);
Assert.assertNotNull(session);
Scheduler scheduler = Scheduler.getScheduler();